Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcvs2svn2005-01-12 21:35:42 +0000
committercvs2svn2005-01-12 21:35:42 +0000
commit8316fead6c1d3c32bae468e0ca1efb2dfc8ec77c (patch)
tree0094433c122c8923167ffb42f5dcc17388322b11
parent4098c1c2e8a69f99a1f0de581f4b70c816df1ba6 (diff)
downloadeclipse.platform.debug-breakpoint_organizers.tar.gz
eclipse.platform.debug-breakpoint_organizers.tar.xz
eclipse.platform.debug-breakpoint_organizers.zip
This commit was manufactured by cvs2svn to create branchbreakpoint_organizers
'breakpoint_organizers'. Sprout from master 2005-01-12 21:35:40 UTC Kevin Barnes <krbarnes> 'Bug 82708 - Cannot delete console output file w/o removing console' Delete: org.eclipse.core.variables/.classpath org.eclipse.core.variables/.cvsignore org.eclipse.core.variables/.options 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/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/DynamicVariable.java org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ListenerList.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.core/.classpath org.eclipse.debug.core/.cvsignore org.eclipse.debug.core/.options org.eclipse.debug.core/.project org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs org.eclipse.debug.core/.settings/org.eclipse.pde.prefs org.eclipse.debug.core/about.html org.eclipse.debug.core/build.properties org.eclipse.debug.core/buildnotes_platform-debug.html org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html org.eclipse.debug.core/core/org/eclipse/debug/core/package.html org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java org.eclipse.debug.core/doc/.cvsignore org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html org.eclipse.debug.core/hglegal2003.htm org.eclipse.debug.core/ngibmcpy2003.gif org.eclipse.debug.core/plugin.properties org.eclipse.debug.core/plugin.xml org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html org.eclipse.debug.core/r3_0_changes.html org.eclipse.debug.core/r3_1_changes.html org.eclipse.debug.core/schema/breakpoints.exsd org.eclipse.debug.core/schema/launchConfigurationComparators.exsd org.eclipse.debug.core/schema/launchConfigurationTypes.exsd org.eclipse.debug.core/schema/launchDelegates.exsd org.eclipse.debug.core/schema/launchModes.exsd org.eclipse.debug.core/schema/launchers.exsd org.eclipse.debug.core/schema/logicalStructureProviders.exsd org.eclipse.debug.core/schema/logicalStructureTypes.exsd org.eclipse.debug.core/schema/processFactories.exsd org.eclipse.debug.core/schema/sourceContainerTypes.exsd org.eclipse.debug.core/schema/sourceLocators.exsd org.eclipse.debug.core/schema/sourcePathComputers.exsd org.eclipse.debug.core/schema/statusHandlers.exsd org.eclipse.debug.core/schema/watchExpressionDelegates.exsd org.eclipse.debug.core/scripts/exportplugin.xml org.eclipse.ui.console/.classpath org.eclipse.ui.console/.cvsignore org.eclipse.ui.console/.options org.eclipse.ui.console/.project org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs org.eclipse.ui.console/.settings/org.eclipse.pde.prefs org.eclipse.ui.console/about.html org.eclipse.ui.console/build.properties org.eclipse.ui.console/hglegal2003.htm org.eclipse.ui.console/icons/full/clcl16/clear_co.gif org.eclipse.ui.console/icons/full/clcl16/lock_co.gif org.eclipse.ui.console/icons/full/clcl16/pin.gif org.eclipse.ui.console/icons/full/cview16/console_view.gif org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif org.eclipse.ui.console/icons/full/dlcl16/pin.gif org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif org.eclipse.ui.console/icons/full/elcl16/clear_co.gif org.eclipse.ui.console/icons/full/elcl16/lock_co.gif org.eclipse.ui.console/icons/full/elcl16/new_con.gif org.eclipse.ui.console/icons/full/elcl16/pin.gif org.eclipse.ui.console/icons/full/elcl16/rem_co.gif org.eclipse.ui.console/icons/full/eview16/console_view.gif org.eclipse.ui.console/ngibmcpy2003.gif org.eclipse.ui.console/plugin.properties org.eclipse.ui.console/plugin.xml org.eclipse.ui.console/schema/consoleFactories.exsd org.eclipse.ui.console/schema/consolePageParticipants.exsd org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd org.eclipse.ui.console/scripts/exportplugin.xml org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html org.eclipse.ui.console/src/org/eclipse/ui/console/package.html org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java org.eclipse.ui.externaltools/.classpath org.eclipse.ui.externaltools/.cvsignore org.eclipse.ui.externaltools/.options org.eclipse.ui.externaltools/.project org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs 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/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/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/VariableMessages.java org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties 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/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.gif org.eclipse.ui.externaltools/plugin.properties org.eclipse.ui.externaltools/plugin.xml org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
-rw-r--r--org.eclipse.core.variables/.classpath7
-rw-r--r--org.eclipse.core.variables/.cvsignore2
-rw-r--r--org.eclipse.core.variables/.options1
-rw-r--r--org.eclipse.core.variables/.project26
-rw-r--r--org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--org.eclipse.core.variables/.settings/org.eclipse.pde.prefs14
-rw-r--r--org.eclipse.core.variables/about.html30
-rw-r--r--org.eclipse.core.variables/build.properties17
-rw-r--r--org.eclipse.core.variables/plugin.properties15
-rw-r--r--org.eclipse.core.variables/plugin.xml22
-rw-r--r--org.eclipse.core.variables/schema/dynamicVariables.exsd130
-rw-r--r--org.eclipse.core.variables/schema/valueVariables.exsd149
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java76
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ListenerList.java137
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java291
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java80
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java568
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java126
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java33
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties18
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java56
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java33
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java56
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java178
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java78
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java30
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java45
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java112
-rw-r--r--org.eclipse.core.variables/src/org/eclipse/core/variables/package.html45
-rw-r--r--org.eclipse.debug.core/.classpath7
-rw-r--r--org.eclipse.debug.core/.cvsignore1
-rw-r--r--org.eclipse.debug.core/.options1
-rw-r--r--org.eclipse.debug.core/.project26
-rw-r--r--org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--org.eclipse.debug.core/.settings/org.eclipse.pde.prefs14
-rw-r--r--org.eclipse.debug.core/about.html30
-rw-r--r--org.eclipse.debug.core/build.properties17
-rw-r--r--org.eclipse.debug.core/buildnotes_platform-debug.html494
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java459
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java1305
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java275
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java33
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java38
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java39
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java169
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java56
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java177
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java466
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java209
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java164
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java51
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java421
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java54
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java30
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java35
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java83
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java43
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java98
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java78
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java33
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java591
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java358
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java254
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java35
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java95
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java36
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java67
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java71
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java49
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java94
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java48
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java45
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java82
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java170
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java41
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java52
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java84
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java105
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java37
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java62
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java68
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java182
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java96
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java64
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java57
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java34
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java111
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java104
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java85
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java95
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java92
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java51
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java31
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java74
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java83
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java323
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java62
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java219
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java436
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html146
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/package.html115
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java717
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java134
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java45
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java106
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java55
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java182
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java59
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java49
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java73
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java147
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java178
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java245
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java122
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java82
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html20
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html34
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java1042
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java119
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java32
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties106
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java135
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java581
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java602
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java65
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java574
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java278
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java595
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java1834
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java75
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java137
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java93
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java140
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java315
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java98
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java255
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java124
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java77
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java262
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java28
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties59
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java158
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java156
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java56
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java66
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java74
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java72
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java53
-rw-r--r--org.eclipse.debug.core/doc/.cvsignore15
-rw-r--r--org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html53
-rw-r--r--org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html58
-rw-r--r--org.eclipse.debug.core/hglegal2003.htm14
-rw-r--r--org.eclipse.debug.core/ngibmcpy2003.gifbin1101 -> 0 bytes
-rw-r--r--org.eclipse.debug.core/plugin.properties52
-rw-r--r--org.eclipse.debug.core/plugin.xml172
-rw-r--r--org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html1102
-rw-r--r--org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html410
-rw-r--r--org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html994
-rw-r--r--org.eclipse.debug.core/r3_0_changes.html260
-rw-r--r--org.eclipse.debug.core/r3_1_changes.html21
-rw-r--r--org.eclipse.debug.core/schema/breakpoints.exsd127
-rw-r--r--org.eclipse.debug.core/schema/launchConfigurationComparators.exsd119
-rw-r--r--org.eclipse.debug.core/schema/launchConfigurationTypes.exsd188
-rw-r--r--org.eclipse.debug.core/schema/launchDelegates.exsd141
-rw-r--r--org.eclipse.debug.core/schema/launchModes.exsd124
-rw-r--r--org.eclipse.debug.core/schema/launchers.exsd225
-rw-r--r--org.eclipse.debug.core/schema/logicalStructureProviders.exsd121
-rw-r--r--org.eclipse.debug.core/schema/logicalStructureTypes.exsd136
-rw-r--r--org.eclipse.debug.core/schema/processFactories.exsd122
-rw-r--r--org.eclipse.debug.core/schema/sourceContainerTypes.exsd153
-rw-r--r--org.eclipse.debug.core/schema/sourceLocators.exsd122
-rw-r--r--org.eclipse.debug.core/schema/sourcePathComputers.exsd139
-rw-r--r--org.eclipse.debug.core/schema/statusHandlers.exsd127
-rw-r--r--org.eclipse.debug.core/schema/watchExpressionDelegates.exsd120
-rw-r--r--org.eclipse.debug.core/scripts/exportplugin.xml32
-rw-r--r--org.eclipse.ui.console/.classpath7
-rw-r--r--org.eclipse.ui.console/.cvsignore1
-rw-r--r--org.eclipse.ui.console/.options1
-rw-r--r--org.eclipse.ui.console/.project26
-rw-r--r--org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--org.eclipse.ui.console/.settings/org.eclipse.pde.prefs14
-rw-r--r--org.eclipse.ui.console/about.html30
-rw-r--r--org.eclipse.ui.console/build.properties19
-rw-r--r--org.eclipse.ui.console/hglegal2003.htm14
-rw-r--r--org.eclipse.ui.console/icons/full/clcl16/clear_co.gifbin545 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/clcl16/lock_co.gifbin626 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/clcl16/pin.gifbin358 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/cview16/console_view.gifbin582 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/dlcl16/clear_co.gifbin328 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/dlcl16/lock_co.gifbin588 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/dlcl16/pin.gifbin223 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/dlcl16/rem_co.gifbin159 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/elcl16/clear_co.gifbin545 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/elcl16/lock_co.gifbin626 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/elcl16/new_con.gifbin612 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/elcl16/pin.gifbin358 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/elcl16/rem_co.gifbin163 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/icons/full/eview16/console_view.gifbin582 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/ngibmcpy2003.gifbin1101 -> 0 bytes
-rw-r--r--org.eclipse.ui.console/plugin.properties24
-rw-r--r--org.eclipse.ui.console/plugin.xml76
-rw-r--r--org.eclipse.ui.console/schema/consoleFactories.exsd130
-rw-r--r--org.eclipse.ui.console/schema/consolePageParticipants.exsd119
-rw-r--r--org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd150
-rw-r--r--org.eclipse.ui.console/scripts/exportplugin.xml35
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java321
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java138
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java98
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java154
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java48
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java48
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java39
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java100
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java71
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java94
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java37
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java254
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java274
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java224
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java87
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java46
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java77
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java80
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java70
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java494
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java411
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java575
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java96
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java36
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java84
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java121
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html20
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/console/package.html29
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java116
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java352
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java157
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java124
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java51
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java386
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java36
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties68
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java69
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java307
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java170
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java32
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java639
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java46
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java125
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java54
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java37
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java31
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java137
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java165
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java669
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java138
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java128
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java71
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java128
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java52
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java40
-rw-r--r--org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java54
-rw-r--r--org.eclipse.ui.externaltools/.classpath8
-rw-r--r--org.eclipse.ui.externaltools/.cvsignore4
-rw-r--r--org.eclipse.ui.externaltools/.options1
-rw-r--r--org.eclipse.ui.externaltools/.project28
-rw-r--r--org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs14
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java310
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java34
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties53
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java645
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java202
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java47
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java52
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java40
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java24
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java283
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java279
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java215
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java32
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties17
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java167
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java32
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java200
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java37
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java33
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java91
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java411
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java133
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java1144
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java97
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java42
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties54
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java248
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java316
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java73
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java26
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java31
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties12
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java87
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java34
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties19
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java35
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java229
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java57
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java34
-rw-r--r--org.eclipse.ui.externaltools/about.html30
-rw-r--r--org.eclipse.ui.externaltools/build.properties24
-rw-r--r--org.eclipse.ui.externaltools/buildfiles/exportplugin.xml36
-rw-r--r--org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gifbin570 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gifbin587 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/obj16/builder.gifbin574 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/obj16/classpath.gifbin338 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gifbin587 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gifbin339 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gifbin360 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gifbin3160 -> 0 bytes
-rw-r--r--org.eclipse.ui.externaltools/plugin.properties45
-rw-r--r--org.eclipse.ui.externaltools/plugin.xml236
-rw-r--r--org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd126
351 files changed, 0 insertions, 46027 deletions
diff --git a/org.eclipse.core.variables/.classpath b/org.eclipse.core.variables/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- 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.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <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 693869726..000000000
--- a/org.eclipse.core.variables/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-doc
diff --git a/org.eclipse.core.variables/.options b/org.eclipse.core.variables/.options
deleted file mode 100644
index 34a7de878..000000000
--- a/org.eclipse.core.variables/.options
+++ /dev/null
@@ -1 +0,0 @@
-# Debugging options for the org.eclipse.core.variables plugin.
diff --git a/org.eclipse.core.variables/.project b/org.eclipse.core.variables/.project
deleted file mode 100644
index efb82a149..000000000
--- a/org.eclipse.core.variables/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.core.variables</name>
- <comment></comment>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e22d63ab0..000000000
--- a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 01 17:54:58 GMT-08:00 2004
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-eclipse.preferences.version=1
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
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 02f5958dc..000000000
--- a/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:35:14 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.core.variables/about.html b/org.eclipse.core.variables/about.html
deleted file mode 100644
index abd7bd730..000000000
--- a/org.eclipse.core.variables/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>2nd October, 2003</p>
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;). A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</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 e6c0fdaec..000000000
--- a/org.eclipse.core.variables/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .options,\
- plugin.xml,\
- plugin.properties,\
- *.jar,\
- about.html
-source.variables.jar = 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 0e263976e..000000000
--- a/org.eclipse.core.variables/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Core Variables
-providerName=Eclipse.org
-valueVariablesExtensionPointName=Value Variables
-dynamicVariablesExtensionPointName=Dynamic Variables
diff --git a/org.eclipse.core.variables/plugin.xml b/org.eclipse.core.variables/plugin.xml
deleted file mode 100644
index 15731bbf6..000000000
--- a/org.eclipse.core.variables/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.core.variables"
- name="%pluginName"
- version="3.1.0"
- provider-name="%providerName"
- class="org.eclipse.core.variables.VariablesPlugin">
-
- <runtime>
- <library name="variables.jar">
- <export name="*"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.core.runtime"/>
- </requires>
-
- <extension-point id="valueVariables" name="%valueVariablesExtensionPointName" schema="schema/valueVariables.exsd"/>
- <extension-point id="dynamicVariables" name="%dynamicVariablesExtensionPointName" schema="schema/dynamicVariables.exsd"/>
-
-</plugin>
diff --git a/org.eclipse.core.variables/schema/dynamicVariables.exsd b/org.eclipse.core.variables/schema/dynamicVariables.exsd
deleted file mode 100644
index deb145968..000000000
--- 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 Stirng 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, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-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 4037055c8..000000000
--- a/org.eclipse.core.variables/schema/valueVariables.exsd
+++ /dev/null
@@ -1,149 +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="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, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
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 7abf47557..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.text.MessageFormat;
-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;
-
-/**
- * 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, MessageFormat.format(VariablesMessages.getString("DynamicVariable.0"), new String[]{argument, getName()}), null)); //$NON-NLS-1$
- }
- }
- 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, MessageFormat.format("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, MessageFormat.format("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/ListenerList.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ListenerList.java
deleted file mode 100644
index 4ece74163..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ListenerList.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-
-/**
- * Local version of org.eclipse.jface.util.ListenerList (modified)s
- */
-public class ListenerList {
- /**
- * The current number of listeners.
- * Maintains invariant: 0 <= fSize <= listeners.length.
- */
- private int fSize;
-
- /**
- * The list of listeners. Initially <code>null</code> but initialized
- * to an array of size capacity the first time a listener is added.
- * Maintains invariant: listeners != null if and only if fSize != 0
- */
- private Object[] fListeners= null;
-
- /**
- * The empty array singleton instance, returned by getListeners()
- * when size == 0.
- */
- private static final Object[] EmptyArray= new Object[0];
-
- /**
- * Creates a listener list with the given initial capacity.
- *
- * @param capacity the number of listeners which this list can initially accept
- * without growing its internal representation; must be at least 1
- */
- public ListenerList(int capacity) {
- if (capacity < 1) {
- throw new IllegalArgumentException();
- }
- fListeners= new Object[capacity];
- fSize= 0;
- }
-
- /**
- * Adds a listener to the list.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener a listener
- */
- public synchronized void add(Object listener) {
- if (listener == null) {
- throw new IllegalArgumentException();
- }
- // check for duplicates using identity
- for (int i= 0; i < fSize; ++i) {
- if (fListeners[i] == listener) {
- return;
- }
- }
- // grow array if necessary
- if (fSize == fListeners.length) {
- Object[] temp= new Object[(fSize * 2) + 1];
- System.arraycopy(fListeners, 0, temp, 0, fSize);
- fListeners= temp;
- }
- fListeners[fSize++]= listener;
- }
-
- /**
- * Returns an array containing all the registered listeners.
- * The resulting array is unaffected by subsequent adds or removes.
- * If there are no listeners registered, the result is an empty array
- * singleton instance (no garbage is created).
- * Use this method when notifying listeners, so that any modifications
- * to the listener list during the notification will have no effect on the
- * notification itself.
- */
- public synchronized Object[] getListeners() {
- if (fSize == 0) {
- return EmptyArray;
- }
- Object[] result= new Object[fSize];
- System.arraycopy(fListeners, 0, result, 0, fSize);
- return result;
- }
-
- /**
- * Removes a listener from the list.
- * Has no effect if an identical listener was not already registered.
- *
- * @param listener a listener
- */
- public synchronized void remove(Object listener) {
- if (listener == null) {
- throw new IllegalArgumentException();
- }
-
- for (int i= 0; i < fSize; ++i) {
- if (fListeners[i] == listener) {
- if (--fSize == 0) {
- fListeners= new Object[1];
- } else {
- if (i < fSize) {
- fListeners[i]= fListeners[fSize];
- }
- fListeners[fSize]= null;
- }
- return;
- }
- }
- }
-
- /**
- * Removes all the listeners from the list.
- */
- public void removeAll() {
- fListeners= new Object[0];
- fSize= 0;
- }
-
- /**
- * Returns the number of registered listeners
- *
- * @return the number of registered listeners
- */
- public int size() {
- return fSize;
- }
-}
-
diff --git a/org.eclipse.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 542fc7b9f..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.text.MessageFormat;
-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;
-
-/**
- * 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 = '}'; //$NON-NLS-1$
- private static final char VARIABLE_ARG = ':'; //$NON-NLS-1$
- // 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, MessageFormat.format(VariablesMessages.getString("StringSubstitutionEngine.4"), new String[]{problemVariableList.toString()}), null)); //$NON-NLS-1$
- }
- }
-
- 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, MessageFormat.format(VariablesMessages.getString("StringSubstitutionEngine.3"), new String[]{name}), null)); //$NON-NLS-1$
- }
- // 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, MessageFormat.format(VariablesMessages.getString("StringSubstitutionEngine.4"), new String[]{valueVariable.getName()}), null)); //$NON-NLS-1$
- }
-
- private String getOriginalVarText(VariableReference var) {
- StringBuffer res = new StringBuffer(var.getText());
- res.insert(0, VARIABLE_START);
- res.append(VARIABLE_END);
- return res.toString();
- }
-} \ No newline at end of file
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 cb7642050..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 and description.
- *
- * @param name variable name
- * @param description variable description, 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 b29ce4e9c..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.text.MessageFormat;
-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.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.Status;
-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.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * Singleton string variable manager.
- */
-public class StringVariableManager implements IStringVariableManager {
-
- /**
- * Dynamic variables - maps variable names to variables.
- */
- private Map fDynamicVariables;
-
- /**
- * Value varialbes - 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 initialization code - supress change notification
- private boolean fInitializing = 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$
- // 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 INITIALIZED_TAG="contributed"; //$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];
- Platform.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(5);
- }
-
- /**
- * Load contributed variables and persisted variables
- */
- private void initialize() {
- if (fDynamicVariables == null) {
- fInitializing = true;
- fDynamicVariables = new HashMap(5);
- fValueVariables = new HashMap(5);
- loadPersistedValueVariables();
- loadContributedValueVariables();
- loadDynamicVariables();
- fInitializing = 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(MessageFormat.format("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$
- continue;
- }
- String description= element.getAttribute(ATTR_DESCRIPTION);
- DynamicVariable variable= new DynamicVariable(name, description, element);
- fDynamicVariables.put(variable.getName(), variable);
- }
- }
-
- /**
- * Loads any persisted value varialbes from the preference store.
- */
- 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();
- 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(MessageFormat.format("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 initialized= TRUE_VALUE.equals(element.getAttribute(INITIALIZED_TAG));
- ValueVariable variable= new ValueVariable(name, description, null);
- if (initialized) {
- variable.setValue(value);
- }
- fValueVariables.put(name, variable);
- } else {
- VariablesPlugin.logMessage("Invalid variable entry encountered while loading value variables. Variable name is null.", null); //$NON-NLS-1$
- }
- }
- }
- }
-
- /**
- * Loads contributed value variables. This is done after the persisted value
- * varaibles are restored. Any contributed variables with the same name are
- * merged with existing 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(MessageFormat.format("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$
- continue;
- }
- String description= element.getAttribute(ATTR_DESCRIPTION);
- ValueVariable variable= new ValueVariable(name, description, element);
- // if already present, merge with persisted value
- ValueVariable existing = (ValueVariable)getValueVariable(name);
- if (existing != null) {
- if (existing.isInitialized()) {
- variable.setValue(existing.getValue());
- }
- }
- fValueVariables.put(variable.getName(), variable);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getVariables()
- */
- public 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 IValueVariable[] getValueVariables() {
- initialize();
- return (IValueVariable[]) fValueVariables.values().toArray(new IValueVariable[fValueVariables.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getDynamicVariables()
- */
- public 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) {
- IConfigurationElement element = null;
- ValueVariable existing = (ValueVariable)getValueVariable(name);
- if (existing != null && existing.isContributed()) {
- element = existing.getConfigurationElement();
- }
- return new ValueVariable(name, description, element);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#addVariables(org.eclipse.debug.internal.core.stringsubstitution.IValueVariable[])
- */
- public void addVariables(IValueVariable[] variables) throws CoreException {
- initialize();
- MultiStatus status = new MultiStatus(VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, VariablesMessages.getString("StringVariableManager.26"), null); //$NON-NLS-1$
- 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, MessageFormat.format(VariablesMessages.getString("StringVariableManager.27"), new String[]{variable.getName()}), null)); //$NON-NLS-1$
- }
- }
- 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 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 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 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++) {
- ValueVariable variable = (ValueVariable)variables[i];
- 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);
- }
- String description= variable.getDescription();
- if (description != null) {
- element.setAttribute(DESCRIPTION_TAG, description);
- }
- element.setAttribute(INITIALIZED_TAG, variable.isInitialized() ? TRUE_VALUE : FALSE_VALUE);
- 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 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;
- }
- }
- prefs.setValue(PREF_VALUE_VARIABLES, variableString);
- VariablesPlugin.getDefault().savePluginPreferences();
- }
-
- /**
- * Fire a change notification for the given variable.
- *
- * @param variable the variable that has changed
- */
- protected void notifyChanged(ValueVariable variable) {
- if (!fInitializing) {
- 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().getNamespace();
- }
- return null;
- }
-}
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 5ecb45a93..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.text.MessageFormat;
-
-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;
-
-/**
- * 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's value has been initialized
- */
- private boolean fInitialized = false;
-
- /**
- * Constructs a new value variable with the given name, description, and
- * associated configuration element.
- *
- * @param name variable name
- * @param description variable description, or <code>null</code>
- * @param configurationElement configuration element or <code>null</code>
- */
- public ValueVariable(String name, String description, IConfigurationElement configurationElement) {
- super(name, description, configurationElement);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IValueVariable#setValue(java.lang.String)
- */
- public void setValue(String value) {
- fValue = value;
- setInitialized(true);
- StringVariableManager.getDefault().notifyChanged(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IValueVariable#getValue()
- */
- public String getValue() {
- if (!isInitialized()) {
- initialize();
- }
- return fValue;
- }
-
- /**
- * Initialize this variable's value.
- */
- 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(MessageFormat.format("Unable to initialize variable {0} - initializer must be an instance of IValueVariableInitializer.", new String[]{getName()}), null); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- VariablesPlugin.logMessage(MessageFormat.format("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.debug.internal.core.stringsubstitution.IValueVariable#isContributed()
- */
- public boolean isContributed() {
- return getConfigurationElement() != null;
- }
-
-}
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 7791efbe6..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.variables;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class VariablesMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.core.internal.variables.VariablesMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE =
- ResourceBundle.getBundle(BUNDLE_NAME);
-
- private VariablesMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-} \ 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 7113d132a..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-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 8ba318210..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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>
- *
- * @since 3.0
- */
-public interface IDynamicVariable extends IStringVariable {
-
- /**
- * Returns the value of this variable when referenced with the given
- * argument, possibly <code>null</code>.
- *
- * @param argument argument present in variable expression or <code>null</code>
- * if none
- * @return value of this variable when referenced with the given argument, possibly
- * <code>null</code>
- * @throws CoreException if unable to resolve a value for this variable
- */
- public String getValue(String argument) throws CoreException;
-
- /**
- * Returns whether this variable supports an argument, as specified
- * by this variable's extension definition in plug-in XML.
- *
- * @return whether this variable supports an argument
- */
- public boolean supportsArgument();
-}
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
deleted file mode 100644
index 6187525d2..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.
- *
- * @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 69bab0a3b..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 seperates 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
- */
-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 de36166fb..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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
- */
-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 plugin identifier of the plugin 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 plugin identifier of the plugin 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 value variable with the given name and description.
- *
- * @param name variable name, cannot be <code>null</code>
- * @param description variable description, possibly <code>null</code>
- * @return a new variable
- * @exception CoreException if a variable already exists with the given name
- */
- public IValueVariable newValueVariable(String name, String description);
-
- /**
- * 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 4b5ef650b..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 initialie the variable with a value.
- * <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
- */
-public interface IValueVariable extends IStringVariable {
-
- /**
- * Sets the value of this variable to the given value. A value of
- * <code>null</code> indicates the value of this variable is undefined.
- *
- * @param value variable value, possibly <code>null</code>
- */
- 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();
-
- /**
- * 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 16cc8feb6..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 mechnism for programatically 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 46a24930a..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.
- *
- * @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 0d88094cf..000000000
--- a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.variables;
-
-import org.eclipse.core.internal.variables.StringVariableManager;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-
-/**
- * The plug-in runtime class for the Core Variables plug-in.
- * @since 3.0
- */
-public class VariablesPlugin extends Plugin {
-
- /**
- * Status code indicating an unexpected internal error.
- */
- public static final int INTERNAL_ERROR = 120;
-
- /**
- * Status code indicating a variable reference cycle error.
- */
- public static final int REFERENCE_CYCLE_ERROR = 130;
-
- /**
- * The single instance of this plug-in runtime class.
- */
- private static VariablesPlugin plugin;
-
- /**
- * Unique identifier constant (value <code>"org.eclipse.core.variables"</code>)
- * for the Core Variables plug-in.
- */
- public static final String PI_CORE_VARIABLES = "org.eclipse.core.variables"; //$NON-NLS-1$
-
-
- /**
- * Constructs an instance of this plug-in runtime class.
- * <p>
- * An instance of this plug-in runtime class is automatically created
- * when the facilities provided by the Variables plug-in are required.
- * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>
- * </p>
- */
- public VariablesPlugin() {
- super();
- plugin = this;
- }
-
- /**
- * Returns this plug-in instance.
- *
- * @return the single instance of this plug-in runtime class
- */
- public static VariablesPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Logs the specified throwable with this plug-in's log.
- *
- * @param t throwable to log
- */
- public static void log(Throwable t) {
- log(new Status(IStatus.ERROR, PI_CORE_VARIABLES, INTERNAL_ERROR, "Error logged from Core Variables: ", t)); //$NON-NLS-1$
- }
-
- /**
- * Logs the given message with this plug-in's log and the given
- * throwable or <code>null</code> if none.
- * @param message the message to log
- * @param throwable the exception that occurred or <code>null</code> if none
- */
- public static void logMessage(String message, Throwable throwable) {
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, message, throwable));
- }
-
- /**
- * Logs the specified status with this plug-in's log.
- *
- * @param status status to log
- */
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- 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 0d27de0b3..000000000
--- 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.core/.classpath b/org.eclipse.debug.core/.classpath
deleted file mode 100644
index 03bbb4390..000000000
--- a/org.eclipse.debug.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="core"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.debug.core/.cvsignore b/org.eclipse.debug.core/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/org.eclipse.debug.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/org.eclipse.debug.core/.options b/org.eclipse.debug.core/.options
deleted file mode 100644
index a3e35f6ef..000000000
--- a/org.eclipse.debug.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.debug.core/debug=true \ No newline at end of file
diff --git a/org.eclipse.debug.core/.project b/org.eclipse.debug.core/.project
deleted file mode 100644
index 394ef93cf..000000000
--- a/org.eclipse.debug.core/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.debug.core</name>
- <comment></comment>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e22d63ab0..000000000
--- a/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 01 17:54:58 GMT-08:00 2004
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-eclipse.preferences.version=1
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
diff --git a/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs b/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 945b3e7f9..000000000
--- a/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:34:28 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.debug.core/about.html b/org.eclipse.debug.core/about.html
deleted file mode 100644
index 9db411aab..000000000
--- a/org.eclipse.debug.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>20th June, 2002</p>
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;). A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.debug.core/build.properties b/org.eclipse.debug.core/build.properties
deleted file mode 100644
index 5dea92930..000000000
--- a/org.eclipse.debug.core/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .options,\
- plugin.xml,\
- plugin.properties,\
- *.jar,\
- about.html
-source.dtcore.jar = core/
-src.includes=about.html, schema/
diff --git a/org.eclipse.debug.core/buildnotes_platform-debug.html b/org.eclipse.debug.core/buildnotes_platform-debug.html
deleted file mode 100644
index 83c643d4c..000000000
--- a/org.eclipse.debug.core/buildnotes_platform-debug.html
+++ /dev/null
@@ -1,494 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="IBM">
- <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
- <title>Platform Debug Release Notes</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 18, 2005
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80991">80991</a>: Promote StringVariableSelectionDialog to API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82553">82553</a>: NPE from TerminateAllAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80924">80924</a>: errors in log running test suite<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 11, 2005
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82003">82003</a>: The IDisconnect implementation by Launch module is too restrictive<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82001">82001</a>: When shutting down the IDE, the debugger should first attempt to disconnect debug targets before terminating them<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80551">80551</a>: Provide AbstractRunToLineAdapter<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82402">82402</a>: [Memory View] Bad error message format<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74559">74559</a>: Memory View does not scroll properly on Linux<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82403">82403</a>: [Memory View] Unable to remove more than one memory monitor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82280">82280</a>: remove TextConsole.setAutoScroll()<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 4, 2005
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72909">72909</a>: Add &quot;Remove All Breakpoints&quot; action to &quot;Run&quot; menu<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 21, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81540">81540</a>: no need to create annotation for editors without annotation model<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71149">71149</a>: [artwork] When breakpoints are disabled (skipped), the bullet should be different<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-M4, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70938">70938</a>: Need to be able to turn off &quot;Watch&quot; action for IVariable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80522">80522</a>: VariablesView and problems with hyperlink support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81234">81234</a>: Console Pinning causes no console to be displayed.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 14, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80227">80227</a>: Fixed width console of 80 chars double spaces 80 char lines<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80546">80546</a>: Incorrect package ref for IRunToLineTarget<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80617">80617</a>: Memory View does not synchronize properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80331">80331</a>: NPE from AbstractDebugActionDelegate<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80409">80409</a>: Breakpoints Group By > menu should number submenu starting with 1<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76297">76297</a>: Enhancements to memory block API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78335">78335</a>: Support for word-addressable memory in memory view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78423">78423</a>: Enhancements to Memory Rendering Extension Point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79255">79255</a>: Enhancements to Memory View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80284">80284</a>: Enhancements to Memory View - replace MemoryViewPane with Tree Viewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80229">80229</a>: AIOB exception with fixed width console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80679">80679</a>: Encoding dropdown enabled on common tab of launch config when default selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80653">80653</a>: IllegalArgumentException from OpenBreakpointMarkerAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1654">1654</a>: USABILITY - Can't look at client server output in one perspective (1GFX2ZU)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80726">80726</a>: new launch doesn't open console view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80728">80728</a>: ShowConsoleAction not working when console pinned<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80720">80720</a>: Pinned console does not remain on top<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80373">80373</a>: Pinning of consoles is lost after relaunch of debug process<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80729">80729</a>: NPE in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80873">80873</a>: Fill out schema for logical structure providers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80721">80721</a>: Conflicting key binding for 'org.eclipse.debug.ui.commands.eof' and 'org.eclipse.ui.edit.text.delete.line'<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 7, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79153">79153</a>: [Common Tab] redirect to file should do variable expansion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79043">79043</a>: Translatable attributes not translated in memoryRenderingTypes extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79757">79757</a>: NoClassDefFoundError when opening type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79897">79897</a>: Debug view flashes after terminating target<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79903">79903</a>: Source not found automatically for higher level plugins<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79949">79949</a>: Console View is missing Ctrl-C in context menu item.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79841">79841</a>: Memory view leaks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79606">79606</a>: Common tab is too tall<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79735">79735</a>: Allow to append / overwrite when output to file from console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79304">79304</a>: Incorrect stack frame selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79952">79952</a>: broken hyperlink in console redirecting process output to console.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79306">79306</a>: Custom breakpoint group action enablement<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30779">30779</a>: Queue/Fire debug events in separate thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79951">79951</a>: Output lost / colored incorrect with echoProperties<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80073">80073</a>: Shortcut for show debug perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79510">79510</a>: background source lookup<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 30, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78881">78881</a>: NullPointerException in memory view when selecting watch expressions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78079">78079</a>: Error loading classes to to Apple's VM packaging.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79097">79097</a>: Mnemonic collision on the Commons tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79466">79466</a>: Capture Output file widgets enabled initially<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35400">35400</a>: new Debugger view can't get to associated text editor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79043">79043</a>: Translatable attributes not translated in memoryRenderingTypes extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23064">23064</a>: RFE: Add option to redirect console output (stderr & stdout) to file<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 23, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76316">76316</a>: Addition of memory block manager to API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76310">76310</a>: Memory block enhancements: MemoryByte<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78864">78864</a>: Using new registry API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61801">61801</a>: A null String object reference becomes the value &quot;null&quot;<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77060">77060</a>: Toggling show qualified names in the Debug view collapses thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78010">78010</a>: NPE closing eclipse<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79008">79008</a>: Dialog units should not be used for calculating button heights<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77380">77380</a>: hyperlinks in stack trace console draw &quot;higher&quot; than original text<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78739">78739</a>: stack trace console unexpectedly restored<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78751">78751</a>: Extension Point Schema Changes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78996">78996</a>: ContextualLaunchAction assumes launch group category supports mode<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78759">78759</a>: NPE in WatchExpression.getLaunch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78338">78338</a>: Selection is lost in debug view while stepping with monitor info on<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79304">79304</a>: Incorrect stack frame selected<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 16, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77202">77202</a>: font setting for process console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73882">73882</a>: ConsoleDocumentManager caused a deadlock<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77779">77779</a>: Advanced Breakpoints grouping dialog improvements<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76119">76119</a>: source containers not disposed when launch removed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78338">78338</a>: Selection is lost in debug view while stepping with monitor info on<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78191">78191</a>: [console] context menu contributions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77995">77995</a>: NPE out of LaunchViewer running test suite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74590">74590</a>: Console colors not changed for terminated processes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52336">52336</a>: [Viewers] Internal error at start of debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68621">68621</a>: Invalid thread access in launcher from Checkout thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78193">78193</a>: IOConsolePartitioner.TrimJob quits too early if lastPartition is null<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78351">78351</a>: Please add shortcut keys to switch to Variables and Breakpoints views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77416">77416</a>: Filter console factories by capabilities<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78386">78386</a>: NPE in ProcessConsoleManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73460">73460</a>: Console flicker when launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78456">78456</a>: Breakpoint group setting lost on close of breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78494">78494</a>: State of child BreakpointContainers are not updated when parent is enabled/disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75851">75851</a>: Custom variable edit widget<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78513">78513</a>: Memory View: Length and change state incorrect for IMemoryBlock<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29581">29581</a>: Launch shortcut hotkeys<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 9, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74584">74584</a>: [Console] IOConsole does not bold title when contents change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75571">75571</a>: restore defaults does not enable console buffer size text field<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77667">77667</a>: Invalid error message in Run/Debug|Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77783">77783</a>: No mnemonic for &quot;Group By&quot;<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77670">77670</a>: breakpoint group rendered as &quot;enabled&quot; when manager disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77721">77721</a>: groups not expanded when switching between none and other<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77991">77991</a>: Leak: IOConsolePage needs to dispose ScrollLockAction<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 5, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77703">77703</a>: Deselecting Map$Entry/Show As&gt;/Key And Value Deselects Map/Show As&gt;/Map Entries<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77754">77754</a>: Inefficient loop rendering styled text<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77472">77472</a>: NPE in TextConsolePage runnable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77994">77994</a>: TextConsoleViewer leaks ConsoleDocumentAdapter<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77998">77998</a>: IOConsoleViewer leaks a document listener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76605">76605</a>: Set our compiler settings for each project so they are shared<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77748">77748</a>: NPE terminating a target<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 2, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76771">76771</a>: Inconsistency between schema description and implementation in logicalStructureTypes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77049">77049</a>: SelectBreakpointGroupDialog doesn't allow selection of existing groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76675">76675</a>: Pattern Matching independent of IOConsole and IOConsolePartitioner<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77028">77028</a>: Element 'breakpointContainerFactory' is not legal as a child of element 'extension'.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77046">77046</a>: Console causing Ant test failures<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77072">77072</a>: Composite breakpoint group expansion problem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77065">77065</a>: scroll lock not required in stack trace console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77066">77066</a>: Pressing &lt;Enter&gt; in strack trace console appends to EOD<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76907">76907</a>: Clarify run menu (run, run..., run &gt; run...? RUN!)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54916">54916</a>: Environment tab should show icons for env vars<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74206">74206</a>: Delete breakpoint needs to "preserve selection"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74031">74031</a>: No mnemonics on Open Console drop down items<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74123">74123</a>: Console font problem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75370">75370</a>: Hyperlinks to source in console don't work sometimes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77029">77029</a>: &quot;Browse&quot; button on the Common tab does not resize properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77033">77033</a>: Console encoding on Common tab: mnemonics and NLS<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77189">77189</a>: exception during test suite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77202">77202</a>: font setting for process console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77068">77068</a>: Typing in stack trace console moves line to top of view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77116">77116</a>: API cannot reference internal classes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77306">77306</a>: Provide a rendering view pane in the Memory View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69815">69815</a>: DBCS -- System console cannot display Unicode characters properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76427">76427</a>: Run configuration dialog layout<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69083">69083</a>: Switch to associated perspective on suspension<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77063">77063</a>: JavaStackTraceConsole should use Hyperlink Color<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77295">77295</a>: Argument parsing for command line launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77238">77238</a>: Enable/Disable not on context menu for breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77048">77048</a>: ArrayIndexOutOfBounds removing breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77397">77397</a>: Book capitalization in Color and Font extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77253">77253</a>: Sort the consoles in the Open console dropdown<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77073">77073</a>: Expand to show breakpoint containers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77421">77421</a>: [Themes] default text editor font changes by itself<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77462">77462</a>: CVS Plug-in fails to start<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74596">74596</a>: Always group by breakpoint type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75119">75119</a>: Default breakpoint group setting not used when breakpoints view not there<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 26, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76539">76539</a>: ILaunchConfiguration.getAttributes doc/clone usage pbm<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76677">76677</a>: Console Input incorrect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76110">76110</a>: Breakpoints not showing as installed in the BreakpointsView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76532">76532</a>: Deleting multipe groups prompts for each group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75183">75183</a>: DebugEvent.CHANGE does not cause run control action states to be updated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76797">76797</a>: Two output stream reader threads and 100% CPU usages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76743">76743</a>: Console pipes should be closed when program terminated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51884">51884</a>: Feature request: More flexible debug hierarchy<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76514">76514</a>: Allow debug presentations to provide colors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76517">76517</a>: NPE in LaunchViewContextListener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76529">76529</a>: Renaming a custom group collapses all of the groups<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 19, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75967">75967</a>: NullPointerException in IOConsolePartitioner.getRegion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75769">75769</a>: Console doesn't restore displayed tab width 8 on restart<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74909">74909</a>: Automated test for console input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75174">75174</a>: Can not clear console with unlimited output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75546">75546</a>: hang during debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72500">72500</a>: Migrate StringMatcher to RegEx 1.4 support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75198">75198</a>: breakpoint groups don't support double click expand<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76428">76428</a>: Run configuration dialog; source tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76270">76270</a>: Scroll in Console is always lock.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74909">74909</a>: Automated test for console input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76208">76208</a>: Incorrect code for converting String-> boolean<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75282">75282</a>: Composite breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76518">76518</a>: Buttons in the Group Breakpoints "Advanced" dialog incorrectly sized<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76521">76521</a>: Incorrect icon names for the breakpoint group actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76519">76519</a>: Expand all in the Breakpoints view with no groups causes infinite recursion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74673">74673</a>: Add Expand/Collapse All to Breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74560">74560</a>: Group all should expand groups on creation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76495">76495</a>: Delete action is enabled for a group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76498">76498</a>: "set custom group" should have "..."<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76497">76497</a>: illegal argument exception<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76326">76326</a>: Shared launch configurations not removed when containing project is deleted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76527">76527</a>: Flaw in AbstractBreakpointGroupAction->rename and dissolve broken<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 12, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75454">75454</a>: RuntimeProcess.isTerminated() replies "false" if process segfaults<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75402">75402</a>: NPE on LaunchShortcutsAction.createContext<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75588">75588</a>: generalize watchpoint to debug platform<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 5, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75111">75111</a>: ArrayIndexOutOfBoundsException in ContentWidthCache.textChanged<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75177">75177</a>: Error setting Console Preference<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75204">75204</a>: NPE using build 200409240800<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75226">75226</a>: IllegalArgumentException setting console size from 200k to 400k<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75506">75506</a>: Adjust for the many deprecations in the command extension point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75405">75405</a>: Allow a logical structure type to provide more than one logical structure<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75123">75123</a>: Use PerspectiveLabelProvider in ViewManagementPreferencePage<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75372">75372</a>: NPE in org.eclipse.ui.console.IOConsole.getHyperlink<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72209">72209</a>: Inspect and Display popup does not allow copying of values<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 28, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74947">74947</a>: Remove warnings from 200409240800 build<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74741">74741</a>: console hyperlink search is slow<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34052">34052</a>: CTRL-Z Not Recognized as EOF<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 21-23, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56253">56253</a>: [Generic Console] no support for extending the toolbar<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73942">73942</a>: IllegalMonitorStateException pasting into the Java Stack Trace Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73908">73908</a>: [Console] Incorrect colorization when multi streams write to same line<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56252">56252</a>: [Generic Console] no support for enabled/disabled lifecycles<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73957">73957</a>: API break introduced with IConsoleHyperlink change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73924">73924</a>: Console can be removed before it's page is created<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73893">73893</a>: Should disallow close in LCD when running an operation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73842">73842</a>: Remove from Group enabled when breakpoint not in a group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73576">73576</a>: Pattern matching in IOConsole is too expensive<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73996">73996</a>: Add to Group / Remove from Group incorrectly disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74005">74005</a>: Persist last breakpoint group across invocations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73460">73460</a>: Console flicker when launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73950">73950</a>: MemoryView leaks AddMemoryBlockAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73951">73951</a>: CopyViewTabToClipboardAction leaks Clipboard<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74033">74033</a>: ClassCastException on selection change in Breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73840">73840</a>: Group by>File seems to only match on name<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74000">74000</a>: ClassCastException filtering for "show support breakpoints"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73870">73870</a>: [misc] NPE when terminating large output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73917">73917</a>: [Console] Missing hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74080">74080</a>: Process console did not flush stream monitors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74124">74124</a>: Console type should be promoted to IConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74308">74308</a>: Wrong number of lines in output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74331">74331</a>: CPU at 99% after a debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74340">74340</a>: NPE in IOConsoleViewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74370">74370</a>: NPE from ProcessConsolePageParticipant<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74039">74039</a>: NPE in ProcessConsole.connect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68077">68077</a>: Manually closed views do not open when view management is reset<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73841">73841</a>: Icon for grouped breakpoints not disabled with set to skip breakpoints<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74229">74229</a>: Debug test failure for program arguments<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74283">74283</a>: Empty output in debug tests<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74703">74703</a>: Console view activated even if nothing is written to standart out<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74431">74431</a>: [Mac] runtime discovers JDI interfaces in classes.jar before jdi.jar<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48286">48286</a>: Add support for input on consoles<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74024">74024</a>: Console buffer implementation is line based rather than char based<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74428">74428</a>: Clearing console during output breaks hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74363">74363</a>: &quot;Terminate and Remove&quot; action doesn't close a view tied to a Context<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74563">74563</a>: renaming breakpoint group collapses group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74560">74560</a>: Group all should expand groups on creation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74381">74381</a>: Launch view manages views in other perspectives<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74384">74384</a>: Numerous action delegates leaked on debug perspective closed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74465">74465</a>: Pasting multiple lines in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74558">74558</a>: "Dissolve Group" should be "Ungroup"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21597">21597</a>: Difficult to enter text in debug console<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 14, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72317">72317</a>: Copying from IOConsole inserts extra line breaks.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73823">73823</a>: Reorganize BreakpointsView menus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72167">72167</a>: ProcessConsole should extend IOConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44986">44986</a>: Support for Breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73704">73704</a>: Provide action to group breakpoints by Type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70066">70066</a>: Bind &quot;Alt+Shift+Q C&quot; to active console view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73493">73493</a>: Default VM Args field should parse quotes intuitively<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73577">73577</a>: Find (Ctrl-F) not enabled in ConsoleView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73779">73779</a>: Allow browse in &quot;Add To Group&quot; dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70471">70471</a>: ExpressionManager#handleDebugEvents() doesn't work as intended<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73844">73844</a>: Mnemonics missing from breakpoint groups<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 7, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72986">72986</a>: ExpressionInformationControl leaks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72000">72000</a>: Run as Application: duplicate menmonics<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72449">72449</a>: NPE in VariablesView.saveState<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73068">73068</a>: Support for ordering launch shortcuts<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73069">73069</a>: bogus extension point id in org.eclipse.debug.ui.launchShortcuts<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73110">73110</a>: IConsoleColorProvider is not disconnected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72472">72472</a>: Remove unused dependancies<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72551">72551</a>: add System property to test suite to turn off workbench and console activation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51562">51562</a>: console doesn't wrap input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72317">72317</a>: IOConsole inserts extra line breaks when pasting<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72517">72517</a>: Replace &quot;Run As &gt;&quot; with context launch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73272">73272</a>: NPE in ProcessConsoleManager when no process type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70664">70664</a>: TVT3.0: Improper characters combination &quot;Run As&quot;<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 31, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72300">72300</a>: Confirmation on RemoveAll actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72350">72350</a>: NPE in BreakpointsView.dispose<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72881">72881</a>: LineTracker Test Failure<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72483">72483</a>: NPE attempt to Inspect if never shown Variable view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27895">27895</a>: Add new command to Run-menu; Resume All Threads<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67383">67383</a>: breakpoint manage fires add notificaiton on initialization<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 24, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72169">72169</a>: provided debug context for non-UI thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26830">26830</a>: Allow external programs to create tasks and markers through regex matches on the output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27591">27591</a>: [Console] Hyperlink color not used<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72165">72165</a>: MessageConsole should extend IOConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70864">70864</a>: API method to show the console view has a bug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28193">28193</a>: Watch expressions updating when expression view not visible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31899">31899</a>: Consolidate "Java" hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71292">71292</a>: Launch name is truncated in MRU list<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71429">71429</a>: Choosing 'Cancel' in the ${string_prompt} dialog does not cancel the Run command<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61447">61447</a>: keybinding clean up.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71561">71561</a>: Inspect popup doesn't handle tabs in inspected expression<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72370">72370</a>: [Console] ArrayIndexOutOfBounds<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 17, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70354">70354</a>: JSP editor does not scroll to/highlight the current execution line when debug with JDT<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 3, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69470">69470</a>: TVT3.0: NL Truncation occurs in Run -> External Tools -> External Tools<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69723">69723</a>: TVT3.0: Truncated text in memory view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69952">69952</a>: ILaunchConfigurationListener's launchConfigurationRemoved gets a configuration that doesn't exist<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71185">71185</a>: TVT3.0: Extra mnemonics for Debug, Run, and External tools<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61566">61566</a>: Launch configs dialog: Arrow_Up/Down in configurations tree extremely slow<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64370">64370</a>: Fix setTitle deprecations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68808">68808</a>: all debug actions (step, terminate, etc), should be done async<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 27, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69536">69536</a>: Infinite loop on rendering variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69978">69978</a>: TVT3.0: Two shortcuts for one menuitem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69057">69057</a>: Incorrect icon in Breakpoints view when breakpoint manager disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69190">69190</a>: NullPointerException @ org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer.isFindDuplicates<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70472">70472</a>: MemoryBlockManager has redundant null check<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70492">70492</a>: Possible NPE in AddSourceContainerDialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70493">70493</a>: Possible NPE in ViewTabCursorManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70495">70495</a>: Redundant null check in RefreshTab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70499">70499</a>: Unnecessary null check in ContextualLaunchAction#selectionChanged(...)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69452">69452</a>: NPE initializing source lookup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70571">70571</a>: launch config save location on Common tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68523">68523</a>: missing `return' in org.eclipse.ui.internal.console.MessageConsolePartition<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24829">24829</a>: Multiple toString results shown if hold down arrow key<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68413">68413</a>: NPE from InstructionPointerManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70051">70051</a>: MemoryViewTab does not calculate delta and selected address correctly after error<br>
-
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
deleted file mode 100644
index d7efd38e1..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.EventObject;
-
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * A debug event describes an event in a program being debugged or
- * in a running process. Debug models and process implementations
- * are required to generate debug events as specified by this class.
- * <p>
- * The following list defines the events generated for each debug
- * model element.
- * The <code>getSource()</code> method of a debug event
- * returns the element associated with the event.
- * Creation events are guaranteed to occur in a top
- * down order - that is, parents are created before children.
- * Termination events are guaranteed to occur in a bottom up order -
- * that is, children before parents. However, termination events are not guaranteed
- * for all elements that are created. That is, terminate events can be coalesced - a
- * terminate event for a parent signals that all children have been terminated.
- * </p>
- * <p>
- * A debug model may define model specific events by specifying a debug event
- * kind of <code>MODEL_SPECIFIC</code>. A model specific event is identified by the
- * event source (i.e. by the debug model that generated the event). The detail of
- * a model specific event is client defined. Note that model specific events are
- * not understood by the debug platform, and are thus ignored.
- * </p>
- * <p>
- * The generic <code>CHANGE</code> event can be fired at any time by any element.
- * Generally, a client of a debug model, such as as a UI, can get sufficient
- * information to update by listening/responding to the other event kinds. However,
- * if a debug model needs to inform clients of a change that is not specified
- * by create/terminate/suspend/resume, the <code>CHANGE</code> event may be used.
- * For example, generally, the only way a thread or any of its children can change
- * state between a suspend and resume operation, is if the thread or owning debug
- * target is terminated. However, if a debug model supports some other operation
- * that would allow a debug element to change state while suspended, the debug model
- * would fire a change event for that element. The valid detail codes for a
- * change event are:<ul>
- * <li><code>STATE</code> - indicates the state of an element has changed, but its
- * children are not affected. A client would use a state change event to update
- * a label of the affected element, but would not update any children.</li>
- * <li><code>CONTENT</code> - indicates that a debug element's value or contents have
- * changed in some way. For example, when the value of a variable is changed
- * explicitly, the variable should fire a content change event.</li>
- * </ul>
- * </p>
- * <ul>
- * <li><code>IProcess</code>
- * <ul>
- * <li><code>CREATE</code> - a process has been created and is executing.</li>
- * <li><code>TERMINATE</code> - a process has terminated.</li>
- * </ul>
- * <li><code>IDebugTarget</code>
- * <ul>
- * <li><code>CREATE</code> - a debug target has been created and is ready
- * to begin a debug session.</li>
- * <li><code>TERMINATE</code> - a debug target has terminated and the debug
- * session has ended.</li>
- * <li><code>SUSPEND</code> - a debug target has suspended. Event detail provides
- * the reason for the suspension:<ul>
- * <li><code>STEP_END</code> - a request to step has completed</li>
- * <li><code>BREAKPOINT</code> - a breakpoint has been hit</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the target to suspend
- * (i.e. an explicit call to <code>suspend()</code>)</li>
- * <li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>
- * </ul>
- * </li>
- * <li><code>RESUME</code> - a debug target has resumed. Event detail provides
- * the reason for the resume:<ul>
- * <li><code>STEP_INTO</code> - a target is being resumed because of a request to step into</li>
- * <li><code>STEP_OVER</code> - a target is being resumed because of a request to step over</li>
- * <li><code>STEP_RETURN</code> - a target is being resumed because of a request to step return</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the target to be resumed
- * (i.e. an explicit call to <code>resume()</code>)</li>
- * <li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>
- * </ul>
- * </li>
- * </ul>
- * </li>
- * <li><code>IThread</code>
- * <ul>
- * <li><code>CREATE</code> - a thread has been created in a debug target.</li>
- * <li><code>TERMINATE</code> - a thread has terminated.</li>
- * <li><code>SUSPEND</code> - a thread has suspended execution. Event detail provides
- * the reason for the suspension:<ul>
- * <li><code>STEP_END</code> - a request to step has completed</li>
- * <li><code>BREAKPOINT</code> - a breakpoint has been hit</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the thread to suspend
- * (i.e. an explicit call to <code>suspend()</code>)</li>
- * <li><code>EVALUATION</code> - an expression evaluation has ended that may
- * have had side effects in the debug target.</li>
- * <li><code>EVALUATION_IMPLICIT</code> - an expression evaluation has ended that
- * had no side effects in the debug target.</li>
- * <li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>
- * </ul>
- * </li>
- * <li><code>RESUME</code> - a thread has resumed execution. Event detail provides
- * the reason for the resume:<ul>
- * <li><code>STEP_INTO</code> - a thread is being resumed because of a request to step into</li>
- * <li><code>STEP_OVER</code> - a thread is being resumed because of a request to step over</li>
- * <li><code>STEP_RETURN</code> - a thread is being resumed because of a request to step return</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the thread to be resumed
- * (i.e. an explicit call to <code>resume()</code>)</li>
- * <li><code>EVALUATION</code> - an expression evaluation has started that may
- * have side effects in the debug target.</li>
- * <li><code>EVALUATION_IMPLICIT</code> - an expression evaluation has started that
- * will have no side effects in the debug target.</li>
- * <li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>
- * </ul>
- * </li>
- * </ul>
- * </li>
- * <li><code>IStackFrame</code> - no events are specified for stack frames.
- * When a thread is suspended, it has stack frames. When a thread resumes,
- * stack frames are unavailable.
- * </li>
- * <li><code>IVariable</code> - no events are specified for variables.
- * When a thread is suspended, stack frames have variables. When a thread resumes,
- * variables are unavailable.
- * </li>
- * <li><code>IValue</code> - no events are specified for values.
- * </li>
- * </ul>
- * <p>
- * Clients may instantiate this class. Clients are not intended to subclass this class.
- * </p>
- */
-public final class DebugEvent extends EventObject {
-
- /**
- * All serializable objects should have a stable serialVersionUID
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Resume event kind.
- */
- public static final int RESUME= 0x0001;
-
- /**
- * Suspend event kind.
- */
- public static final int SUSPEND= 0x0002;
-
- /**
- * Create event kind.
- */
- public static final int CREATE= 0x0004;
-
- /**
- * Terminate event kind.
- */
- public static final int TERMINATE= 0x0008;
-
- /**
- * Change event kind.
- */
- public static final int CHANGE= 0x0010;
-
- /**
- * Model specific event kind. The detail codes
- * for a model specific event are client defined.
- *
- * @since 2.1.2
- */
- public static final int MODEL_SPECIFIC= 0x0020;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * into action.
- * @since 2.0
- */
- public static final int STEP_INTO= 0x0001;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * over action.
- * @since 2.0
- */
- public static final int STEP_OVER= 0x0002;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * return action.
- * @since 2.0
- */
- public static final int STEP_RETURN= 0x0004;
-
- /**
- * Step end detail. Indicates a thread was suspended due
- * to the completion of a step action.
- */
- public static final int STEP_END= 0x0008;
-
- /**
- * Breakpoint detail. Indicates a thread was suspended by
- * a breakpoint.
- */
- public static final int BREAKPOINT= 0x0010;
-
- /**
- * Client request detail. Indicates a thread was suspended due
- * to a client request.
- */
- public static final int CLIENT_REQUEST= 0x0020;
-
- /**
- * Evaluation detail. Indicates that a thread was resumed or
- * suspended to perform an expression evaluation.
- *
- * @since 2.0
- */
- public static final int EVALUATION = 0x0040;
-
- /**
- * Evaluation detail. Indicates that a thread was resumed or
- * suspended to perform an implicit expression evaluation.
- * An implicit evaluation is an evaluation that is performed
- * as an indirect result of a user action.
- * Clients may use this detail event to decide whether or not
- * to alert the user that an evaluation is taking place..
- *
- * @since 2.0
- */
- public static final int EVALUATION_IMPLICIT = 0x0080;
-
- /**
- * State change detail. Indicates the state of a single
- * debug element has changed. Only valid for <code>CHANGE</code>
- * events.
- *
- * @since 2.0
- */
- public static final int STATE = 0x0100;
-
- /**
- * Content change detail. Indicates the content of a debug element
- * (and potentially its children) has changed. Only valid for
- * <code>CHANGE</code> events.
- *
- * @since 2.0
- */
- public static final int CONTENT = 0x0200;
-
- /**
- * Constant indicating that the kind or detail of a debug
- * event is unspecified.
- */
- public static final int UNSPECIFIED = 0;
-
- /**
- * The kind of event - one of the kind constants defined by
- * this class.
- */
- private int fKind= UNSPECIFIED;
-
- /**
- * The detail of the event - one of the detail constants defined by
- * this class.
- */
- private int fDetail= UNSPECIFIED;
-
- /**
- * Client defined data field.
- *
- * @since 2.1.2
- */
- private Object fData = null;
-
- /**
- * Constructs a new debug event of the given kind with a detail code of
- * <code>UNSPECIFIED</code>.
- *
- * @param eventSource the object associated with the event
- * @param kind the kind of debug event (one of the
- * kind constants defined by this class)
- */
- public DebugEvent(Object eventSource, int kind) {
- this(eventSource, kind, UNSPECIFIED);
- }
-
- /**
- * Constructs a new debug event of the given kind with the given detail.
- *
- * @param eventSource the object associated with the event
- * @param kind the kind of debug event (one of the
- * kind constants defined by this class)
- * @param detail extra information about the event (one of the
- * detail constants defined by this class or a client defined detail if this is a model specific event)
- */
- public DebugEvent(Object eventSource, int kind, int detail) {
- super(eventSource);
- if ((kind & (RESUME | SUSPEND | CREATE | TERMINATE | CHANGE | MODEL_SPECIFIC)) == 0)
- throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_kind")); //$NON-NLS-1$
- if (kind != MODEL_SPECIFIC && detail != UNSPECIFIED && (detail & (STEP_END | STEP_INTO | STEP_OVER | STEP_RETURN | BREAKPOINT | CLIENT_REQUEST |EVALUATION | EVALUATION_IMPLICIT | STATE | CONTENT)) == 0)
- throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_detail")); //$NON-NLS-1$
- fKind= kind;
- fDetail= detail;
- }
-
- /**
- * Returns a constant describing extra detail about the event - either one
- * of the detail constants defined by this class, possibly
- * <code>UNSPECIFIED</code>, or a client defined detail if this is a model specific event.
- *
- * @return the detail code
- */
- public int getDetail() {
- return fDetail;
- }
-
- /**
- * Returns this event's kind - one of the kind constants defined by this class.
- *
- * @return the kind code
- */
- public int getKind() {
- return fKind;
- }
-
- /**
- * Returns whether this event's detail indicates the
- * beginning of a step event. This event's detail is one
- * of <code>STEP_INTO</code>, <code>STEP_OVER</code>, or
- * <code>STEP_RETURN</code>.
- *
- * @return whether this event's detail indicates the beginning
- * of a step event.
- * @since 2.0
- */
- public boolean isStepStart() {
- return (getDetail() & (STEP_INTO | STEP_OVER | STEP_RETURN)) > 0;
- }
-
- /**
- * Returns whether this event's detail indicates an
- * evaluation. This event's detail is one
- * of <code>EVALUATION</code>, or <code>EVALUATION_IMPLICIT</code>.
- *
- * @return whether this event's detail indicates an evaluation.
- * @since 2.0
- */
- public boolean isEvaluation() {
- return (getDetail() & (EVALUATION | EVALUATION_IMPLICIT)) > 0;
- }
-
- /**
- * Sets this event's application defined data.
- *
- * @param data application defined data
- * @since 2.1.2
- */
- public void setData(Object data) {
- fData = data;
- }
-
- /**
- * Returns this event's application defined data, or <code>null</code> if none
- *
- * @return application defined data, or <code>null</code> if none
- * @since 2.1.2
- */
- public Object getData() {
- return fData;
- }
-
- /**
- * @see java.lang.Object#toString()
- */
- public String toString() {
- StringBuffer buf = new StringBuffer("DebugEvent["); //$NON-NLS-1$
- if (getSource() != null) {
- buf.append(getSource().toString());
- } else {
- buf.append("null"); //$NON-NLS-1$
- }
- buf.append(", "); //$NON-NLS-1$
- switch (getKind()) {
- case CREATE:
- buf.append("CREATE"); //$NON-NLS-1$
- break;
- case TERMINATE:
- buf.append("TERMINATE"); //$NON-NLS-1$
- break;
- case RESUME:
- buf.append("RESUME"); //$NON-NLS-1$
- break;
- case SUSPEND:
- buf.append("SUSPEND"); //$NON-NLS-1$
- break;
- case CHANGE:
- buf.append("CHANGE"); //$NON-NLS-1$
- break;
- case UNSPECIFIED:
- buf.append("UNSPECIFIED"); //$NON-NLS-1$
- break;
- case MODEL_SPECIFIC:
- buf.append("MODEL_SPECIFIC"); //$NON-NLS-1$
- break;
- }
- buf.append(", "); //$NON-NLS-1$
- switch (getDetail()) {
- case BREAKPOINT:
- buf.append("BREAKPOINT"); //$NON-NLS-1$
- break;
- case CLIENT_REQUEST:
- buf.append("CLIENT_REQUEST"); //$NON-NLS-1$
- break;
- case STEP_END:
- buf.append("STEP_END"); //$NON-NLS-1$
- break;
- case STEP_INTO:
- buf.append("STEP_INTO"); //$NON-NLS-1$
- break;
- case STEP_OVER:
- buf.append("STEP_OVER"); //$NON-NLS-1$
- break;
- case STEP_RETURN:
- buf.append("STEP_RETURN"); //$NON-NLS-1$
- break;
- case EVALUATION:
- buf.append("EVALUATION"); //$NON-NLS-1$
- break;
- case EVALUATION_IMPLICIT:
- buf.append("EVALUATION_IMPLICIT"); //$NON-NLS-1$
- break;
- case STATE:
- buf.append("STATE"); //$NON-NLS-1$
- break;
- case CONTENT:
- buf.append("CONTENT"); //$NON-NLS-1$
- break;
- case UNSPECIFIED:
- buf.append("UNSPECIFIED"); //$NON-NLS-1$
- break;
- default:
- // model specific
- buf.append(getDetail());
- break;
- }
- buf.append("]"); //$NON-NLS-1$
- return buf.toString();
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
deleted file mode 100644
index ecbff3dc8..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-
-/**
- * A checked exception representing a failure.
- * <p>
- * Defines status codes relevant to the debug plug-in. When a
- * debug exception is thrown, it contains a status object describing
- * the cause of the exception. The status objects originating from the
- * debug plug-in use the codes defined in this class.
- * </p>
- * <p>
- * Clients may instantiate this class. Clients are not intended to subclass this class.
- * </p>
- * @see IStatus
- */
-public class DebugException extends CoreException {
-
- /**
- * All serializable objects should have a stable serialVersionUID
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Indicates a request made of a debug element has failed
- * on the target side.
- */
- public static final int TARGET_REQUEST_FAILED = 5010;
-
- /**
- * Indicates a request is not supported by the capabilities of a debug element.
- * For example, a request was made to terminate an element that does not
- * support termination.
- */
- public static final int NOT_SUPPORTED = 5011;
-
- /**
- * Indicates that a request made of manager has failed, or a request made of a
- * debug element has failed on the client side (that is, before the request was
- * sent to the debug target).
- */
- public static final int REQUEST_FAILED = 5012;
-
- /**
- * Indicates an internal error. This is an unexpected state.
- */
- public static final int INTERNAL_ERROR = 5013;
-
- /**
- * Indicates an improperly configured breakpoint. Breakpoints have a minimal
- * set of required attributes as defined by the breakpoint manager.
- *
- * @see IBreakpointManager
- */
- public static final int CONFIGURATION_INVALID = 5014;
-
- /**
- * Indicates a launch configuration could not be restored because its
- * launch configuration type definition is missing.
- *
- * @since 3.0
- */
- public static final int MISSING_LAUNCH_CONFIGURATION_TYPE = 5020;
-
- /**
- * Constructs a new debug exception with the given status object.
- *
- * @param status the status object describing this exception
- * @see IStatus
- */
- public DebugException(IStatus status) {
- super(status);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
deleted file mode 100644
index 20d6a26c4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.RuntimeProcess;
-import org.eclipse.debug.internal.core.BreakpointManager;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.ExpressionManager;
-import org.eclipse.debug.internal.core.LaunchManager;
-import org.eclipse.debug.internal.core.ListenerList;
-import org.eclipse.debug.internal.core.LogicalStructureManager;
-import org.eclipse.debug.internal.core.MemoryBlockManager;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils;
-import org.eclipse.osgi.service.environment.Constants;
-import org.osgi.framework.BundleContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
-
-/**
- * There is one instance of the debug plug-in available from
- * <code>DebugPlugin.getDefault()</code>. The debug plug-in provides:
- * <ul>
- * <li>access to the breakpoint manager</li>
- * <li>access to the launch manager</li>
- * <li>access to the expression manager</li>
- * <li>access to the registered launcher extensions</li>
- * <li>access to the memory block manager</li>
- * <li>debug event notification</li>
- * <li>status handlers</li>
- * </ul>
- * <p>
- * Clients may not instantiate or subclass this class.
- * </p>
- */
-public class DebugPlugin extends Plugin {
-
- /**
- * Unique identifier constant (value <code>"org.eclipse.debug.core"</code>)
- * for the Debug Core plug-in.
- */
- private static final String PI_DEBUG_CORE = "org.eclipse.debug.core"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchConfigurationTypes"</code>)
- * for the launch configuration types extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPES= "launchConfigurationTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchConfigurationComparators"</code>)
- * for the launch configuration comparators extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_LAUNCH_CONFIGURATION_COMPARATORS= "launchConfigurationComparators"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"breakpoints"</code>) for the
- * breakpoints extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_BREAKPOINTS= "breakpoints"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"statusHandlers"</code>) for the
- * status handlers extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_STATUS_HANDLERS= "statusHandlers"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourceLocators"</code>) for the
- * source locators extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_SOURCE_LOCATORS= "sourceLocators"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchModes"</code>) for the
- * source modes extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LAUNCH_MODES= "launchModes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchDelegates"</code>) for the
- * launch delegates extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LAUNCH_DELEGATES= "launchDelegates"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"processFactories"</code>) for the
- * process factories extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_PROCESS_FACTORIES = "processFactories"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"logicalStructureTypes"</code>) for the
- * logical structure types extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LOGICAL_STRUCTURE_TYPES = "logicalStructureTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"logicalStructureProviders"</code>) for the
- * logical structure types extension point.
- *
- * @since 3.1
- */
- public static final String EXTENSION_POINT_LOGICAL_STRUCTURE_PROVIDERS = "logicalStructureProviders"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourceContainerTypes"</code>) for the
- * source container types extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_SOURCE_CONTAINER_TYPES = "sourceContainerTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourcePathComputers"</code>) for the
- * source path computers extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_SOURCE_PATH_COMPUTERS = "sourcePathComputers"; //$NON-NLS-1$
-
- /**
- * Status code indicating an unexpected internal error.
- */
- public static final int INTERNAL_ERROR = 120;
-
- /**
- * Status code indicating that the Eclipse runtime does not support
- * launching a program with a working directory. This feature is only
- * available if Eclipse is run on a 1.3 runtime or higher.
- * <p>
- * A status handler may be registered for this error condition,
- * and should return a <code>Boolean</code> indicating whether the program
- * should be relaunched with the default working directory.
- * </p>
- */
- public static final int ERR_WORKING_DIRECTORY_NOT_SUPPORTED = 115;
-
- /**
- * The launch configuration attribute that designates the process factory ID
- * for the process factory to be used when creating a new process as a result of launching
- * the launch configuration.
- * @since 3.0
- */
- public static final String ATTR_PROCESS_FACTORY_ID = "process_factory_id"; //$NON-NLS-1$
-
- /**
- * The launch configuration attribute that designates whether or not it's associated
- * launch should capture output.
- *
- * @since 3.1
- */
- public static final String ATTR_CAPTURE_OUTPUT = PI_DEBUG_CORE + ".capture_output"; //$NON-NLS-1$
-
- /**
- * The singleton debug plug-in instance.
- */
- private static DebugPlugin fgDebugPlugin= null;
-
- /**
- * The singleton breakpoint manager.
- */
- private BreakpointManager fBreakpointManager;
-
- /**
- * The singleton expression manager.
- */
- private ExpressionManager fExpressionManager;
-
- /**
- * The singleton launch manager.
- */
- private LaunchManager fLaunchManager;
-
- /**
- * The singleton memory block manager.
- * @since 3.1
- */
- private MemoryBlockManager fMemoryBlockManager;
-
- /**
- * The collection of debug event listeners.
- */
- private ListenerList fEventListeners;
-
- /**
- * Event filters, or <code>null</code> if none.
- */
- private ListenerList fEventFilters = null;
-
- /**
- * Whether this plugin is in the process of shutting
- * down.
- */
- private boolean fShuttingDown= false;
-
- /**
- * Whether event dispatch is in progress (if > 0)
- *
- * @since 2.1
- */
- private int fDispatching = 0;
-
- /**
- * Queue of runnables to execute after event dispatch is
- * complete.
- *
- * @since 2.1
- */
- private Vector fRunnables = null;
-
- /**
- * Job that executes runnables
- *
- * @since 3.0
- */
- private AsynchJob fAsynchJob = null;
-
- /**
- * Table of status handlers. Keys are {plug-in identifier, status code}
- * pairs, and values are associated <code>IConfigurationElement</code>s.
- */
- private HashMap fStatusHandlers = null;
-
- /**
- * Map of process factories. Keys are process factory IDs
- * and values are associated <code>IConfigurationElement</code>s.
- * @since 3.0
- */
- private HashMap fProcessFactories = null;
-
- /**
- * Mode constants for the event notifier
- */
- private static final int NOTIFY_FILTERS = 0;
- private static final int NOTIFY_EVENTS = 1;
-
- /**
- * Queue of debug events to fire to listeners.
- * @since 3.1
- */
- private List fEventQueue = new ArrayList();
-
- /**
- * Job to fire events to listeners.
- * @since 3.1
- */
- private EventDispatchJob fEventDispatchJob = new EventDispatchJob();
-
- /**
- * Event dispatch job
- * @since 3.1
- */
- class EventDispatchJob extends Job {
-
- /**
- * Creates a new event dispatch job.
- */
- public EventDispatchJob() {
- super(DebugCoreMessages.getString("DebugPlugin.1")); //$NON-NLS-1$
- setPriority(Job.INTERACTIVE);
- }
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
-
- while (!fEventQueue.isEmpty()) {
- DebugEvent[] events = null;
- synchronized (fEventQueue) {
- if (!fEventQueue.isEmpty()) {
- events = (DebugEvent[]) fEventQueue.remove(0);
- }
- }
- if (events != null) {
- getEventNotifier().dispatch(events);
- }
- }
- return Status.OK_STATUS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#shouldRun()
- */
- public boolean shouldRun() {
- return shouldSchedule();
- }
- /* (non-Javadoc)
- * @see org.eclipse.core.internal.jobs.InternalJob#shouldSchedule()
- */
- public boolean shouldSchedule() {
- return !(isShuttingDown() || fEventListeners == null);
- }
-
- }
-
- /**
- * Returns the singleton instance of the debug plug-in.
- */
- public static DebugPlugin getDefault() {
- return fgDebugPlugin;
- }
-
- /**
- * Sets the singleton instance of the debug plug-in.
- *
- * @param plugin the debug plug-in, or <code>null</code>
- * when shutting down
- */
- private static void setDefault(DebugPlugin plugin) {
- fgDebugPlugin = plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- return PI_DEBUG_CORE;
- }
-
- /**
- * Constructs the debug plug-in.
- * <p>
- * An instance of this plug-in runtime class is automatically created
- * when the facilities provided by this plug-in are required.
- * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>
- * </p>
- */
- public DebugPlugin() {
- super();
- setDefault(this);
- }
-
- /**
- * Adds the given listener to the collection of registered debug
- * event listeners. Has no effect if an identical listener is already
- * registered.
- *
- * @param listener the listener to add
- * @since 2.0
- */
- public void addDebugEventListener(IDebugEventSetListener listener) {
- if (fEventListeners == null) {
- fEventListeners = new ListenerList(20);
- }
- fEventListeners.add(listener);
- }
-
- /**
- * Notifies all registered debug event set listeners of the given
- * debug events. Events which are filtered by a registered debug event
- * filter are not fired.
- *
- * @param events array of debug events to fire
- * @see IDebugEventFilter
- * @see IDebugEventSetListener
- * @since 2.0
- */
- public void fireDebugEventSet(DebugEvent[] events) {
- if (isShuttingDown() || events == null || fEventListeners == null)
- return;
- synchronized (fEventQueue) {
- fEventQueue.add(events);
- }
- fEventDispatchJob.schedule();
- }
-
- /**
- * Asynchronously executes the given runnable in a seperate
- * thread, after debug event dispatch has completed. If debug
- * events are not currently being dispatched, the runnable is
- * scheduled to run in a seperate thread immediately.
- *
- * @param r runnable to execute asynchronously
- * @since 2.1
- */
- public void asyncExec(Runnable r) {
- if (fRunnables == null) {
- // initialize runnables and async job
- fRunnables= new Vector(5);
- fAsynchJob = new AsynchJob();
- }
- fRunnables.add(r);
- if (!isDispatching()) {
- fAsynchJob.schedule();
- }
- }
-
- /**
- * Returns the breakpoint manager.
- *
- * @return the breakpoint manager
- * @see IBreakpointManager
- */
- public IBreakpointManager getBreakpointManager() {
- if (fBreakpointManager == null) {
- fBreakpointManager = new BreakpointManager();
- }
- return fBreakpointManager;
- }
-
- /**
- * Returns the launch manager.
- *
- * @return the launch manager
- * @see ILaunchManager
- */
- public ILaunchManager getLaunchManager() {
- if (fLaunchManager == null) {
- fLaunchManager = new LaunchManager();
- }
- return fLaunchManager;
- }
-
- /**
- * Returns the memory block manager.
- * @return the memory block manager.
- * @see IMemoryBlockManager
- * @since 3.1
- */
- public IMemoryBlockManager getMemoryBlockManager(){
- if (fMemoryBlockManager == null) {
- fMemoryBlockManager = new MemoryBlockManager();
- }
- return fMemoryBlockManager;
- }
-
- /**
- * Returns the status handler registered for the given
- * status, or <code>null</code> if none.
- *
- * @return the status handler registered for the given
- * status, or <code>null</code> if none
- * @since 2.0
- */
- public IStatusHandler getStatusHandler(IStatus status) {
- StatusHandlerKey key = new StatusHandlerKey(status.getPlugin(), status.getCode());
- if (fStatusHandlers == null) {
- initializeStatusHandlers();
- }
- IConfigurationElement config = (IConfigurationElement)fStatusHandlers.get(key);
- if (config != null) {
- try {
- Object handler = config.createExecutableExtension("class"); //$NON-NLS-1$
- if (handler instanceof IStatusHandler) {
- return (IStatusHandler)handler;
- }
- invalidStatusHandler(null, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.Registered_status_handler_{0}_does_not_implement_required_interface_IStatusHandler._1"), new String[] {config.getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } catch (CoreException e) {
- log(e);
- }
- }
- return null;
- }
-
- /**
- * Returns the expression manager.
- *
- * @return the expression manager
- * @see IExpressionManager
- * @since 2.0
- */
- public IExpressionManager getExpressionManager() {
- if (fExpressionManager == null) {
- fExpressionManager = new ExpressionManager();
- }
- return fExpressionManager;
- }
-
- /**
- * Removes the given listener from the collection of registered debug
- * event listeners. Has no effect if an identical listener is not already
- * registered.
- *
- * @param listener the listener to remove
- * @since 2.0
- */
- public void removeDebugEventListener(IDebugEventSetListener listener) {
- if (fEventListeners != null) {
- fEventListeners.remove(listener);
- }
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- try {
- setShuttingDown(true);
-
- if (fAsynchJob != null) {
- fAsynchJob.cancel();
- }
- if (fLaunchManager != null) {
- fLaunchManager.shutdown();
- }
- if (fBreakpointManager != null) {
- fBreakpointManager.shutdown();
- }
- if (fMemoryBlockManager != null) {
- fMemoryBlockManager.shutdown();
- }
-
- if (fEventListeners != null) {
- fEventListeners.removeAll();
- }
- SourceLookupUtils.shutdown();
- setDefault(null);
- ResourcesPlugin.getWorkspace().removeSaveParticipant(this);
- } finally {
- super.stop(context);
- }
- }
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @return the process
- * @see IProcess
- */
- public static IProcess newProcess(ILaunch launch, Process process, String label) {
- return newProcess(launch, process, label, null);
- }
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch, and the process is initialized
- * with the given attribute map.
- *
- * The process will be created by the <code>IProcessFactory<code> if it has been
- * designated via the org.eclipse.debug.core.processFactories extension point for the
- * process factory id indicated in the launch configuration associated with the launch.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @param attributes initial values for the attribute map
- * @return the process <code>null</code> can be returned if errors occur dealing with the process factory
- * designated to create the process.
- * @see IProcess
- * @since 2.1
- */
- public static IProcess newProcess(ILaunch launch, Process process, String label, Map attributes) {
- ILaunchConfiguration config= launch.getLaunchConfiguration();
- String processFactoryID= null;
- if (config != null) {
- try {
- processFactoryID= config.getAttribute(ATTR_PROCESS_FACTORY_ID, (String)null);
- } catch (CoreException e) {
- }
- }
- if (processFactoryID != null) {
- DebugPlugin plugin= DebugPlugin.getDefault();
- if (plugin.fProcessFactories == null) {
- plugin.initializeProcessFactories();
- }
- IConfigurationElement element= (IConfigurationElement) plugin.fProcessFactories.get(processFactoryID);
- if (element == null) {
- return null;
- }
- IProcessFactory processFactory= null;
- try {
- processFactory = (IProcessFactory)element.createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException exception) {
- log(exception);
- return null;
- }
- return processFactory.newProcess(launch, process, label, attributes);
- }
- return new RuntimeProcess(launch, process, label, attributes);
- }
-
- /**
- * Returns any logical structure types that have been contributed for the given
- * value.
- *
- * @param value the value for which logical structure types have been requested
- * @return logical structure types that have been contributed for the given
- * value, possibly an empty collection
- *
- * @since 3.0
- */
- public static ILogicalStructureType[] getLogicalStructureTypes(IValue value) {
- return LogicalStructureManager.getDefault().getLogicalStructureTypes(value);
- }
-
- /**
- * Convenience method that performs a runtime exec on the given command line
- * in the context of the specified working directory, and returns the
- * resulting process. If the current runtime does not support the
- * specification of a working directory, the status handler for error code
- * <code>ERR_WORKING_DIRECTORY_NOT_SUPPORTED</code> is queried to see if the
- * exec should be re-executed without specifying a working directory.
- *
- * @param cmdLine the command line
- * @param workingDirectory the working directory, or <code>null</code>
- * @return the resulting process or <code>null</code> if the exec is
- * cancelled
- * @see Runtime
- *
- * @since 2.1
- */
- public static Process exec(String[] cmdLine, File workingDirectory) throws CoreException {
- return exec(cmdLine, workingDirectory, null);
- }
-
- /**
- * Convenience method that performs a runtime exec on the given command line
- * in the context of the specified working directory, and returns the
- * resulting process. If the current runtime does not support the
- * specification of a working directory, the status handler for error code
- * <code>ERR_WORKING_DIRECTORY_NOT_SUPPORTED</code> is queried to see if the
- * exec should be re-executed without specifying a working directory.
- *
- * @param cmdLine the command line
- * @param workingDirectory the working directory, or <code>null</code>
- * @param envp the environment variables set in the process, or <code>null</code>
- * @return the resulting process or <code>null</code> if the exec is
- * cancelled
- * @see Runtime
- *
- * @since 3.0
- */
- public static Process exec(String[] cmdLine, File workingDirectory, String[] envp) throws CoreException {
- Process p= null;
- try {
-
- if (workingDirectory == null) {
- p= Runtime.getRuntime().exec(cmdLine, envp);
- } else {
- p= Runtime.getRuntime().exec(cmdLine, envp, workingDirectory);
- }
- } catch (IOException e) {
- if (p != null) {
- p.destroy();
- }
- Status status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.Exception_occurred_executing_command_line._1"), e); //$NON-NLS-1$
- throw new CoreException(status);
- } catch (NoSuchMethodError e) {
- //attempting launches on 1.2.* - no ability to set working directory
- IStatus status = new Status(IStatus.ERROR, getUniqueIdentifier(), ERR_WORKING_DIRECTORY_NOT_SUPPORTED, DebugCoreMessages.getString("DebugPlugin.Eclipse_runtime_does_not_support_working_directory_2"), e); //$NON-NLS-1$
- IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
-
- if (handler != null) {
- Object result = handler.handleStatus(status, null);
- if (result instanceof Boolean && ((Boolean)result).booleanValue()) {
- p= exec(cmdLine, null);
- }
- }
- }
- return p;
- }
-
- /**
- * Returns whether this plug-in is in the process of
- * being shutdown.
- *
- * @return whether this plug-in is in the process of
- * being shutdown
- */
- private boolean isShuttingDown() {
- return fShuttingDown;
- }
-
- /**
- * Sets whether this plug-in is in the process of
- * being shutdown.
- *
- * @param value whether this plug-in is in the process of
- * being shutdown
- */
- private void setShuttingDown(boolean value) {
- fShuttingDown = value;
- }
-
- /**
- * Returns the collection of debug event listeners registered
- * with this plug-in.
- *
- * @return list of registered debug event listeners, instances
- * of <code>IDebugEventSetListeners</code>
- */
- private Object[] getEventListeners() {
- return fEventListeners.getListeners();
- }
-
- /**
- * Adds the given debug event filter to the registered
- * event filters. Has no effect if an identical filter
- * is already registerd.
- *
- * @param filter debug event filter
- * @since 2.0
- */
- public void addDebugEventFilter(IDebugEventFilter filter) {
- if (fEventFilters == null) {
- fEventFilters = new ListenerList(2);
- }
- fEventFilters.add(filter);
- }
-
- /**
- * Removes the given debug event filter from the registered
- * event filters. Has no effect if an identical filter
- * is not already registered.
- *
- * @param filter debug event filter
- * @since 2.0
- */
- public void removeDebugEventFilter(IDebugEventFilter filter) {
- if (fEventFilters != null) {
- fEventFilters.remove(filter);
- if (fEventFilters.size() == 0) {
- fEventFilters = null;
- }
- }
- }
-
- /**
- * Logs the given message if in debug mode.
- *
- * @param message the message to log
- * @since 2.0
- */
- public static void logDebugMessage(String message) {
- if (getDefault().isDebugging()) {
- // this message is intentionally not internationalized, as an exception may
- // be due to the resource bundle itself
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, "Internal message logged from Debug Core: " + message, null)); //$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
- * @since 2.0
- */
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- /**
- * Logs the specified throwable with this plug-in's log.
- *
- * @param t throwable to log
- * @since 2.0
- */
- public static void log(Throwable t) {
- IStatus status= new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, "Error logged from Debug Core: ", t); //$NON-NLS-1$
- log(status);
- }
-
- /**
- * Register status handlers.
- *
- */
- private void initializeStatusHandlers() {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.PI_DEBUG_CORE, EXTENSION_POINT_STATUS_HANDLERS);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fStatusHandlers = new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String id = configurationElement.getAttribute("plugin"); //$NON-NLS-1$
- String code = configurationElement.getAttribute("code"); //$NON-NLS-1$
-
- if (id != null && code != null) {
- try {
- StatusHandlerKey key = new StatusHandlerKey(id, Integer.parseInt(code));
- fStatusHandlers.put(key, configurationElement);
- } catch (NumberFormatException e) {
- // invalid status handler
- invalidStatusHandler(e, configurationElement.getAttribute("id")); //$NON-NLS-1$
- }
- } else {
- // invalid status handler
- invalidStatusHandler(null, configurationElement.getAttribute("id")); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Register process factories.
- *
- */
- private void initializeProcessFactories() {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.PI_DEBUG_CORE, EXTENSION_POINT_PROCESS_FACTORIES);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fProcessFactories = new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String id = configurationElement.getAttribute("id"); //$NON-NLS-1$
- String clss = configurationElement.getAttribute("class"); //$NON-NLS-1$
- if (id != null && clss != null) {
- fProcessFactories.put(id, configurationElement);
- } else {
- // invalid process factory
- String badDefiner= infos[i].getNamespace();
- log(new Status(IStatus.ERROR, DebugPlugin.PI_DEBUG_CORE, INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.31"), new String[] {badDefiner, id}), null)); //$NON-NLS-1$
- }
- }
- }
-
- private void invalidStatusHandler(Exception e, String id) {
- log(new Status(IStatus.ERROR, DebugPlugin.PI_DEBUG_CORE, INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.Invalid_status_handler_extension__{0}_2"), new String[] {id}), e)); //$NON-NLS-1$
- }
-
- /**
- * Key for status handler extensions - a plug-in identifier/code pair
- */
- class StatusHandlerKey {
-
- String fPluginId;
- int fCode;
-
- StatusHandlerKey(String pluginId, int code) {
- fPluginId = pluginId;
- fCode = code;
- }
-
- public int hashCode() {
- return fPluginId.hashCode() + fCode;
- }
-
- public boolean equals(Object obj) {
- if (obj instanceof StatusHandlerKey) {
- StatusHandlerKey s = (StatusHandlerKey)obj;
- return fCode == s.fCode && fPluginId.equals(s.fPluginId);
- }
- return false;
- }
- }
-
- /**
- * Returns whether any event filters are registered
- *
- * @return whether any event filters are registered
- */
- private boolean hasEventFilters() {
- return fEventFilters != null && fEventFilters.size() > 0;
- }
-
- /**
- * Sets whether debug events are being dispatched
- */
- private synchronized void setDispatching(boolean dispatching) {
- if (dispatching) {
- fDispatching++;
- } else {
- fDispatching--;
- }
- if (!isDispatching()) {
- if (fAsynchJob != null) {
- fAsynchJob.schedule();
- }
- }
- }
-
- /**
- * Returns whether debug events are being dispatched
- */
- private synchronized boolean isDispatching() {
- return fDispatching > 0;
- }
-
- /**
- * Executes runnables after event dispatch is complete.
- *
- * @since 3.0
- */
- class AsynchJob extends Job {
-
- public AsynchJob() {
- super(DebugCoreMessages.getString("DebugPlugin.Debug_async_queue_1")); //$NON-NLS-1$
- setPriority(Job.INTERACTIVE);
- setSystem(true);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#shouldRun()
- */
- public boolean shouldRun() {
- return !fShuttingDown && !fRunnables.isEmpty();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus run(IProgressMonitor monitor) {
- // Executes runnables and empties the queue
- Vector v = null;
- synchronized (fRunnables) {
- v = fRunnables;
- fRunnables = new Vector(5);
- }
- MultiStatus failed = null;
- monitor.beginTask(DebugCoreMessages.getString("DebugPlugin.Debug_async_queue_1"), v.size()); //$NON-NLS-1$
- Iterator iter = v.iterator();
- while (iter.hasNext() && !fShuttingDown && !monitor.isCanceled()) {
- Runnable r = (Runnable)iter.next();
- try {
- r.run();
- } catch (Exception e) {
- if (failed == null) {
- failed = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.0"), null); //$NON-NLS-1$
- }
- failed.add(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.0"), e)); //$NON-NLS-1$
- }
- monitor.worked(1);
- }
- monitor.done();
- if (failed == null) {
- return Status.OK_STATUS;
- }
- return failed;
- }
-
- }
-
- /**
- * Returns an event notifier.
- *
- * @return an event notifier
- */
- private EventNotifier getEventNotifier() {
- return new EventNotifier();
- }
-
- /**
- * Filters and dispatches events in a safe runnable to handle any
- * exceptions.
- */
- class EventNotifier implements ISafeRunnable {
-
- private DebugEvent[] fEvents;
- private IDebugEventSetListener fListener;
- private IDebugEventFilter fFilter;
- private int fMode;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- switch (fMode) {
- case NOTIFY_FILTERS:
- IStatus status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.An_exception_occurred_while_filtering_debug_events._3"), exception); //$NON-NLS-1$
- log(status);
- break;
- case NOTIFY_EVENTS:
- status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.An_exception_occurred_while_dispatching_debug_events._2"), exception); //$NON-NLS-1$
- log(status);
- break;
- }
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fMode) {
- case NOTIFY_FILTERS:
- fEvents = fFilter.filterDebugEvents(fEvents);
- break;
- case NOTIFY_EVENTS:
- fListener.handleDebugEvents(fEvents);
- break;
- }
- }
-
- /**
- * Filter and dispatch the given events. If an exception occurs in one
- * listener, events are still fired to subsequent listeners.
- *
- * @param events debug events
- */
- public void dispatch(DebugEvent[] events) {
- fEvents = events;
- try {
- setDispatching(true);
-
- if (hasEventFilters()) {
- fMode = NOTIFY_FILTERS;
- Object[] filters = fEventFilters.getListeners();
- for (int i = 0; i < filters.length; i++) {
- fFilter = (IDebugEventFilter)filters[i];
- Platform.run(this);
- if (fEvents == null || fEvents.length == 0) {
- return;
- }
- }
- }
-
- fMode = NOTIFY_EVENTS;
- Object[] listeners= getEventListeners();
- for (int i= 0; i < listeners.length; i++) {
- fListener = (IDebugEventSetListener)listeners[i];
- Platform.run(this);
- }
-
- } finally {
- setDispatching(false);
- }
- fEvents = null;
- fFilter = null;
- fListener = null;
- }
-
- }
-
- /**
- * Creates and returns a new XML document.
- *
- * @return a new XML document
- * @throws CoreException if unable to create a new document
- * @since 3.0
- */
- public static Document newDocument()throws CoreException {
- try {
- return LaunchManager.getDocument();
- } catch (ParserConfigurationException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.3"), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Serializes the given XML document into a string.
- *
- * @param document XML document to serialize
- * @return a string representing the given document
- * @throws CoreException if unable to serialize the document
- * @since 3.0
- */
- public static String serializeDocument(Document document) throws CoreException {
- try {
- return LaunchManager.serializeDocument(document);
- } catch (TransformerException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.4"), e); //$NON-NLS-1$
- } catch (IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.5"), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Parses the given string representing an XML document, returning its
- * root element.
- *
- * @param document XML document as a string
- * @return the document's root element
- * @throws CoreException if unable to parse the document
- * @since 3.0
- */
- public static Element parseDocument(String document) throws CoreException {
- Element root = null;
- InputStream stream = null;
- try{
- DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- stream = new ByteArrayInputStream(document.getBytes());
- root = parser.parse(stream).getDocumentElement();
- } catch (ParserConfigurationException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.6"), e); //$NON-NLS-1$
- } catch (FactoryConfigurationError e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.7"), e); //$NON-NLS-1$
- } catch (SAXException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.8"), e); //$NON-NLS-1$
- } catch (IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.9"), e); //$NON-NLS-1$
- } finally {
- try{
- stream.close();
- } catch(IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.10"), e); //$NON-NLS-1$
- }
- }
- return root;
- }
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- private static void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Utility class to parse command line arguments.
- *
- * @since 3.1
- */
- private static class ArgumentParser {
- private String fArgs;
- private int fIndex= 0;
- private int ch= -1;
-
- public ArgumentParser(String args) {
- fArgs= args;
- }
-
- public String[] parseArguments() {
- List v= new ArrayList();
-
- ch= getNext();
- while (ch > 0) {
- if (Character.isWhitespace((char)ch)) {
- ch= getNext();
- } else {
- if (ch == '"') {
- StringBuffer buf = new StringBuffer();
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- buf.append('"');
- }
- buf.append(parseString());
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- buf.append('"');
- } else if (buf.length() == 0) {
- // empty string on non-windows platform
- buf.append("\"\""); //$NON-NLS-1$
- }
- v.add(buf.toString());
- } else {
- v.add(parseToken());
- }
- }
- }
-
- String[] result= new String[v.size()];
- v.toArray(result);
- return result;
- }
-
- private int getNext() {
- if (fIndex < fArgs.length())
- return fArgs.charAt(fIndex++);
- return -1;
- }
-
- private String parseString() {
- ch= getNext();
- if (ch == '"') {
- ch= getNext();
- return ""; //$NON-NLS-1$
- }
- StringBuffer buf= new StringBuffer();
- while (ch > 0 && ch != '"') {
- if (ch == '\\') {
- ch= getNext();
- if (ch != '"') { // Only escape double quotes
- buf.append('\\');
- } else {
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- // @see Bug 26870. Windows requires an extra escape for embedded strings
- buf.append('\\');
- }
- }
- }
- if (ch > 0) {
- buf.append((char)ch);
- ch= getNext();
- }
- }
- ch= getNext();
- return buf.toString();
- }
-
- private String parseToken() {
- StringBuffer buf= new StringBuffer();
-
- while (ch > 0 && !Character.isWhitespace((char)ch)) {
- if (ch == '\\') {
- ch= getNext();
- if (Character.isWhitespace((char)ch)) {
- // end of token, don't lose trailing backslash
- buf.append('\\');
- return buf.toString();
- }
- if (ch > 0) {
- if (ch != '"') { // Only escape double quotes
- buf.append('\\');
- } else {
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- // @see Bug 26870. Windows requires an extra escape for embedded strings
- buf.append('\\');
- }
- }
- buf.append((char)ch);
- ch= getNext();
- } else if (ch == -1) { // Don't lose a trailing backslash
- buf.append('\\');
- }
- } else if (ch == '"') {
- buf.append(parseString());
- } else {
- buf.append((char)ch);
- ch= getNext();
- }
- }
- return buf.toString();
- }
- }
-
- /**
- * Prarses the given command line into seperate arguments that can be passed to
- * <code>DebugPlugin.exec(String[], File)</code>. Embedded quotes and slashes
- * are escaped.
- *
- * @param args command line arguments as a single string
- * @return individual arguments
- * @since 3.1
- */
- public static String[] parseArguments(String args) {
- if (args == null)
- return new String[0];
- ArgumentParser parser= new ArgumentParser(args);
- String[] res= parser.parseArguments();
-
- return res;
- }
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
deleted file mode 100644
index 050ac294a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * A breakpoint listener is notified of breakpoint additions,
- * removals, and changes. Listeners register and deregister with the
- * breakpoint manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IBreakpointManager
- */
-
-public interface IBreakpointListener {
-
- /**
- * Notifies this listener that the given breakpoint has been added
- * to the breakpoint manager.
- *
- * @param breakpoint the added breakpoint
- * @since 2.0
- */
- public void breakpointAdded(IBreakpoint breakpoint);
- /**
- * Notifies this listener that the given breakpoint has been removed
- * from the breakpoint manager.
- * If the given breakpoint has been removed because it has been deleted,
- * the associated marker delta is also provided.
- *
- * @param breakpoint the removed breakpoint
- * @param delta the associated marker delta, or <code>null</code> when
- * the breakpoint is removed from the breakpoint manager without
- * being deleted
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- * @since 2.0
- */
- public void breakpointRemoved(IBreakpoint breakpoint, IMarkerDelta delta);
-
- /**
- * Notifies this listener that an attribute of the given breakpoint has
- * changed, as described by the delta.
- *
- * @param breakpoint the changed breakpoint
- * @param delta the marker delta that describes the changes
- * with the marker associated with the given breakpoint, or
- * <code>null</code> when the breakpoint change does not generate
- * a marker delta
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- * @since 2.0
- */
- public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
deleted file mode 100644
index 6f2ad1a0a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * The breakpoint manager manages the collection of breakpoints
- * in the workspace. A breakpoint suspends the execution of a
- * program being debugged. The kinds of breakpoints supported by each
- * debug architecture and the information required to create those
- * breakpoints is defined by each debug architecture.
- * Breakpoint creation is a client responsibility.
- * <p>
- * Clients interested in breakpoint change notification may
- * register with the breakpoint manager - see
- * <code>IBreakpointListener</code> and <code>IBreakpointsListener</code>
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.IBreakpointListener
- * @see org.eclipse.debug.core.IBreakpointsListener
- */
-public interface IBreakpointManager {
- /**
- * Adds the given breakpoint to the collection of registered breakpoints
- * in the workspace and notifies all registered listeners. This has no effect
- * if the given breakpoint is already registered.
- *
- * @param breakpoint the breakpoint to add
- *
- * @exception DebugException if adding fails. Reasons include:<ul>
- * <li>CONFIGURATION_INVALID - the required <code>MODEL_IDENTIFIER</code> attribute
- * is not set on the breakpoint marker.</li>
- * <li>A <code>CoreException</code> occurred while verifying the <code>MODEL_IDENTIFIER</code>
- * attribute.</li>
- * </ul>
- * @since 2.0
- */
- public void addBreakpoint(IBreakpoint breakpoint) throws CoreException;
-
- /**
- * Adds the given breakpoints to the collection of registered breakpoints
- * in the workspace and notifies all registered listeners. Has no effect
- * on breakpoints that are already registered.
- *
- * @param breakpoints the breakpoints to add
- *
- * @exception DebugException if adding fails. Reasons include:<ul>
- * <li>CONFIGURATION_INVALID - the required <code>MODEL_IDENTIFIER</code> attribute
- * is not set on a breakpoint marker.</li>
- * <li>A <code>CoreException</code> occurred while verifying a <code>MODEL_IDENTIFIER</code>
- * attribute.</li>
- * </ul>
- * @since 2.1
- */
- public void addBreakpoints(IBreakpoint[] breakpoints) throws CoreException;
-
- /**
- * Returns the breakpoint associated with the given marker or
- * <code>null</code> if no such breakpoint exists
- *
- * @param marker the marker
- * @return the breakpoint associated with the marker
- * or <code>null</code> if none exists
- * @since 2.0
- */
- public IBreakpoint getBreakpoint(IMarker marker);
-
- /**
- * Returns a collection of all registered breakpoints.
- * Returns an empty array if no breakpoints are registered.
- *
- * @return an array of breakpoints
- * @since 2.0
- */
- public IBreakpoint[] getBreakpoints();
-
- /**
- * Returns whether there are any registered breakpoints.
- *
- * @return whether there are any registered breakpoints
- * @since 2.0
- */
- public boolean hasBreakpoints();
-
- /**
- * Returns a collection of all breakpoints registered for the
- * given debug model. Answers an empty array if no breakpoints are registered
- * for the given debug model.
- *
- * @param modelIdentifier identifier of a debug model plug-in
- * @return an array of breakpoints
- * @since 2.0
- */
- public IBreakpoint[] getBreakpoints(String modelIdentifier);
-
- /**
- * Returns whether the given breakpoint is currently
- * registered with this breakpoint manager.
- *
- * @return whether the breakpoint is registered
- * @since 2.0
- */
- public boolean isRegistered(IBreakpoint breakpoint);
-
- /**
- * Notifies all registered listeners that the given
- * breakpoint has changed. Has no effect if the given
- * breakpoint is not currently registered.
- *
- * This method is intended to be used when a breakpoint
- * attribute is changed that does not alter the breakpoint's
- * underlying marker, that is, when notification will not occur
- * via the marker delta mechanism.
- *
- * @param breakpoint the breakpoint that has changed.
- * @since 2.0
- */
- public void fireBreakpointChanged(IBreakpoint breakpoint);
-
- /**
- * Removes the given breakpoint from the breakpoint manager, deletes
- * the marker associated with the breakpoint if the <code>delete</code> flag
- * is <code>true</code>, and notifies all registered
- * listeners. Has no effect if the given breakpoint is not currently
- * registered.
- *
- * @param breakpoint the breakpoint to remove
- * @param delete whether to delete the marker associated with the
- * breakpoint
- * @exception CoreException if an exception occurs while deleting the
- * underlying marker.
- * @since 2.0
- */
- public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException;
-
- /**
- * Removes the given breakpoints from the breakpoint manager, deletes
- * the markers associated with the breakpoints if the <code>delete</code> flag
- * is <code>true</code>, and notifies all registered
- * listeners. Has no effect on breakpoints not currently
- * registered.
- *
- * @param breakpoints the breakpoints to remove
- * @param delete whether to delete the markers associated with the
- * breakpoints
- * @exception CoreException if an exception occurs while deleting an
- * underlying marker.
- * @since 2.1
- */
- public void removeBreakpoints(IBreakpoint[] breakpoints, boolean delete) throws CoreException;
-
- /**
- * Adds the given listener to the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addBreakpointListener(IBreakpointListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeBreakpointListener(IBreakpointListener listener);
-
- /**
- * Adds the given listener to the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 2.1
- */
- public void addBreakpointListener(IBreakpointsListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 2.1
- */
- public void removeBreakpointListener(IBreakpointsListener listener);
-
- /**
- * Adds the given listener to the collection of registered breakpoint manager
- * listeners. Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 3.0
- */
- public void addBreakpointManagerListener(IBreakpointManagerListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint manager
- * listeners. Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 3.0
- */
- public void removeBreakpointManagerListener(IBreakpointManagerListener listener);
-
- /**
- * Returns whether or not this breakpoint manager is enabled.
- * When a breakpoint manager is enabled, all breakpoints
- * should be honored. When it is disabled, breakpoints should
- * not be honored, regardless of each breakpoint's enabled state.
- *
- * @return whether or not this breakpoint manager is enabled
- * @since 3.0
- */
- public boolean isEnabled();
-
- /**
- * Sets the enabled state of this breakpoint manager. When
- * enabled, breakpoints should be honored. When disabled, all
- * breakpoints should be ignored.
- *
- * @param enabled whether this breakpoint manager should be
- * enabled
- * @since 3.0
- */
- public void setEnabled(boolean enabled);
-
- /**
- * Returns the name (user presentable String) of the given
- * breakpoint's type or <code>null</code> if none has been
- * specified.
- *
- * @param breakpoint the breakpoint
- * @return the name of the given breakpoint's type or <code>null</code>
- * @since 3.1
- */
- public String getTypeName(IBreakpoint breakpoint);
-
- /**
- * Sets the group which breakpoints will be automatically
- * added to when they're added to this manager. If <code>null</code>,
- * breakpoints will not be automatically added to any group.
- * @param group the group to automatically add breakpoints to
- * or <code>null</code>
- * @see IBreakpoint#setGroup(String)
- * @since 3.1
- */
- public void setAutoGroup(String group);
-
- /**
- * Returns the group which breakpoints will be automatically
- * added to when they're added to this manager or <code>null</code>
- * if none.
- * @return the group which breakpoints will be automatically added
- * to or <code>null</code>
- * @see IBreakpoint#getGroup()
- * @since 3.1
- */
- public String getAutoGroup();
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java
deleted file mode 100644
index 0ad6127ab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * A breakpoint manager listener is notified when the breakpoint manager's
- * enablement changes. When the breakpoint manager is disabled, no breakpoints
- * should be honored. When the breakpoint manager is enabled, breakpoints should
- * be honored as usual.
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @see IBreakpointManager
- * @since 3.0
- */
-public interface IBreakpointManagerListener {
-
- /**
- * Notifies the listener that the breakpoint manager's enablement
- * has changed.
- *
- * @param enabled whether or not the breakpoint manager is enabled
- */
- public void breakpointManagerEnablementChanged(boolean enabled);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java
deleted file mode 100644
index 7879b0188..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * A breakpoints listener is notified of breakpoint additions,
- * removals, and changes. Listeners register and deregister with the
- * breakpoint manager.
- * <p>
- * This interface is analagous to <code>IBreakpointListener</code> except
- * notifications are batched for more than one breakpoint when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IBreakpointManager
- * @since 2.1
- */
-
-public interface IBreakpointsListener {
-
- /**
- * Notifies this listener that the given breakpoints have been added
- * to the breakpoint manager.
- *
- * @param breakpoints the added breakpoints
- */
- public void breakpointsAdded(IBreakpoint[] breakpoints);
- /**
- * Notifies this listener that the given breakpoints have been removed
- * from the breakpoint manager.
- * If a breakpoint has been removed because it has been deleted,
- * the associated marker delta is also provided.
- *
- * @param breakpoints the removed breakpoints
- * @param deltas the associated marker deltas. Entries may be
- * <code>null</code> when a breakpoint is removed from the breakpoint
- * manager without being deleted
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- */
- public void breakpointsRemoved(IBreakpoint[] breakpoints, IMarkerDelta[] deltas);
-
- /**
- * Notifies this listener that the given breakpoints have
- * changed, as described by the corresponding deltas.
- *
- * @param breakpoints the changed breakpoints
- * @param deltas the marker deltas that describe the changes
- * with the markers associated with the given breakpoints. Entries
- * may be <code>null</code> when a breakpoint change does not generate
- * a marker delta
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- */
- public void breakpointsChanged(IBreakpoint[] breakpoints, IMarkerDelta[] deltas);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
deleted file mode 100644
index 8654fa133..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * An event filter allows clients to intercept debug events.
- * Event filters are registered with the debug plug-in.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugPlugin
- * @since 2.0
- */
-public interface IDebugEventFilter {
-
- /**
- * Filters the given set of debug events, and returns the set of debug
- * events that should be fired to registered listeners - <code>null</code>
- * or an empty collection if no debug events should be fired.
- * <p>
- * When multiple event filters are registered, events are passed through
- * all filters. That is, the events returned from the first filter are
- * passed through the second filter, and so on.
- * </p>
- *
- * @return the set of debug events to fire
- */
- public DebugEvent[] filterDebugEvents(DebugEvent[] events);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
deleted file mode 100644
index 7b56fed66..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A debug event set listener registers with the debug plug-in
- * to receive event notification from programs being run or debugged.
- * <p>
- * When more than one event is reported, each event has occurred at the
- * same location in a target program. For example, a breakpoint may
- * reside at the same location at which a step request completes. In
- * this case the breakpoint event and step end event are reported together
- * in the same event set.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugEvent
- * @since 2.0
- */
-public interface IDebugEventSetListener {
- /**
- * Notifies this listener of the given debug events.
- * All of the events in the given event collection occurred
- * at the same location the program be run or debugged.
- *
- * @param events the debug events
- */
- public void handleDebugEvents(DebugEvent[] events);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
deleted file mode 100644
index 13a1e9126..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.debug.core.model.IExpression;
-
-/**
- * An expression listener is notified of expression additions,
- * removals, and changes. Listeners register and deregister with the
- * expression manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IExpressionManager
- * @since 2.0
- */
-
-public interface IExpressionListener {
-
- /**
- * Notifies this listener that the given expression has been added
- * to the expression manager.
- *
- * @param expression the added expression
- */
- public void expressionAdded(IExpression expression);
- /**
- * Notifies this listener that the given expression has been removed
- * from the expression manager.
- *
- * @param expression the removed expression
- */
- public void expressionRemoved(IExpression expression);
-
- /**
- * Notifies this listener that the given expression has
- * changed.
- *
- * @param expression the changed expression
- */
- public void expressionChanged(IExpression expression);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
deleted file mode 100644
index cf9b14b88..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IExpression;
-import org.eclipse.debug.core.model.IWatchExpression;
-import org.eclipse.debug.core.model.IWatchExpressionDelegate;
-
-/**
- * The expression manager manages the collection of registered
- * expressions in the workspace. An expression is a snippet of code
- * that can be evaluated to produce a value. Expression creation
- * and evaluation are client responsibilities.
- * <p>
- * Clients interested in expression change notification may
- * register with the expression manager - see
- * <code>IExpressionListener</code> and <code>IExpressionsListener</code>.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.model.IExpression
- * @see org.eclipse.debug.core.IExpressionListener
- * @see org.eclipse.debug.core.IExpressionsListener
- * @since 2.0
- */
-public interface IExpressionManager {
- /**
- * Adds the given expression to the collection of registered expressions
- * in the workspace and notifies all registered listeners. This has no effect
- * if the given expression is already registered.
- *
- * @param expression the expression to add
- */
- public void addExpression(IExpression expression);
-
- /**
- * Adds the given expressions to the collection of registered expressions
- * in the workspace and notifies all registered listeners. Has no effect
- * on expressions already registered.
- *
- * @param expressions the expressions to add
- * @since 2.1
- */
- public void addExpressions(IExpression[] expressions);
-
- /**
- * Creates and returns a new watch expression with the
- * given text. The returned expression is <b>not</b> added to
- * this manager.
- *
- * @param expressionText the text for the new expression
- * @since 3.0
- */
- public IWatchExpression newWatchExpression(String expressionText);
-
- /**
- * Returns a collection of all registered expressions,
- * possibly empty.
- *
- * @return an array of expressions
- */
- public IExpression[] getExpressions();
-
- /**
- * Returns whether there are any registered expressions
- *
- * @return whether there are any registered expressions
- */
- public boolean hasExpressions();
-
- /**
- * Returns a collection of all expressions registered for the
- * given debug model,possibly empty.
- *
- * @param modelIdentifier identifier of a debug model plug-in
- * @return an array of expressions
- */
- public IExpression[] getExpressions(String modelIdentifier);
-
- /**
- * Removes the given expression from the expression manager,
- * and notifies all registered listeners. Has no effect if the
- * given expression is not currently registered.
- *
- * @param expression the expression to remove
- */
- public void removeExpression(IExpression expression);
-
- /**
- * Removes the given expressions from the collection of registered expressions
- * in the workspace and notifies all registered listeners. Has no effect
- * on expressions not already registered.
- *
- * @param expressions the expressions to remove
- * @since 2.1
- */
- public void removeExpressions(IExpression[] expressions);
-
- /**
- * Adds the given listener to the collection of registered expression listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addExpressionListener(IExpressionListener listener);
-
- /**
- * Removes the given listener from the collection of registered expression listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeExpressionListener(IExpressionListener listener);
-
- /**
- * Adds the given listener to the collection of registered expression listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 2.1
- */
- public void addExpressionListener(IExpressionsListener listener);
-
- /**
- * Removes the given listener from the collection of registered expression listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 2.1
- */
- public void removeExpressionListener(IExpressionsListener listener);
-
- /**
- * Returns a new watch expression delegate for the given debug
- * model or <code>null</code> if no delegate is available.
- *
- * @param id the unique identifier of a debug model for which a
- * watch expression delegate has been contributed
- * @return a watch expression delegate associated with the given model
- * or <code>null</code> if none
- * @since 3.0
- * @see IWatchExpressionDelegate
- */
- public IWatchExpressionDelegate newWatchExpressionDelegate(String id);
-
- /**
- * Returns whether a watch expression delegate has been contributed for
- * the given debug model.
- *
- * @param id the unique identifier of a debug model
- * @return whether a watch expression delegate has been contributed for
- * the given debug model
- * @since 3.1
- * @see IWatchExpressionDelegate
- */
- public boolean hasWatchExpressionDelegate(String id);
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java
deleted file mode 100644
index d1039fa48..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IExpression;
-
-/**
- * An expression listener is notified of expression additions,
- * removals, and changes. Listeners register and deregister with the
- * expression manager.
- * <p>
- * This interface is analagous to <code>IExpressionListener</code>, except
- * notifications are batched for more than when expression when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IExpressionManager
- * @since 2.1
- */
-
-public interface IExpressionsListener {
-
- /**
- * Notifies this listener that the given expressions have been added
- * to the expression manager.
- *
- * @param expressions the added expressions
- */
- public void expressionsAdded(IExpression[] expressions);
- /**
- * Notifies this listener that the given expressions has been removed
- * from the expression manager.
- *
- * @param expressions the removed expressions
- */
- public void expressionsRemoved(IExpression[] expressions);
-
- /**
- * Notifies this listener that the given expressions have
- * changed.
- *
- * @param expressions the changed expressions
- */
- public void expressionsChanged(IExpression[] expressions);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
deleted file mode 100644
index d7b8f4f9d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.ISourceLocator;
-import org.eclipse.debug.core.model.ITerminate;
-
-/**
- * A launch is the result of launching a debug session
- * and/or one or more system processes.
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * should create instances of this interface by using the implementation
- * provided by the class <code>Launch</code>.
- * </p>
- * @see Launch
- */
-public interface ILaunch extends ITerminate, IAdaptable {
- /**
- * Returns the children of this launch - a collection
- * of one or more debug targets and processes, possibly empty.
- *
- * @return an array (element type:<code>IDebugTarget</code> or <code>IProcess</code>),
- * or an empty array
- */
- public Object[] getChildren();
- /**
- * Returns the primary (first) debug target associated with this launch, or <code>null</code>
- * if no debug target is associated with this launch. All debug targets
- * associated with this launch may be retrieved by
- * <code>getDebugTargets()</code>.
- *
- * @return the primary debug target associated with this launch, or <code>null</code>
- */
- public IDebugTarget getDebugTarget();
-
- /**
- * Returns the processes that were launched,
- * or an empty collection if no processes were launched.
- *
- * @return array of processes
- */
- public IProcess[] getProcesses();
-
- /**
- * Returns all the debug targets associated with this launch,
- * or an empty collection if no debug targets are associated
- * with this launch. The primary debug target is the first
- * in the collection (if any).
- *
- * @return array of debug targets
- * @since 2.0
- */
- public IDebugTarget[] getDebugTargets();
-
- /**
- * Adds the given debug target to this launch. Has no effect
- * if the given debug target is already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param target debug target to add to this launch
- * @since 2.0
- */
- public void addDebugTarget(IDebugTarget target);
-
- /**
- * Removes the given debug target from this launch. Has no effect
- * if the given debug target is not already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param target debug target to remove from this launch
- * @since 2.0
- */
- public void removeDebugTarget(IDebugTarget target);
-
- /**
- * Adds the given process to this launch. Has no effect
- * if the given process is already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param process the process to add to this launch
- * @since 2.0
- */
- public void addProcess(IProcess process);
-
- /**
- * Removes the given process from this launch. Has no effect
- * if the given process is not already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param process the process to remove from this launch
- * @since 2.0
- */
- public void removeProcess(IProcess process);
-
- /**
- * Returns the source locator to use for locating source elements for
- * the debug target associated with this launch, or <code>null</code>
- * if source lookup is not supported.
- *
- * @return the source locator
- */
- public ISourceLocator getSourceLocator();
-
- /**
- * Sets the source locator to use for locating source elements for
- * the debug target associated with this launch, or <code>null</code>
- * if source lookup is not supported.
- *
- * @param sourceLocator source locator or <code>null</code>
- * @since 2.0
- */
- public void setSourceLocator(ISourceLocator sourceLocator);
-
- /**
- * Returns the mode of this launch - one of the mode constants defined by
- * the launch manager.
- *
- * @return the launch mode
- * @see ILaunchManager
- */
- public String getLaunchMode();
-
- /**
- * Returns the configuration that was launched, or <code>null</code>
- * if no configuration was launched.
- *
- * @return the launched configuration or <code>null</code>
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration();
-
- /**
- * Sets the value of a client defined attribute.
- *
- * @param key the attribute key
- * @param value the attribute value
- * @since 2.0
- */
- public void setAttribute(String key, String value);
-
- /**
- * Returns the value of a client defined attribute.
- *
- * @param key the attribute key
- * @return value the attribute value, or <code>null</code> if undefined
- * @since 2.0
- */
- public String getAttribute(String key);
-
- /**
- * Returns whether this launch contains at least one process
- * or debug target.
- *
- * @return whether this launch contains at least one process
- * or debug target
- * @since 2.0
- */
- public boolean hasChildren();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
deleted file mode 100644
index c66b224af..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A launch configuration describes how to launch an application.
- * Each launch configuration is an instance of a type of launch
- * configuration as described by a launch configuration type
- * extension. Each launch configuration has a launch configuration
- * delegate which performs the actual launching of a
- * configuration.
- * <p>
- * A launch configuration may be shared in a repository via
- * standard VCM mechanisms, or may be stored locally, essentially
- * making the launch configuration private for a single user.
- * Thus, a launch configuration may stored as a file in the
- * workspace (shared), or as a file in the debug plug-in's state
- * location.
- * </p>
- * A launch configuration is a handle to its underlying storage.
- * Methods annotated as "handle-only" do not require a configuration
- * to exist. Methods that require an underlying configuration to exist
- * throw a <code>CoreException</code> when an underlying configuration
- * is missing.
- * </p>
- * <p>
- * A launch configuration is modified by obtaining a working copy
- * of a launch configuration, modifying the working copy, and then
- * saving the working copy.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfigurationType
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate
- * @see ILaunchConfigurationWorkingCopy
- * @since 2.0
- */
-public interface ILaunchConfiguration extends IAdaptable {
-
- /**
- * The file extension for launch configuration files
- * (value <code>"launch"</code>).
- */
- public static final String LAUNCH_CONFIGURATION_FILE_EXTENSION = "launch"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute storing an identifier of
- * a persistable source locator extension. When this attribute is
- * specified, a new source locator will be created automatically and
- * associated with the launch for this configuration.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
- public static final String ATTR_SOURCE_LOCATOR_ID = DebugPlugin.getUniqueIdentifier() + ".source_locator_id"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute storing a memento of a
- * source locator. When this attribute is specified in
- * conjunction with a source locator id, the source locator
- * created for a launch will be initialized with this memento.
- * When not specified, but a source locator id is specified,
- * the source locator will be initialized to default values.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
- public static final String ATTR_SOURCE_LOCATOR_MEMENTO = DebugPlugin.getUniqueIdentifier() + ".source_locator_memento"; //$NON-NLS-1$
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * Equivalent to calling <code>launch(String, IProgressMontitor, boolean)</code>
- * with a <code>build</code> flag of <code>false</code>.
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @return the resulting launch
- * @exception CoreException if this method fails. Reasons include:<ul>
- * <li>unable to instantiate the underlying launch configuration delegate</li>
- * <li>the launch fails (in the delegate)</code>
- * </ul>
- */
- public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * If this configuration's launch delegate implements
- * <code>ILaunchConfigurationDelegate2</code>, the launch delegate will
- * be consulted to provide a launch object for the launch,
- * perform pre-launch checks, and build before the launch.
- * If <code>build</code> is <code>true</code> and the associated launch
- * delegate does not implement <code>ILaunchConfigurationDelegate2</code>
- * an incremental workspace build will be performed before the launch
- * by the debug platform.
- * </p>
- * <p>
- * The resulting launch object is registered with the launch manager
- * before passing it to this configuration's delegate launch method, for
- * contributions (debug targets and processes).
- * </p>
- * <p>
- * If the delegate contributes a source locator to the launch, that
- * source locator is used. Otherwise an appropriate source locator is
- * contributed to the launch based on the values of
- * <code>ATTR_SOURCE_LOCATOR_ID</code> and
- * <code>ATTR_SOURCE_LOCATOR_MEMENTO</code>. If the launch is cancelled (via
- * the given progress monitor), the launch is removed from the launch
- * manager. The launch is returned whether cancelled or not. Invoking this
- * method causes the underlying launch configuration delegate to be
- * instantiated (if not already).
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @param build whether the workspace should be built before the launch
- * @return resulting launch
- * @throws CoreException if an exception occurrs during the launch sequence
- * @since 3.0
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build) throws CoreException;
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * If this configuration's launch delegate implements
- * <code>ILaunchConfigurationDelegate2</code>, the launch delegate will
- * be consulted to provide a launch object for the launch,
- * perform pre-launch checks, and build before the launch.
- * If <code>build</code> is <code>true</code> and the associated launch
- * delegate does not implement <code>ILaunchConfigurationDelegate2</code>
- * an incremental workspace build will be performed before the launch
- * by the debug platform.
- * </p>
- * <p>
- * When <code>register</code> is <code>true</code>, the resulting launch object
- * is registered with the launch manager before passing it to this configuration's delegate
- * launch method, for contributions (debug targets and processes). When
- * <code>register</code> is <code>false</code>, the launch is not registered with
- * the launch manager. Clients that launch configurations without registering
- * a launch should register appropiate debug event filters to intercept events
- * from unregistered launches.
- * </p>
- * <p>
- * If the delegate contributes a source locator to the launch, that
- * source locator is used. Otherwise an appropriate source locator is
- * contributed to the launch based on the values of
- * <code>ATTR_SOURCE_LOCATOR_ID</code> and
- * <code>ATTR_SOURCE_LOCATOR_MEMENTO</code>. If the launch is cancelled (via
- * the given progress monitor), the launch is removed from the launch
- * manager. The launch is returned whether cancelled or not. Invoking this
- * method causes the underlying launch configuration delegate to be
- * instantiated (if not already).
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @param build whether the workspace should be built before the launch
- * @param register whether to register the resulting launch with the launch manager
- * @return resulting launch
- * @throws CoreException if an exception occurrs during the launch sequence
- * @since 3.1
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build, boolean register) throws CoreException;
-
- /**
- * Returns whether this launch configuration supports the
- * specified mode. This is a handle-only method.
- *
- * @param mode a mode in which a configuration can be launched, one of
- * the mode constants defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or
- * <code>DEBUG_MODE</code>.
- * @return whether this launch configuration supports the
- * specified mode
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve this launch configuration's type.</li>
- * </ul>
- */
- public boolean supportsMode(String mode) throws CoreException;
-
- /**
- * Returns the name of this launch configuration. This is
- * a handle-only method.
- *
- * @return the name of this launch configuration
- */
- public String getName();
-
- /**
- * Returns the location of this launch configuration as a
- * path. This is a handle-only method.
- *
- * @return the location of this launch configuration as a
- * path
- */
- public IPath getLocation();
-
- /**
- * Returns whether this launch configuration's underlying
- * storage exists. This is a handle-only method.
- *
- * @return whether this launch configuration's underlying
- * storage exists
- */
- public boolean exists();
-
- /**
- * Returns the integer-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have an integer value</li>
- * </ul>
- */
- public int getAttribute(String attributeName, int defaultValue) throws CoreException;
- /**
- * Returns the string-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a String value</li>
- * </ul>
- */
- public String getAttribute(String attributeName, String defaultValue) throws CoreException;
- /**
- * Returns the boolean-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a boolean value</li>
- * </ul>
- */
- public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException;
- /**
- * Returns the <code>java.util.List</code>-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a List value</li>
- * </ul>
- */
- public List getAttribute(String attributeName, List defaultValue) throws CoreException;
- /**
- * Returns the <code>java.util.Map</code>-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a Map value</li>
- * </ul>
- */
- public Map getAttribute(String attributeName, Map defaultValue) throws CoreException;
-
- /**
- * Returns the file this launch configuration is stored
- * in, or <code>null</code> if this configuration is stored
- * locally with the workspace. This is a handle-only method.
- *
- * @return the file this launch configuration is stored
- * in, or <code>null</code> if this configuration is stored
- * locally with the workspace
- */
- public IFile getFile();
-
- /**
- * Returns the type of this launch configuration. This is a
- * handle-only method.
- *
- * @return the type of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve or instantiate this launch configuration's type.</li>
- * </ul>
- * @see ILaunchConfigurationType
- */
- public ILaunchConfigurationType getType() throws CoreException;
-
- /**
- * Returns whether this launch configuration is stored
- * locally with the workspace. This is a handle-only method.
- *
- * @return whether this launch configuration is stored
- * locally with the workspace
- */
- public boolean isLocal();
-
- /**
- * Returns a working copy of this launch configuration.
- * Changes to the working copy will be applied to this
- * launch configuration when saved. The working copy will
- * refer to this launch configuration as its original
- * launch configuration.
- *
- * @return a working copy of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while initializing the contents of the
- * working copy from this configuration's underlying storage.</li>
- * </ul>
- * @see ILaunchConfigurationWorkingCopy#getOriginal()
- */
- public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException;
-
- /**
- * Returns a copy of this launch configuration, as a
- * working copy, with the specified name. The new
- * working copy does not refer back to this configuration
- * as its original launch configuration (the working copy
- * will return <code>null</code> for <code>getOriginal()</code>).
- * When the working copy is saved it will not effect this
- * launch configuration.
- *
- * @param name the name of the copy
- * @return a copy of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while initializing the contents of the
- * working copy from this configuration's underlying storage.</li>
- * </ul>
- * @see ILaunchConfigurationWorkingCopy#getOriginal()
- */
- public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException;
-
- /**
- * Returns whether this launch configuration is a working
- * copy. Launch configurations which return <code>true</code>
- * to this method can be safely cast to
- * <code>org.eclipse.debug.core.ILaunchConfigurationWorkingCopy</code>.
- * This is a handle-only method.
- *
- * @return whether this launch configuration is a working
- * copy
- */
- public boolean isWorkingCopy();
-
- /**
- * Deletes this launch configuration. This configuration's underlying
- * storage is deleted. Has no effect if this configuration
- * does not exist.
- *
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while deleting this configuration's
- * underlying storage.</li>
- * </ul>
- */
- public void delete() throws CoreException;
-
- /**
- * Returns a memento for this launch configuration, or <code>null</code>
- * if unable to generate a memento for this configuration. A memento
- * can be used to re-create a launch configuration, via the
- * launch manager.
- *
- * @return a memento for this configuration
- * @see ILaunchManager#getLaunchConfiguration(String)
- * @exception CoreException if an exception occurs generating this
- * launch configuration's memento
- */
- public String getMemento() throws CoreException;
-
- /**
- * Returns whether the contents of this launch configuration are
- * equal to the contents of the given launch configuration.
- *
- * @return whether the contents of this launch configuration are equal to the contents
- * of the specified launch configuration.
- */
- public boolean contentsEqual(ILaunchConfiguration configuration);
-
- /**
- * Returns this launch configuration's type's category, or <code>null</code>
- * if unspecified. This is a handle-only method.
- *
- * @return this launch configuration's type's category, or <code>null</code>
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve or instantiate this launch configuration's type.</li>
- * </ul>
- * @since 2.1
- */
- public String getCategory() throws CoreException;
-
- /**
- * Returns a map containing the attributes in this launch configuration.
- * Returns an empty map if this configuration has no attributes.
- * <p>
- * Modifying the map does not affect this launch configuration's attributes.
- * A launch configuration is modified by obtaining a working copy of that
- * launch configuration, modifying the working copy, and then saving the working
- * copy.
- * </p>
- * @return a map of attribute keys and values
- * @exception CoreException unable to generate/retrieve an attribute map
- * @since 2.1
- */
- public Map getAttributes() throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
deleted file mode 100644
index 4f0332608..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * Notified when a launch configuration is created,
- * deleted, or changed.
- * <p>
- * This interface is intended to be implemented by clients.
- * </p>
- * @since 2.0
- */
-public interface ILaunchConfigurationListener {
-
- /**
- * The given launch configuration has been created.
- *
- * @param configuration the newly created launch configuration
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration);
-
- /**
- * The given launch configuration has changed in some way.
- * The configuration may be a working copy.
- *
- * @param configuration the launch configuration that has
- * changed
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration);
-
- /**
- * The given launch configuration has been deleted.
- * <p>
- * The launch configuration no longer exists. Data stored
- * in the configuration can no longer be accessed, however
- * handle-only attributes of the launch configuration
- * can be retrieved.
- * </p>
- *
- * @param configuration the deleted launch configuration
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration);
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
deleted file mode 100644
index 12f70e3ae..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-
-/**
- * Describes and creates instances of a specific type of
- * launch configuration. Launch configuration types are
- * defined by extensions.
- * <p>
- * A launch configuration type extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a launch configuration
- * type extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.launchConfigurationTypes"&gt;
- * &lt;launchConfigurationType
- * id="com.example.ExampleIdentifier"
- * delegate="com.example.ExampleLaunchConfigurationDelegate"
- * modes="run, debug"
- * name="Example Application"&gt;
- * &lt;/launchConfigurationType&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this launch configuration
- * type.</li>
- * <li><code>delegate</code> specifies the fully qualified name of the java class
- * that implements <code>ILaunchConfigurationDelegate</code>. Launch configuration
- * instances of this type will delegate to instances of this class
- * to perform launching.</li>
- * <li><code>modes</code> specifies a comma separated list of the modes this
- * type of launch configuration suports - <code>"run"</code> and/or <code>"debug"</code>.</li>
- * <li><code>name</code> specifies a human readable name for this type
- * of launch configuration.</li>
- * <li><code>category</code> is an optional attribute that specifies a category
- * for this launch configuration type. Categories are client defined. This
- * attribute was added in the 2.1 release.</li>
- * </ul>
- * </p>
- * TODO: add new attributes - sourcePathComputerId and sourceLocatorId
- * <p>
- * The <code>category</code> attribute has been added in release 2.1, such that other
- * tools may re-use the launch configuration framework for purposes other than
- * the standard running and debugging of programs under developement. Such that
- * clients may access arbitrary attribtes specified in launch configuration type
- * extension definitions, the method <code>getAttribute</code> has also been
- * added. Launch configurations that are to be recognized as standard run/debug
- * launch configurations should not specify the <code>category</code> attribute.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfiguration
- * @since 2.0
- */
-public interface ILaunchConfigurationType extends IAdaptable {
-
- /**
- * Returns whether this type of launch configuration supports
- * the specified mode.
- *
- * @param mode a mode in which a configuration can be launched, one of
- * the mode constants defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or
- * <code>DEBUG_MODE</code>.
- * @return whether this kind of launch configuration supports the
- * specified mode
- */
- public boolean supportsMode(String mode);
-
- /**
- * Returns the name of this type of launch configuration.
- *
- * @return the name of this type of launch configuration
- */
- public String getName();
-
- /**
- * Returns the unique identifier for this type of launch configuration
- *
- * @return the unique identifier for this type of launch configuration
- */
- public String getIdentifier();
-
- /**
- * Returns whether this launch configuration type is public. Public configuration
- * types are available for use by the user, for example, the user can create new
- * configurations based on public types through the UI. Private types are not
- * accessbile in this way, but are still available through the methods on
- * <code>ILaunchManager</code>.
- *
- * @return whether this launch configuration type is public.
- */
- public boolean isPublic();
-
- /**
- * Returns a new launch configuration working copy of this type,
- * that resides in the specified container, with the given name.
- * When <code>container</code> is </code>null</code>, the configuration
- * will reside locally in the metadata area.
- * Note: a launch configuration is not actually created until the working copy is saved.
- *
- * @param container the container in which the new configuration will
- * reside, or <code>null</code> if the configuration should reside
- * locally with the metadata.
- * @param name name for the launch configuration
- * @return a new launch configuration working copy instance of this type
- * @exception CoreException if an instance of this type
- * of launch configuration could not be created for any
- * reason
- */
- public ILaunchConfigurationWorkingCopy newInstance(IContainer container, String name) throws CoreException;
-
- /**
- * Returns the launch configuration delegate for launch
- * configurations of this type, for <code>run</code> mode.
- * The first time this method is called, the delegate is instantiated.
- *
- * @return launch configuration delegate
- * @exception CoreException if unable to instantiate the
- * delegate
- * @deprecated use <code>getDelegate(String)</code> to specify mode
- */
- public ILaunchConfigurationDelegate getDelegate() throws CoreException;
-
- /**
- * Returns the launch configuration delegate for launch
- * configurations of this type, for the specified mode. The first time
- * this method is called for a mode, the delegate is instantiated.
- * Launch delegates may be contributed to a launch configuration type
- * via the extension point <code>org.eclipse.debug.core.launchDelegates</code>
- *
- * @param mode launch mode
- * @return launch configuration delegate
- * @exception CoreException if unable to instantiate the
- * delegate
- * @since 3.0
- */
- public ILaunchConfigurationDelegate getDelegate(String mode) throws CoreException;
-
- /**
- * Returns this launch configuration type's category, or <code>null</code>
- * if unspecified. This corresponds to the category attribute specified in
- * the extension definition.
- *
- * @return this launch configuration type's category, or <code>null</code>
- * @since 2.1
- */
- public String getCategory();
-
- /**
- * Returns the attribute with the given name, as specified by this launch
- * configuration type's extension definition, or <code>null</code> if
- * unspecified.
- *
- * @param attributeName attribute name
- * @return the specified extension attribute, or <code>null</code>
- * @since 2.1
- */
- public String getAttribute(String attributeName);
-
- /**
- * Returns the source path computer registered with this launch configuration
- * type or <code>null</code> if unspecified. A source path computer can be
- * registered with a launch configuration type in plug-in XML via the
- * <code>sourcePathComputerId</code> attribute.
- *
- * @return the source path computer registered with this launch configuration
- * type or <code>null</code> if unspecified
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer();
-
- /**
- * Returns the identifier of the persistable source locator registered with
- * this launch configurations type, or <code>null</code> if unspecified.
- * Launch configuration types optionally specify this attribue
- * in their plug-in XML via the <code>sourceLocatorId</code> attribute.
- *
- * @return the identifier of the persistable source locator registered with
- * this launch configurations type, or <code>null</code> if unspecified
- * @since 3.0
- */
- public String getSourceLocatorId();
-
- /**
- * Returns the identifier of the plug-in that contributes this launch configuration type.
- *
- * @return the identifier of the plug-in that contributes this launch configuration type
- * @since 3.0
- */
- public String getPluginIdentifier();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
deleted file mode 100644
index 0fe69bb58..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * An editable copy of a launch configuration. Attributes of a
- * launch configuration are modified by modifying the attributes
- * of a working copy, and then saving the working copy.
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfiguration
- * @see ILaunchConfigurationType
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate
- * @since 2.0
- */
-public interface ILaunchConfigurationWorkingCopy extends ILaunchConfiguration, IAdaptable {
-
- /**
- * Returns whether this configuration has been modified
- * since it was last saved or created.
- *
- * @return whether this configuration has been modified
- * since it was last saved or created
- */
- public boolean isDirty();
-
- /**
- * Saves this working copy to its underlying file and returns
- * a handle to the resulting launch configuration.
- * Has no effect if this configuration does not need saving.
- * Creates the underlying file if not yet created.
- *
- * @exception CoreException if an exception occurs while
- * writing this configuration to its underlying file.
- */
- public ILaunchConfiguration doSave() throws CoreException;
-
- /**
- * Sets the integer-valued attribute with the given name.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value
- */
- public void setAttribute(String attributeName, int value);
-
- /**
- * Sets the String-valued attribute with the given name.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, String value);
-
- /**
- * Sets the <code>java.util.List</code>-valued attribute with the given name.
- * The specified List <em>must</em> contain only String-valued entries.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, List value);
-
- /**
- * Sets the <code>java.util.Map</code>-valued attribute with the given name.
- * The specified Map <em>must</em> contain only String keys and String values.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, Map value);
-
- /**
- * Sets the boolean-valued attribute with the given name.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value
- */
- public void setAttribute(String attributeName, boolean value);
-
- /**
- * Returns the original launch configuration this working copy
- * was created from, or <code>null</code> if this is a new
- * working copy created from a launch configuration type.
- *
- * @return the original launch configuration, or <code>null</code>
- */
- public ILaunchConfiguration getOriginal();
-
- /**
- * Renames this launch configuration to the specified name.
- * The new name cannot be <code>null</code>. Has no effect if the name
- * is the same as the current name. If this working copy is based
- * on an existing launch configuration, this will cause
- * the underlying launch configuration file to be renamed when
- * this working copy is saved.
- *
- * @param name the new name for this configuration
- */
- public void rename(String name);
-
- /**
- * Sets the container this launch configuration will be stored
- * in when saved. When set to <code>null</code>, this configuration
- * will be stored locally with the workspace. The specified
- * container must exist, if specified.
- * <p>
- * If this configuration is changed from local to non-local,
- * a file will be created in the specified container when
- * saved. The local file associated with this configuration
- * will be deleted.
- * </p>
- * <p>
- * If this configuration is changed from non-local to local,
- * a file will be created locally when saved.
- * The original file associated with this configuration in
- * the workspace will be deleted.
- * </p>
- *
- * @param container the container in which to store this
- * launch configuration, or <code>null</code> if this
- * configuration is to be stored locally
- */
- public void setContainer(IContainer container);
-
- /**
- * Sets the attributes of this launch configuration to be the ones contained
- * in the given map. The values must be an instance of one of the following
- * classes: <code>String</code>, <code>Integer</code>, or
- * <code>Boolean</code>, <code>List</code>, <code>Map</code>. Attributes
- * previously set on this launch configuration but not included in the given
- * map are considered to be removals. Setting the given map to be
- * <code>null</code> is equivalent to removing all attributes.
- *
- * @param attributes a map of attribute names to attribute values.
- * Attribute names are not allowed to be <code>null</code>
- * @since 2.1
- */
- public void setAttributes(Map attributes);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
deleted file mode 100644
index 5faa7207b..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A launch listener is notified of launches as they
- * are added and removed from the launch manager. Also,
- * when a process or debug target is added to a launch,
- * listeners are notified of a change.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.ILaunchesListener
- */
-public interface ILaunchListener {
- /**
- * Notifies this listener that the specified
- * launch has been removed.
- *
- * @param launch the removed launch
- * @since 2.0
- */
- public void launchRemoved(ILaunch launch);
- /**
- * Notifies this listener that the specified launch
- * has been added.
- *
- * @param launch the newly added launch
- * @since 2.0
- */
- public void launchAdded(ILaunch launch);
- /**
- * Notifies this listener that the specified launch
- * has changed. For example, a process or debug target
- * has been added to the launch.
- *
- * @param launch the changed launch
- * @since 2.0
- */
- public void launchChanged(ILaunch launch);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
deleted file mode 100644
index cc399f081..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-
-/**
- * The launch manager manages the set of registered launches, maintaining
- * a collection of active processes and debug targets. Clients interested
- * in launch notification may register with the launch manager.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @see ILaunch
- * @see ILaunchListener
- */
-public interface ILaunchManager {
- /**
- * A launch in a normal, non-debug mode(value <code>"run"</code>).
- */
- public static final String RUN_MODE= "run"; //$NON-NLS-1$
- /**
- * A launch in a special debug mode (value <code>"debug"</code>).
- */
- public static final String DEBUG_MODE= "debug"; //$NON-NLS-1$
- /**
- * A launch in a special profile mode (value <code>"profile"</code>).
- * @since 3.0
- */
- public static final String PROFILE_MODE= "profile"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute name. The value is a map of environment
- * variables passed into Runtime.exec(...) when a launch configuration is launched.
- * Default value is <code>null</code> which indicates the default environment
- * should be used.
- *
- * @since 3.0
- */
- public static final String ATTR_ENVIRONMENT_VARIABLES = DebugPlugin.getUniqueIdentifier() + ".environmentVariables"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute name. The value is a boolean value specifying
- * whether the environment variables in a launch configuration
- * should be appended to the native environment (i.e. when <code>true</code>),
- * or if they should replace the environment (i.e. <code>false</code>). The
- * default value is <code>true</code>.
- *
- * @since 3.0
- */
- public static final String ATTR_APPEND_ENVIRONMENT_VARIABLES = DebugPlugin.getUniqueIdentifier() + ".appendEnvironmentVariables"; //$NON-NLS-1$
-
- /**
- * Adds the given listener to the collection of registered launch listeners.
- * Has no effect if an identical listener is already registerd.
- *
- * @param listener the listener to register
- */
- public void addLaunchListener(ILaunchListener listener);
- /**
- * Adds the given listener to the collection of registered launch listeners.
- * Has no effect if an identical listener is already registerd.
- *
- * @param listener the listener to register
- * @since 2.1
- */
- public void addLaunchListener(ILaunchesListener listener);
- /**
- * Removes the specified launch and notifies listeners.
- * Has no effect if an identical launch is not already
- * registered.
- *
- * @param launch the launch to remove
- * @since 2.0
- */
- public void removeLaunch(ILaunch launch);
- /**
- * Removes the specified launch objects and notifies listeners.
- * Has no effect on identical launch objects that are not already
- * registered.
- *
- * @param launches the launch objects to remove
- * @since 2.1
- */
- public void removeLaunches(ILaunch[] launches);
- /**
- * Returns the collection of debug targets currently registered with this
- * launch manager.
- *
- * @return an array of debug targets
- */
- public IDebugTarget[] getDebugTargets();
- /**
- * Returns the collection of launches currently registered
- * with this launch manager.
- *
- * @return an array of launches
- */
- public ILaunch[] getLaunches();
- /**
- * Returns the collection of processes currently registered with this
- * launch manager.
- *
- * @return an array of processes
- */
- public IProcess[] getProcesses();
- /**
- * Adds the specified launch and notifies listeners. Has no
- * effect if an identical launch is already registered.
- *
- * @param launch the launch to add
- * @since 2.0
- */
- public void addLaunch(ILaunch launch);
- /**
- * Adds the specified launch objects and notifies listeners. Has no
- * effect on identical launch objects already registered.
- *
- * @param launches the launch objects to add
- * @since 2.1
- */
- public void addLaunches(ILaunch[] launches);
- /**
- * Removes the given listener from the collection of registered launch listeners.
- * Has no effect if an identical listener is not already registerd.
- *
- * @param listener the listener to deregister
- */
- public void removeLaunchListener(ILaunchListener listener);
- /**
- * Removes the given listener from the collection of registered launch listeners.
- * Has no effect if an identical listener is not already registerd.
- *
- * @param listener the listener to deregister
- * @since 2.1
- */
- public void removeLaunchListener(ILaunchesListener listener);
- /**
- * Returns all launch configurations defined in the workspace.
- *
- * @return all launch configurations defined in the workspace
- * @exception CoreException if an exception occurs retrieving configurations
- * @since 2.0
- */
- public ILaunchConfiguration[] getLaunchConfigurations() throws CoreException;
-
- /**
- * Returns all launch configurations of the specified type defined in the workspace
- *
- * @param type a launch configuration type
- * @return all launch configurations of the specified type defined in the workspace
- * @exception CoreException if an error occurs while retreiving
- * a launch configuration
- * @since 2.0
- */
- public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException;
-
- /**
- * Returns a handle to the launch configuration contained
- * in the specified file. The file is not verified to exist
- * or contain a launch configuration.
- *
- * @param file launch configuration file
- * @return a handle to the launch configuration contained
- * in the specified file
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration(IFile file);
-
- /**
- * Returns a handle to the launch configuration specified by
- * the given memento. The configuration may not exist.
- *
- * @return a handle to the launch configuration specified by
- * the given memento
- * @exception CoreException if the given memento is invalid or
- * an exception occurs parsing the memento
- * @see ILaunchConfiguration#getMemento()
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException;
-
- /**
- * Returns all defined launch configuration type extensions
- *
- * @return all defined launch configuration type extensions
- * @since 2.0
- */
- public ILaunchConfigurationType[] getLaunchConfigurationTypes();
-
- /**
- * Returns the launch configuration type extension with the specified
- * id, or <code>null</code> if it does not exist.
- *
- * @param id unique identifier for a launch configuration type extension
- * @return the launch configuration type extension with the specified
- * id, or <code>null</code> if it does not exist
- * @since 2.0
- */
- public ILaunchConfigurationType getLaunchConfigurationType(String id);
-
- /**
- * Adds the given launch configuration listener to the list
- * of listeners notified when a launch configuration is
- * added, removed, or changed. Has no effect if the given listener
- * is already registered.
- *
- * @param listener launch configuration listener
- * @since 2.0
- */
- public void addLaunchConfigurationListener(ILaunchConfigurationListener listener);
-
- /**
- * Removes the given launch configuration listener from the list
- * of listeners notified when a launch configuration is
- * added, removed, or changed. Has no effect if the given listener
- * is not already registered.
- *
- * @param listener launch configuration listener
- * @since 2.0
- */
- public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener);
-
- /**
- * Return <code>true</code> if there is a launch configuration with the specified name,
- * <code>false</code> otherwise.
- *
- * @param name the name of the launch configuration whose existence is being checked
- * @exception CoreException if unable to retrieve existing launch configuration names
- * @since 2.0
- */
- public boolean isExistingLaunchConfigurationName(String name) throws CoreException;
-
- /**
- * Return a String that can be used as the name of a launch configuration. The name
- * is guaranteed to be unique (no existing launch configurations will have this name).
- * The name that is returned uses the <code>namePrefix</code> as a starting point. If
- * there is no existing launch configuration with this name, then <code>namePrefix</code>
- * is returned. Otherwise, the value returned consists of the specified prefix plus
- * some suffix that guarantees uniqueness.
- *
- * @param namePrefix the String that the returned name must begin with
- * @since 2.0
- */
- public String generateUniqueLaunchConfigurationNameFrom(String namePrefix);
-
- /**
- * Creates and returns a new source locator of the specified
- * type.
- *
- * @param identifier the identifier associated with a
- * persistable source locator extension
- * @return a source locator
- * @exception CoreException if an exception occurs creating
- * the source locator
- * @since 2.0
- */
- public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException;
-
- /**
- * When a launch configuration is created or moved, registered launch
- * configuration listeners (see <code>ILaunchConfigurationListener</code>)
- * are notified of an add notification for the new configuration. If the
- * notification is the result of a move this method will return a handle to
- * the launch configuration that the added launch configuration was moved
- * from. This method returns <code>null</code> if the added launch
- * configuration was not the result of a rename or move. This information is
- * only available during the add notification call back
- * <code>launchConfigurationAdded</code>.
- * <p>
- * Renaming a configuration is considered the same as moving a
- * configuration.
- * </p>
- *
- * @param addedConfiguration a launch configuration for which an add
- * notification is being broadcast
- * @return the launch configuration that the added launch configuration was
- * moved from, or <code>null</code> if the add notification is not the
- * result of a move
- * @since 2.1
- */
- public ILaunchConfiguration getMovedFrom(ILaunchConfiguration addedConfiguration);
-
- /**
- * When a launch configuration is deleted or moved, registered launch
- * configuration listeners (see <code>ILaunchConfigurationListener</code>)
- * are notified of a remove notification for launch configuration that has
- * been deleted. If the notification is the result of a move this method
- * will return a handle to the launch configuration that the removed launch
- * configuration was moved to. This method returns <code>null</code> if the
- * removed launch configuration was not the result of a rename or move. This
- * information is only available during the add notification call back
- * <code>launchConfigurationRemoved</code>.
- * <p>
- * Renaming a configuration is considered the same as moving a
- * configuration.
- * </p>
- *
- * @param removedConfiguration a launch configuration for which a
- * remove notification is being broadcast
- * @return the launch configuration that the removed launch configuration
- * was moved to, or <code>null</code> if the add notification is not the
- * result of a move
- * @since 2.1
- */
- public ILaunchConfiguration getMovedTo(ILaunchConfiguration removedConfiguration);
-
- /**
- * Returns all registered launch modes.
- *
- * @return all registered launch modes
- * @since 3.0
- */
- public ILaunchMode[] getLaunchModes();
-
- /**
- * Returns the launch mode registered with the given mode identifier,
- * or <code>null</code> if none.
- *
- * @param mode mode identifier
- * @return launch mode or <code>null</code>
- * @since 3.0
- */
- public ILaunchMode getLaunchMode(String mode);
-
- /**
- * Returns an array of environment variables to be used when
- * launching the given configuration or <code>null</code> if unspecified.
- *
- * @param configuration launch configuration
- * @throws CoreException if unable to access associated attribute or if
- * unable to resolve a variable in an environment variable's value
- * @since 3.0
- */
- public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Returns a source path computer to compute a default source lookup path for
- * the given launch configuration, or <code>null</code> if a source path
- * computer has not been registered for the associated launch configuration
- * type.
- *
- * @param configuration a launch configuration
- * @return a source path computer registered for the associated launch
- * configurations type, or <code>null</code> if unspecified
- * @throws CoreException if an exception occurs while instantiating a source
- * path computer
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer(ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Returns the source path computer extension registered with the given
- * unique identifier, or <code>null</code> if none.
- *
- * @param id source path computer identifier
- * @return the source path computer extension registered with the given
- * unique identifier, or <code>null</code> if none
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer(String id);
-
- /**
- * Returns the native system environment variables as a map of
- * variable names and values (Strings). On WIN32,
- * all keys (variable names) are returned in uppercase. Note
- * that WIN32's environment is not case sensitive.
- *
- * @return the native system environment variables
- * @since 3.0
- */
- public Map getNativeEnvironment();
-
- /**
- * Returns all registered source container type extensions.
- *
- * @return all registered source container type extensions
- * @since 3.0
- */
- public ISourceContainerType[] getSourceContainerTypes();
-
- /**
- * Returns the source container type extension registered with the
- * given unique identifier, or <code>null</code> if none.
- *
- * @param id unique identifier of a source container type extension
- * @return the source container type extension registered with the
- * given unique identifier, or <code>null</code> if none
- * @since 3.0
- */
- public ISourceContainerType getSourceContainerType(String id);
-
- /**
- * Returns whether the given launch is currently registered.
- *
- * @param launch a launch
- * @return whether the launch is currently registered
- * @since 3.1
- */
- public boolean isRegistered(ILaunch launch);
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java
deleted file mode 100644
index 265d8d3e9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * A launch mode. The debug platform contributes launch modes
- * for run, debug, and profile. Clients may contribute additional launch
- * modes in plug-in XML via the <code>launchModes</code> extension point.
- * <p>
- * Following is an example launch mode contribution for profiling. A launch
- * mode has an unique identifer specified by the <code>mode</code> attribute
- * and a human readable label specified by the <code>label</code> attribute.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.launchModes&quot;&gt;
- * &lt;launchMode
- * mode=&quot;profile&quot;
- * label=&quot;Profile&quot;&gt;
- * &lt;/launchMode&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchMode {
-
- /**
- * Returns the unique identifier for this launch mode.
- *
- * @return the unique identifier for this launch mode
- */
- public String getIdentifier();
-
- /**
- * Returns a human readable label for this launch mode.
- *
- * @return a human readable label for this launch mode
- */
- public String getLabel();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java
deleted file mode 100644
index 1e5b9812e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A launches listener is notified of launches as they
- * are added and removed from the launch manager. Also,
- * when a process or debug target is added to a launch,
- * listeners are notified of a change.
- * <p>
- * This interface is analagous to <code>ILaunchListerner</code>, except
- * notifications are batched to include more than one launch object
- * when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.ILaunchManager
- * @since 2.1
- */
-public interface ILaunchesListener {
- /**
- * Notifies this listener that the specified
- * launches have been removed.
- *
- * @param launches the removed launch objects
- */
- public void launchesRemoved(ILaunch[] launches);
- /**
- * Notifies this listener that the specified launches
- * have been added.
- *
- * @param launches the newly added launch objects
- */
- public void launchesAdded(ILaunch[] launches);
- /**
- * Notifies this listener that the specified launches
- * have changed. For example, a process or debug target
- * has been added to a launch.
- *
- * @param launches the changed launch object
- */
- public void launchesChanged(ILaunch[] launches);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java
deleted file mode 100644
index 38dfc0924..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * Enhancements to the launches listener interface. Provides notification
- * when one or more launches terminate.
- * <p>
- * Clients implementing launches listener may implement
- * this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchesListener2 extends ILaunchesListener {
-
- /**
- * Notification that the given launches have terminated.
- *
- * @param launches the launches that have terminated
- */
- public void launchesTerminated(ILaunch[] launches);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java
deleted file mode 100644
index 2bd68f31e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Provides logical structure types applicable to a raw implementation value from
- * a debug model. Associated with a logical structure provider extension.
- * <p>
- * Clients contributing logical structure providers should implement this
- * interface.
- * </p>
- * @since 3.1
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureProvider {
-
- /**
- * Returns the logical structure types which are applicable to the given value.
- *
- * @param value value for which logical structure types are being requested
- * @return the logical structure types which are applicable to the given value
- */
- public ILogicalStructureType[] getLogicalStructureTypes(IValue value);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java
deleted file mode 100644
index 653ef6b21..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate;
-import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate2;
-
-/**
- * Provides a value representing the logical structure of a raw implementation value
- * from a debug model. Logical structures are useful for navigating complex data
- * structures. Logical structure types are contributed via extensions in plug-in XML,
- * and provide a delegate for performing logical value computation. Logical
- * structure types can be retrieved from the <code>DebugPlugin</code>.
- * <p>
- * Following is example plug-in XML to define a logical structure type.
- * </p>
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.logicalStructureTypes&quot;&gt;
- * &lt;logicalStructureType
- * id=&quot;com.example.ExampleLogicalStructure&quot;
- * class=&quot;com.example.ExampleLogicalStructureDelegate&quot;
- * modelIdentifier=&quot;com.example.debug.model&quot;
- * description=&quot;Ordered Collection&quot;&gt;
- * &lt;/logicalStructureType&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * The attributes are specified as follows:
- * <ul>
- * <li>id - unique identifier for this logical structure type</li>
- * <li>class - fully qualified name of class that implements
- * <code>ILogicalStructureTypeDelegate</code></li>
- * <li>modelIdentifier - identifier of the debug model this logical structure
- * type is associated with</li>
- * <li>description - description of the logical structure provided</li>
- * </ul>
- * </p>
- * <p>
- *
- * TODO: review the doc for the new provider extension point
- *
- *
- * Clients are not intended to implement this interface. Instead clients
- * providing logical strucutre types provide and implement an
- * <code>ILogicalStructureTypeDelegate</code>. Clients may optionally implement
- * <code>ILogicalStructureTypeDelegate2</code> to provide dynamic descriptions
- * of logical structures.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate
- */
-public interface ILogicalStructureType extends ILogicalStructureTypeDelegate, ILogicalStructureTypeDelegate2 {
-
- /**
- * Returns a simple description of the logical structure provided by this
- * structure type.
- * <p>
- * Since 3.1, this method can return <code>null</code> if this logical structure
- * type's delegate implements <code>ILogicalStructureTypeDelegate2</code>.
- * </p>
- *
- * @return a simple description of the logical structure provided by this
- * structure type, possibly <code>null</code>
- */
- public String getDescription();
-
- /**
- * Returns this logical structure type's unique identifier, as defined
- * in plug-in XML.
- *
- * @return this logical structure type's unique identifier
- */
- public String getId();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java
deleted file mode 100644
index 9afbde6c5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IMemoryBlock;
-
-/**
- * A memory block listener is notified of the addition and removal
- * of memory blocks with the memory block manager. Listeners must
- * register with the memory block manager for notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IMemoryBlockListener {
-
- /**
- * Notification the given memory blocks ahve been added to the
- * memory block manager.
- *
- * @param memory blocks added to the memory block manager
- */
- void memoryBlocksAdded(IMemoryBlock[] memory);
-
- /**
- * Notification the given memory blocks have been removed from
- * the memory block manager.
- *
- * @param memory blocks removed from the memory block manager
- */
- void memoryBlocksRemoved(IMemoryBlock[] memory);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java
deleted file mode 100644
index 862a2ef3f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IMemoryBlockRetrieval;
-
-
-/**
- * Manages registered memory blocks in the workspace. Clients
- * interested in notification of the addition and removal of
- * memory blocks may register as a memory block listener with
- * the memory block manager.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.model.IMemoryBlock
- * @see org.eclipse.debug.core.IMemoryBlockListener
- * @since 3.1
- */
-public interface IMemoryBlockManager {
-
- /**
- * Adds the given memory blocks to the memory block manager.
- * Registered memory block listeners are notified of the additions.
- * Has no effect on memory blocks that are already registered.
- *
- * @param memoryBlocks memory blocks to add
- */
- public void addMemoryBlocks(IMemoryBlock[] memoryBlocks);
-
- /**
- * Removes the given memory blocks from the memory block manager.
- * Registered memory block listeners are notified of the removals.
- * Has no effect on memory blocks that are not currently registered.
- *
- * @param memoryBlocks memory blocks to remove
- */
- public void removeMemoryBlocks(IMemoryBlock[] memoryBlocks);
-
- /**
- * Registers the given listener for memory block addition and
- * removal notification. Has no effect if an identical listener
- * is already registered.
- *
- * @param listener the listener to add
- */
- public void addListener(IMemoryBlockListener listener);
-
- /**
- * Deregisters the givem listener for memory block addition and
- * removal notficiation. Has no effect if an identical listener
- * is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeListener(IMemoryBlockListener listener);
-
- /**
- * Returns all registered memory blocks.
- *
- * @return all registered memory blocks
- */
- public IMemoryBlock[] getMemoryBlocks();
-
- /**
- * Returns all registered memory blocks assocaited with the
- * given debug target. That is, all registered memory blocks
- * whose <code>getDebugTarget()</code> method returns the
- * specified debug target.
- *
- * @param debugTarget target for which memory blocks have been requested
- * @return all registered memory blocks associated with the given debug
- * target
- */
- public IMemoryBlock[] getMemoryBlocks(IDebugTarget debugTarget);
-
- /**
- * Returns all registered memory blocks that originated from the
- * given memory retrieval source.
- *
- * @param source source for which memory blocks have been requested
- * @return all registered memory blocks that originated from the
- * given memory retrieval source
- */
- public IMemoryBlock[] getMemoryBlocks(IMemoryBlockRetrieval source);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java
deleted file mode 100644
index 8cf8e3521..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import java.util.Map;
-
-import org.eclipse.debug.core.model.IProcess;
-
-/**
- * A process factory is used to override default process (<code>IProcess</code>)
- * creation by the debug plug-in, and can be contributed via plug-in XML. When a
- * new process is created via <code>DebugPlugin.newProcess(..)</code>, the
- * launch configuration associated with the specified launch is consulted for
- * a process factory attribute (<code>ATTR_PROCESS_FACTORY_ID</code>). If
- * present, the associated process factory is consulted to create a process for
- * the launch. If not present a default process implementation is created and
- * returned by the debug plug-in.
- * <p>
- * Following is example plug-in XML that contributes a process factory.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.processFactories"&gt;
- * &lt;processFactory
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleProcessFactory"&gt;
- * &lt;/processFactory&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li>id - a unique identifier for this extension point</li>
- * <li>class - the fully qualified name of a class the implements
- * <code>IProcessFactory</code></li>
- * </ul>
- * </p>
- * @since 3.0
- */
-
-public interface IProcessFactory {
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch, and the process is initialized
- * with the given attribute map.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @param attributes initial values for the attribute map
- * @return the process
- * @see IProcess
- */
- public IProcess newProcess(ILaunch launch, Process process, String label, Map attributes);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
deleted file mode 100644
index fd7af0b64..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A status handler registers to handle a specific status - error
- * or otherwise. Provides a mechanism for separating core (headless)
- * function from UI interaction. The debug plug-in provides a
- * status handlers extension point, against which handlers can
- * register for specific status codes - identified by plug-in
- * identifier and plug-in specific status code. The interaction between
- * an object requiring a status handler (source), and the status handler
- * is defined by the source and handler.
- * <p>
- * For example, a launch configuration delegate might encounter a timeout
- * while launching an application. In this case the delegate could abort
- * or, via the use of a status handler, prompt the user to continue. This
- * allows the launcher to be implemented in a plug-in that does not require
- * UI support, and allows another (UI) plug-in to register a handler.
- * </p>
- * <p>
- * A status handler extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a status handler extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.statusHandlers"&gt;
- * &lt;statusHandler
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleStatusHandler"
- * plugin="com.example.ExamplePluginId"
- * code="123"&gt;
- * &lt;/statusHandler&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this status handler.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- * that implements <code>IStatusHandler</code>.</li>
- * <li><code>plugin</code> plug-in identifier that corresponds to the
- * plug-in of the status this handler is registered for (i.e.
- * <code>IStatus.getPlugin()</code>).</li>
- * <li><code>code</code> specifies the status code this handler
- * is registered for.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugPlugin#getStatusHandler(IStatus)
- * @since 2.0
- */
-
-public interface IStatusHandler {
-
- /**
- * Notifies this status handler that the given status has been
- * generated by the specified source object and requires resolution.
- *
- * @param status the status to handle
- * @param source the object delegating to this status handler
- * the given status
- * @return an object representing the resolution of the status
- * @exception CoreException if unable to resolve the status
- */
- public Object handleStatus(IStatus status, Object source) throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
deleted file mode 100644
index c9bd1b7f3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IStreamMonitor;
-
-/**
- * A stream listener is notified of changes
- * to a stream monitor.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IStreamMonitor
- */
-public interface IStreamListener {
- /**
- * Notifies this listener that text has been appended to
- * the given stream monitor.
- *
- * @param text the appended text
- * @param monitor the stream monitor to which text was appended
- */
- public void streamAppended(String text, IStreamMonitor monitor);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
deleted file mode 100644
index dd0eed525..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Pawel Piech - Bug 82003: The IDisconnect implementation by Launch module is too restrictive.
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IDisconnect;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.ISourceLocator;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.LaunchManager;
-
-/**
- * A launch is the result of launching a debug session
- * and/or one or more system processes. This class provides
- * a public implementation of <code>ILaunch</code> for client
- * use.
- * <p>
- * Clients may instantiate this class. Clients may subclass this class.
- * Many of the methods in this class that are part of the <code>ILaunch</code> interface
- * are final. Clients that subclass this class are not intended to change the behavior
- * or implementation of the provided methods. Subclassing is only intended
- * to add additional information to a specific launch. For example, a client that
- * implements a launch object representing a Java launch might store a classpath
- * with the launch.
- * </p>
- * @see ILaunch
- * @see ILaunchManager
- */
-
-public class Launch extends PlatformObject implements ILaunch, IDisconnect, ILaunchListener, ILaunchConfigurationListener, IDebugEventSetListener {
-
- /**
- * The debug targets associated with this
- * launch (the primary target is the first one
- * in this collection), or empty if
- * there are no debug targets.
- */
- private List fTargets= new ArrayList();
-
- /**
- * The configuration that was launched, or null.
- */
- private ILaunchConfiguration fConfiguration= null;
-
- /**
- * The system processes associated with
- * this launch, or empty if none.
- */
- private List fProcesses= new ArrayList();
-
- /**
- * The source locator to use in the debug session
- * or <code>null</code> if not supported.
- */
- private ISourceLocator fLocator= null;
-
- /**
- * The mode this launch was launched in.
- */
- private String fMode;
-
- /**
- * Table of client defined attributes
- */
- private HashMap fAttributes;
-
- /**
- * Flag indiating that change notification should
- * be suppressed. <code>true</code> until this
- * launch has been initialzied.
- */
- private boolean fSuppressChange = true;
-
- /**
- * Constructs a launch with the specified attributes.
- *
- * @param launchConfiguration the configuration that was launched
- * @param mode the mode of this launch - run or debug (constants
- * defined by <code>ILaunchManager</code>)
- * @param locator the source locator to use for this debug session, or
- * <code>null</code> if not supported
- */
- public Launch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator) {
- setLaunchConfiguration(launchConfiguration);
- setSourceLocator(locator);
- setLaunchMode(mode);
- fSuppressChange = false;
- getLaunchManager().addLaunchListener(this);
- getLaunchManager().addLaunchConfigurationListener(this);
- DebugPlugin.getDefault().addDebugEventListener(this);
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
- */
- public final boolean canTerminate() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- IProcess process = (IProcess)processes.get(i);
- if (process.canTerminate()) {
- return true;
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- IDebugTarget target = (IDebugTarget)targets.get(i);
- if (target.canTerminate() || target.canDisconnect()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @see ILaunch#getChildren()
- */
- public final Object[] getChildren() {
- ArrayList children = new ArrayList(getDebugTargets0());
- children.addAll(getProcesses0());
- return children.toArray();
- }
-
- /**
- * @see ILaunch#getDebugTarget()
- */
- public final IDebugTarget getDebugTarget() {
- if (!getDebugTargets0().isEmpty()) {
- return (IDebugTarget)getDebugTargets0().get(0);
- }
- return null;
- }
-
- /**
- * Sets the configuration that was launched
- *
- * @param configuration the configuration that was launched
- */
- private void setLaunchConfiguration(ILaunchConfiguration configuration) {
- fConfiguration = configuration;
- }
-
- /**
- * @see ILaunch#getProcesses()
- */
- public final IProcess[] getProcesses() {
- return (IProcess[])getProcesses0().toArray(new IProcess[getProcesses0().size()]);
- }
-
- /**
- * Returns the processes associated with this
- * launch, in its internal form - a list.
- *
- * @return list of processes
- */
- protected List getProcesses0() {
- return fProcesses;
- }
-
- /**
- * @see ILaunch#getSourceLocator()
- */
- public final ISourceLocator getSourceLocator() {
- return fLocator;
- }
-
- /**
- * @see ILaunch#setSourceLocator(ISourceLocator)
- */
- public final void setSourceLocator(ISourceLocator sourceLocator) {
- fLocator = sourceLocator;
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
- */
- public final boolean isTerminated() {
- if (getProcesses0().isEmpty() && getDebugTargets0().isEmpty()) {
- return false;
- }
-
- Iterator processes = getProcesses0().iterator();
- while (processes.hasNext()) {
- IProcess process = (IProcess)processes.next();
- if (!process.isTerminated()) {
- return false;
- }
- }
-
- Iterator targets = getDebugTargets0().iterator();
- while (targets.hasNext()) {
- IDebugTarget target = (IDebugTarget)targets.next();
- if (!(target.isTerminated() || target.isDisconnected())) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#terminate()
- */
- public final void terminate() throws DebugException {
- MultiStatus status=
- new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED, DebugCoreMessages.getString("Launch.terminate_failed"), null); //$NON-NLS-1$
-
- // terminate the system processes
- IProcess[] processes = getProcesses();
- for (int i = 0; i < processes.length; i++) {
- IProcess process = processes[i];
- if (process.canTerminate()) {
- try {
- process.terminate();
- } catch (DebugException e) {
- status.merge(e.getStatus());
- }
- }
- }
-
- // terminate or disconnect debug target if it is still alive
- IDebugTarget[] targets = getDebugTargets();
- for (int i = 0; i < targets.length; i++) {
- IDebugTarget target= targets[i];
- if (target != null) {
- if (target.canTerminate()) {
- try {
- target.terminate();
- } catch (DebugException e) {
- status.merge(e.getStatus());
- }
- } else {
- if (target.canDisconnect()) {
- try {
- target.disconnect();
- } catch (DebugException de) {
- status.merge(de.getStatus());
- }
- }
- }
- }
- }
- if (status.isOK()) {
- return;
- }
- IStatus[] children= status.getChildren();
- if (children.length == 1) {
- throw new DebugException(children[0]);
- }
- throw new DebugException(status);
- }
-
- /**
- * @see ILaunch#getLaunchMode()
- */
- public final String getLaunchMode() {
- return fMode;
- }
-
- /**
- * Sets the mode in which this launch was
- * launched.
- *
- * @param mode the mode in which this launch
- * was launched - one of the constants defined
- * by <code>ILaunchManager</code>.
- */
- private void setLaunchMode(String mode) {
- fMode = mode;
- }
-
- /**
- * @see ILaunch#getLaunchConfiguration()
- */
- public ILaunchConfiguration getLaunchConfiguration() {
- return fConfiguration;
- }
-
- /**
- * @see ILaunch#setAttribute(String, String)
- */
- public void setAttribute(String key, String value) {
- if (fAttributes == null) {
- fAttributes = new HashMap(5);
- }
- fAttributes.put(key, value);
- }
-
- /**
- * @see ILaunch#getAttribute(String)
- */
- public String getAttribute(String key) {
- if (fAttributes == null) {
- return null;
- }
- return (String)fAttributes.get(key);
- }
-
- /**
- * @see ILaunch#getDebugTargets()
- */
- public IDebugTarget[] getDebugTargets() {
- return (IDebugTarget[])fTargets.toArray(new IDebugTarget[fTargets.size()]);
- }
-
- /**
- * Returns the debug targets associated with this
- * launch, in its internal form - a list
- *
- * @return list of debug targets
- */
- protected List getDebugTargets0() {
- return fTargets;
- }
-
- /**
- * @see ILaunch#addDebugTarget(IDebugTarget)
- */
- public final void addDebugTarget(IDebugTarget target) {
- if (target != null) {
- if (!getDebugTargets0().contains(target)) {
- getDebugTargets0().add(target);
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#removeDebugTarget(IDebugTarget)
- */
- public final void removeDebugTarget(IDebugTarget target) {
- if (target != null) {
- if (getDebugTargets0().remove(target)) {
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#addProcess(IProcess)
- */
- public final void addProcess(IProcess process) {
- if (process != null) {
- if (!getProcesses0().contains(process)) {
- getProcesses0().add(process);
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#removeProcess(IProcess)
- */
- public final void removeProcess(IProcess process) {
- if (process != null) {
- if (getProcesses0().remove(process)) {
- fireChanged();
- }
- }
- }
-
- /**
- * Adds the given processes to this launch.
- *
- * @param processes processes to add
- */
- protected void addProcesses(IProcess[] processes) {
- if (processes != null) {
- for (int i = 0; i < processes.length; i++) {
- addProcess(processes[i]);
- fireChanged();
- }
- }
- }
-
- /**
- * Notifies listeners that this launch has changed.
- * Has no effect of this launch has not yet been
- * properly created/initialized.
- */
- protected void fireChanged() {
- if (!fSuppressChange) {
- ((LaunchManager)getLaunchManager()).fireUpdate(this, LaunchManager.CHANGED);
- ((LaunchManager)getLaunchManager()).fireUpdate(new ILaunch[] {this}, LaunchManager.CHANGED);
- }
- }
-
- /**
- * Notifies listeners that this launch has terminated.
- * Has no effect of this launch has not yet been
- * properly created/initialized.
- */
- protected void fireTerminate() {
- if (!fSuppressChange) {
- ((LaunchManager)getLaunchManager()).fireUpdate(this, LaunchManager.TERMINATE);
- ((LaunchManager)getLaunchManager()).fireUpdate(new ILaunch[] {this}, LaunchManager.TERMINATE);
- }
- }
-
- /**
- * @see ILaunch#hasChildren()
- */
- public boolean hasChildren() {
- return getProcesses0().size() > 0 || (getDebugTargets0().size() > 0);
- }
-
- /**
- * Returns whether any processes or targets can be disconnected.
- * Ones that are already terminated or disconnected are ignored.
- *
- * @see org.eclipse.debug.core.model.IDisconnect#canDisconnect()
- */
- public boolean canDisconnect() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect process = (IDisconnect)processes.get(i);
- if (process.canDisconnect()) {
- return true;
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- if ( ((IDebugTarget)targets.get(i)).canDisconnect() ) {
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * @see org.eclipse.debug.core.model.IDisconnect#disconnect()
- */
- public void disconnect() throws DebugException {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect disconnect = (IDisconnect)processes.get(i);
- if (disconnect.canDisconnect()) {
- disconnect.disconnect();
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- IDebugTarget debugTarget = (IDebugTarget)targets.get(i);
- if (debugTarget.canDisconnect()) {
- debugTarget.disconnect();
- }
- }
- }
-
- /**
- * Returns whether all of the contained targets and processes are
- * disconnected. Processes that don't support disconnecting are not
- * counted.
- *
- * @see org.eclipse.debug.core.model.IDisconnect#isDisconnected()
- */
- public boolean isDisconnected() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect process = (IDisconnect)processes.get(i);
- if (!process.isDisconnected()) {
- return false;
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- if ( !((IDebugTarget)targets.get(i)).isDisconnected() ) {
- return false;
- }
- }
- // only return true if there are processes or targets that are disconnected
- return hasChildren();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchRemoved(org.eclipse.debug.core.ILaunch)
- */
- public void launchRemoved(ILaunch launch) {
- if (this.equals(launch)) {
- getLaunchManager().removeLaunchListener(this);
- getLaunchManager().removeLaunchConfigurationListener(this);
- DebugPlugin.getDefault().removeDebugEventListener(this);
- }
- }
-
- /**
- * Returns the launch manager.
- *
- * @return the launch manager.
- */
- protected ILaunchManager getLaunchManager() {
- return DebugPlugin.getDefault().getLaunchManager();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchAdded(org.eclipse.debug.core.ILaunch)
- */
- public void launchAdded(ILaunch launch) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchChanged(org.eclipse.debug.core.ILaunch)
- */
- public void launchChanged(ILaunch launch) {
- }
-
- /* (non-Javadoc)
- *
- * If the launch configuration this launch is associated with is
- * moved, update the underlying handle to the new location.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration) {
- ILaunchConfiguration from = getLaunchManager().getMovedFrom(configuration);
- if (from != null && from.equals(getLaunchConfiguration())) {
- setLaunchConfiguration(configuration);
- fireChanged();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- *
- * Update the launch configuration associated with this launch if the
- * underlying configuration is deleted.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
- if (configuration.equals(getLaunchConfiguration())) {
- if (getLaunchManager().getMovedTo(configuration) == null) {
- setLaunchConfiguration(null);
- fireChanged();
- }
- }
- }
-
- /* (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.getKind() == DebugEvent.TERMINATE) {
- Object object = event.getSource();
- ILaunch launch = null;
- if (object instanceof IProcess) {
- launch = ((IProcess)object).getLaunch();
- } else if (object instanceof IDebugTarget) {
- launch = ((IDebugTarget)object).getLaunch();
- }
- if (this.equals(launch)) {
- if (isTerminated()) {
- fireTerminate();
- }
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
deleted file mode 100644
index 83f983cef..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * Abstract implementation of a breakpoint. This class is
- * intended to be subclassed by implementations
- * of breakpoints.
- *
- * @see IBreakpoint
- * @since 2.0
- */
-
-public abstract class Breakpoint extends PlatformObject implements IBreakpoint {
-
- static {
- // making sure that the BreakpointManager is correctly initialized
- // before any breakpoint marker related operation (see bug 54993)
- DebugPlugin.getDefault().getBreakpointManager().getBreakpoints();
- }
-
- /**
- * Underlying marker.
- */
- private IMarker fMarker= null;
-
- /**
- * @see IBreakpoint#setMarker(IMarker)
- */
- public void setMarker(IMarker marker) throws CoreException {
- fMarker= marker;
- }
-
- /**
- * @see Object#equals(Object)
- */
- public boolean equals(Object item) {
- if (item instanceof IBreakpoint) {
- return getMarker().equals(((IBreakpoint)item).getMarker());
- }
- return false;
- }
-
- /**
- * @see Object#hashCode()
- */
- public int hashCode() {
- return getMarker().hashCode();
- }
-
- /**
- * @see IBreakpoint#setEnabled(boolean)
- */
- public void setEnabled(boolean enabled) throws CoreException {
- if (enabled != isEnabled()) {
- setAttribute(ENABLED, enabled);
- }
- }
-
- /**
- * @see IBreakpoint#isEnabled()
- */
- public boolean isEnabled() throws CoreException {
- return getMarker().getAttribute(ENABLED, false);
- }
-
- /**
- * @see IBreakpoint#isRegistered()
- */
- public boolean isRegistered() throws CoreException {
- IMarker marker= getMarker();
- return marker.exists() && marker.getAttribute(REGISTERED, true);
- }
-
- /**
- * @see IBreakpoint#setRegistered(boolean)
- */
- public void setRegistered(boolean registered) throws CoreException {
- if (isRegistered() != registered) {
- setAttribute(REGISTERED, registered);
- IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager();
- if (registered) {
- mgr.addBreakpoint(this);
- } else {
- mgr.removeBreakpoint(this, false);
- }
- }
- }
-
- /**
- * @see IBreakpoint#delete()
- */
- public void delete() throws CoreException {
- DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(this, false);
- getMarker().delete();
- }
-
- /**
- * @see IBreakpoint#getMarker()
- */
- public IMarker getMarker() {
- return fMarker;
- }
-
- /**
- * @see IBreakpoint#isPersisted()
- */
- public boolean isPersisted() throws CoreException {
- return getMarker().getAttribute(PERSISTED, true);
- }
-
- /**
- * @see IBreakpoint#setPersisted(boolean)
- */
- public void setPersisted(boolean persisted) throws CoreException {
- if (isPersisted() != persisted) {
- setAttributes(new String[] {PERSISTED, IMarker.TRANSIENT}, new Object[] {new Boolean(persisted), new Boolean(!persisted)});
- }
- }
-
- /**
- * @see IBreakpoint#getGroup()
- */
- public String getGroup() throws CoreException {
- return getMarker().getAttribute(GROUP, null);
- }
-
- /**
- * @see IBreakpoint#setGroup(String)
- */
- public void setGroup(String group) throws CoreException {
- if (group != null && group.length() == 0) {
- group= null;
- }
- setAttribute(GROUP, group);
- }
-
- /**
- * Convenience method to set the given boolean attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, boolean)
- */
- protected void setAttribute(final String attributeName, final boolean value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given integer attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, int)
- */
- protected void setAttribute(final String attributeName, final int value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, java.lang.Object)
- */
- protected void setAttribute(final String attributeName, final Object value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given attributes of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeNames attribute names
- * @param values attribute values
- * @exception CoreException is setting the attributes fails
- * @see IMarker#setAttributes(java.lang.String[], java.lang.Object[])
- */
- protected void setAttributes(final String[] attributeNames, final Object[] values) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttributes(attributeNames, values);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null);
- }
-
- /**
- * Convenience method to set the attributes of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributes attribute map
- * @exception CoreException is setting the attributes fails
- * @see IMarker#setAttributes(java.util.Map)
- */
- protected void setAttributes(final Map attributes) throws CoreException{
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttributes(attributes);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null);
- }
-
- /**
- * Returns the marker associated with this breakpoint.
- *
- * @return breakpoint marker
- * @exception DebugException if no marker is associated with
- * this breakpoint or the associated marker does not exist
- */
- protected IMarker ensureMarker() throws DebugException {
- IMarker m = getMarker();
- if (m == null || !m.exists()) {
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED,
- DebugCoreMessages.getString("Breakpoint.no_associated_marker"), null)); //$NON-NLS-1$
- }
- return m;
- }
-
- /**
- * Returns whether this breakpoint has an associated marker that exists.
- *
- * @return returns whether this breakpoint has an associated marker that exists
- * @since 2.1
- */
- protected boolean markerExists() {
- IMarker m = getMarker();
- return (m != null && m.exists());
- }
-
- /**
- * Returns a scheduling rule to use when modifying markers on the given resource,
- * possibly <code>null</code>.
- *
- * @param resource a resource on which a marker will be created, modified, or deleted
- * @return a scheduling rule to use when modifying markers on the given resource
- * possibly <code>null</code>
- * @since 3.1
- */
- protected ISchedulingRule getMarkerRule(IResource resource) {
- ISchedulingRule rule = null;
- if (resource != null) {
- IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
- rule = ruleFactory.markerRule(resource);
- }
- return rule;
- }
-
- /**
- * Returns a scheduling rule to use when modifying or deleting this breakpoint's marker,
- * possibly <code>null</code>. This method is only valid when this breakpoint's
- * marker has already been created. When creating a marker on a specific resource,
- * use <code>getMarkerRule(IResource)</code> instead.
- *
- * @return a scheduling rule to use when modifying or deleting this breakpoint's marker
- * @since 3.1
- */
- protected ISchedulingRule getMarkerRule() {
- ISchedulingRule rule = null;
- IMarker marker = getMarker();
- if (marker != null) {
- IResource resource = marker.getResource();
- if (resource != null) {
- IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
- rule = ruleFactory.markerRule(resource);
- }
- }
- return rule;
- }
-
- /**
- * Execute the given workspace runnable with the scheduling rule to use when running the operation.
- *
- * @param rule the rule to use when running the operation
- * @param wr the runnable operation
- * @throws DebugException If a core exception occurs performing the operation
- * @since 3.1
- */
- protected void run(ISchedulingRule rule, IWorkspaceRunnable wr) throws DebugException {
- try {
- ResourcesPlugin.getWorkspace().run(wr, rule, 0, null);
- } catch (CoreException e) {
- throw new DebugException(e.getStatus());
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
deleted file mode 100644
index 146182d39..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * A breakpoint is capable of suspending the execution of a
- * program at a specific location when a program is running
- * in debug mode. Each breakpoint has an associated marker which
- * stores and persists all attributes associated with a breakpoint.
- * <p>
- * A breakpoint is defined in two parts:
- * <ol>
- * <li>By an extension of kind <code>"org.eclipse.debug.core.breakpoints"</code></li>
- * <li>By a marker definition that corresponds to the above breakpoint extension</li>
- * </ol>
- * <p>
- * For example, following is a definition of corresponding breakpoint
- * and breakpoint marker definitions. Note that the <code>markerType</code>
- * attribute defined by the breakpoint extension corresponds to the
- * type of the marker definition.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.breakpoints"&gt;
- * &lt;breakpoint
- * id="com.example.Breakpoint"
- * class="com.example.Breakpoint"
- * markerType="com.example.BreakpointMarker"&gt;
- * &lt;/breakpoint&gt;
- * &lt;/extension&gt;
- * &lt;extension point="org.eclipse.core.resources.markers"&gt;
- * &lt;marker
- * id="com.example.BreakpointMarker"
- * super type="org.eclipse.debug.core.breakpointMarker"
- * attribute name ="exampleAttribute"&gt;
- * &lt;/marker&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * The breakpoint manager instantiates persisted breakpoints by
- * traversing all markers that are a subtype of
- * <code>"org.eclipse.debug.core.breakpointMarker"</code>, and
- * instantiating the class defined by the <code>class</code> attribute
- * on the associated breakpoint extension. The method <code>setMarker</code>
- * is then called to associate a marker with the breakpoint.
- * </p>
- * <p>
- * Breakpoints may or may not be registered with the breakpoint manager, and
- * are persisted and restored as such. Since marker definitions only allow
- * all or none of a specific marker type to be persisted, breakpoints define
- * a <code>PERSISTED</code> attribute for selective persistence of breakpoints
- * of the same type.
- * </p>
- *
- * @since 2.0
- */
-
-public interface IBreakpoint extends IAdaptable {
-
- /**
- * Root breakpoint marker type
- * (value <code>"org.eclipse.debug.core.breakpointMarker"</code>).
- */
- public static final String BREAKPOINT_MARKER = DebugPlugin.getUniqueIdentifier() + ".breakpointMarker"; //$NON-NLS-1$
-
- /**
- * Line breakpoint marker type
- * (value <code>"org.eclipse.debug.core.lineBreakpoint"</code>).
- */
- public static final String LINE_BREAKPOINT_MARKER = DebugPlugin.getUniqueIdentifier() + ".lineBreakpointMarker"; //$NON-NLS-1$
-
- /**
- * Enabled breakpoint marker attribute (value <code>"org.eclipse.debug.core.enabled"</code>).
- * The attribute is a <code>boolean</code> corresponding to the
- * enabled state of a breakpoint.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String ENABLED= "org.eclipse.debug.core.enabled"; //$NON-NLS-1$
-
- /**
- * Debug model identifier breakpoint marker attribute (value <code>"org.eclipse.debug.core.id"</code>).
- * The attribute is a <code>String</code> corresponding to the
- * identifier of the debug model a breakpoint is associated with.
- */
- public static final String ID= "org.eclipse.debug.core.id"; //$NON-NLS-1$
-
- /**
- * Registered breakpoint marker attribute (value <code>"org.eclipse.debug.core.registered"</code>).
- * The attribute is a <code>boolean</code> corresponding to
- * whether a breakpoint has been registered with the breakpoint manager.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String REGISTERED= "org.eclipse.debug.core.registered"; //$NON-NLS-1$
-
- /**
- * Persisted breakpoint marker attribute (value <code>"org.eclipse.debug.core.persisted"</code>).
- * The attribute is a <code>boolean</code> corresponding to
- * whether a breakpoint is to be persisted accross workspace
- * invocations.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$NON-NLS-1$
-
- /**
- * Breakpoint group marker attribute (value <code>"org.eclipse.debug.core.group"</code>).
- * The attribute is a <code>String</code> corresponding to the group
- * name.
- *
- * @since 3.1
- */
- public static final String GROUP= "org.eclipse.debug.core.group"; //$NON-NLS-1$
-
- /**
- * Deletes this breakpoint's underlying marker, and removes
- * this breakpoint from the breakpoint manager.
- *
- * @exception CoreException if unable to delete this breakpoint's
- * underlying marker
- */
- public void delete() throws CoreException;
-
- /**
- * Returns the marker associated with this breakpoint, or
- * <code>null</code> if no marker is associated with this breakpoint.
- *
- * @return associated marker, or <code>null</code> if there is
- * no associated marker.
- */
- public IMarker getMarker();
- /**
- * Sets the marker associated with this breakpoint. This method is
- * called once at breakpoint creation.
- *
- * @param marker the marker to associate with this breakpoint
- * @exception CoreException if an error occurs accessing the marker
- */
- public void setMarker(IMarker marker) throws CoreException;
- /**
- * Returns the identifier of the debug model this breakpoint is
- * associated with.
- *
- * @return the identifier of the debug model this breakpoint is
- * associated with
- */
- public String getModelIdentifier();
- /**
- * Returns whether this breakpoint is enabled
- *
- * @return whether this breakpoint is enabled
- * @exception CoreException if unable to access the associated
- * attribute from this breakpoint's underlying marker
- */
- public boolean isEnabled() throws CoreException;
- /**
- * Sets the enabled state of this breakpoint. This has no effect
- * if the current enabled state is the same as specified by the
- * enabled parameter.
- *
- * @param enabled whether this breakpoint should be enabled
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- */
- public void setEnabled(boolean enabled) throws CoreException;
-
- /**
- * Returns whether this breakpoint is currently registered with
- * the breakpoint manager.
- *
- * @return whether this breakpoint is currently registered with
- * the breakpoint manager
- * @exception CoreException if unable to access the associated
- * attribute on this breakpoint's underlying marker
- */
- public boolean isRegistered() throws CoreException;
-
- /**
- * Sets whether this breakpoint is currently registered with the
- * breakpoint manager.
- *
- * @param registered whether this breakpoint is registered with the
- * breakpoint manager
- * @exception CoreException if unable to set the associated attribute
- * on this breakpoint's underlying marker.
- */
- public void setRegistered(boolean registered) throws CoreException;
-
- /**
- * Returns whether this breakpoint is to be persisted across
- * workspace invocations, or when a project is closed and re-opened.
- * Since marker definitions only allow all/none of a specific type
- * of marker to be persisted (rather than selected markers of a
- * specific type), breakpoints define this functionality.
- *
- * @return whether this breakpoint is to be persisted
- * @exception CoreException if unable to access the associated attribute
- * on this breakpoint's underlying marker
- */
- public boolean isPersisted() throws CoreException;
-
- /**
- * Sets whether this breakpoint is to be persisted across
- * workspace invocations, or when a project is closed and re-opened.
- * Has no effect if this breakpoint's marker definition is defined as not
- * persisted. Sets the underlying <code>TRANSIENT</code> attribute on this
- * breakpoint's marker to <code>true</code>.
- *
- * @param registered whether this breakpoint is to be persisted across
- * workspace invocations
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- */
- public void setPersisted(boolean registered) throws CoreException;
-
- /**
- * Returns the name of the group this breakpoint belongs to
- * or <code>null</code> if none.
- *
- * @return the name of the group this breakpoint belongs to or
- * <code>null</code>.
- * @exception CoreException if unable to access the associated attribute
- * on this breakpoint's underlying marker
- * @since 3.1
- */
- public String getGroup() throws CoreException;
-
- /**
- * Sets this breakpoint's group to the group with the given name or
- * <code>null</code> to set the group to none.
- *
- * @param groupName the name of the group to which this breakpoint belongs
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- * @since 3.1
- */
- public void setGroup(String groupName) throws CoreException;
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
deleted file mode 100644
index de85d117e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.ILaunch;
-
-/**
- * A debug element represents an artifact in a program being
- * debugged.
- * <p>
- * Some methods on debug elements require communication
- * with the target program. Such methods may throw a <code>DebugException</code>
- * with a status code of <code>TARGET_REQUEST_FAILED</code>
- * when unable to complete a request due to a failure on the target.
- * Methods that require communication with the target program or require
- * the target to be in a specific state (for example, suspended), are declared
- * as such.
- * </p>
- * <p>
- * Debug elements are language independent. However, language specific
- * features can be made available via the adapter mechanism provided by
- * <code>IAdaptable</code>, or by extending the debug element interfaces.
- * A debug model is responsible for declaring any special adapters
- * its debug elements implement.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface IDebugElement extends IAdaptable {
-
- /**
- * Returns the unique identifier of the plug-in
- * this debug element originated from.
- *
- * @return the plug-in identifier
- */
- public String getModelIdentifier();
- /**
- * Returns the debug target this element is contained in.
- *
- * @return the debug target this element is contained in
- */
- public IDebugTarget getDebugTarget();
- /**
- * Returns the launch this element is contained in.
- *
- * @return the launch this element is contained in
- */
- public ILaunch getLaunch();
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java
deleted file mode 100644
index d3291a830..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A debug model provider provides debug model identifiers.
- * This interface is used as an adapter to determine what
- * debug models are associated with an adaptable object.
- * Generally, when debugging one language, only one debug
- * model is associated with a debug element. However,
- * a debug model that provides cross language debugging
- * may represent several debug models.
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IDebugModelProvider {
-
- /**
- * Returns a collection of debug model identifiers.
- *
- * @return a collection of debug model identifiers
- */
- public String[] getModelIdentifiers();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
deleted file mode 100644
index d1e8db15f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.IBreakpointListener;
-
-/**
- * A debug target is a debuggable execution context. For example, a debug target
- * may represent a debuggable process or a virtual machine. A debug target is the root
- * of the debug element hierarchy. A debug target contains threads. Minimally, a debug
- * target supports the following:
- * <ul>
- * <li>terminate
- * <li>suspend/resume
- * <li>breakpoints
- * <li>disconnect
- * </ul>
- * <p>
- * Generally, launching a debug session results in the creation of a
- * debug target. Launching is a client responsibility, as is debug target
- * creation.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ITerminate
- * @see ISuspendResume
- * @see IBreakpointListener
- * @see IDisconnect
- * @see IMemoryBlockRetrieval
- * @see org.eclipse.debug.core.ILaunch
- */
-public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, IBreakpointListener, IDisconnect, IMemoryBlockRetrieval {
- /**
- * Returns the system process associated with this debug target.
- *
- * @return the system process associated with this debug target
- */
- public IProcess getProcess();
- /**
- * Returns the threads contained in this debug target. An
- * empty collection is returned if this debug target contains
- * no threads.
- *
- * @return a collection of threads
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- * @since 2.0
- */
- public IThread[] getThreads() throws DebugException;
-
- /**
- * Returns whether this debug target currently contains any threads.
- *
- * @return whether this debug target currently contains any threads
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- * @since 2.0
- */
- public boolean hasThreads() throws DebugException;
-
- /**
- * Returns the name of this debug target. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this target's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns whether this target can install the given breakpoint.
- *
- * @return whether this target can install the given breakpoint
- */
- public boolean supportsBreakpoint(IBreakpoint breakpoint);
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
deleted file mode 100644
index f4eaf1adc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * The ability to end a debug session with a target program
- * and allow the target to continue running.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IDebugTarget
- */
-public interface IDisconnect {
- /**
- * Returns whether this element can currently disconnect.
- *
- * @return whether this element can currently disconnect
- */
- public boolean canDisconnect();
- /**
- * Disconnects this element from its target. Generally, disconnecting
- * ends a debug session with a debug target, but allows the target
- * program to continue running.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void disconnect() throws DebugException;
- /**
- * Returns whether this element is disconnected.
- *
- * @return whether this element is disconnected
- */
- public boolean isDisconnected();
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java
deleted file mode 100644
index 108588c01..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * An expression that can report errors which occurred during the
- * expression's evaluation.
- *
- * @since 3.0
- */
-public interface IErrorReportingExpression extends IExpression {
- /**
- * Returns whether this expression has errors to report. An expression
- * can have errors if errors were generated the last time its value was
- * computed
- *
- * @return whether this expression's result has errors
- */
- public boolean hasErrors();
- /**
- * Returns this expression's error messages, if any. An expression can
- * have errors if errors were generated the last time its value was
- * computed.
- *
- * @return this expression's error messages
- */
- public String[] getErrorMessages();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
deleted file mode 100644
index 7f2acbf38..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * An expression is a snippet of code that can be evaluated
- * to produce a value. When and how an expression is evaluated
- * is implementation specific. The context/binding required to
- * evaluate an expression varies by debug model, and by
- * user intent. Furthermore, an expression may need to be evaluated
- * at a specific location in a program (for example, at a
- * breakpoint/line where certain variables referenced in the
- * expression are visible/allocated). A user may want to
- * evaluate an expression once to produce a value that can
- * be inspected iteratively, or they may wish to evaluate an
- * expression iteratively producing new values each time
- * (i.e. as in a watch list).
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @since 2.0
- */
-public interface IExpression extends IDebugElement {
-
- /**
- * Returns this expression's snippet of code.
- *
- * @return the expression
- */
- public abstract String getExpressionText();
-
- /**
- * Returns the current value of this expression or
- * <code>null</code> if this expression does not
- * currently have a value.
- *
- * @return value or <code>null</code>
- */
- public abstract IValue getValue();
-
- /**
- * Returns the debug target this expression is associated
- * with, or <code>null</code> if this expression is not
- * associated with a debug target.
- *
- * @return debug target or <code>null</code>
- * @see IDebugElement#getDebugTarget()
- */
- public abstract IDebugTarget getDebugTarget();
-
- /**
- * Notifies this expression that it has been removed
- * from the expression manager. Any required clean up
- * is be performed such that this expression can be
- * garbage collected.
- */
- public abstract void dispose();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java
deleted file mode 100644
index 3c4c2faa5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to perform a filtered step. Implementations must be non-
- * blocking. Filter implementation is debug model specific and may not be
- * supported by all debug models.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 2.1
- * @deprecated clients should implement <code>IStepFilters</code> instead
- */
-public interface IFilteredStep extends IStep {
- /**
- * Returns whether this element can currently perform a filtered step into.
- *
- * @return whether this element can currently perform a filtered step into
- */
- public boolean canStepWithFilters();
- /**
- * Steps into the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread, applying step
- * filters, as applicable for the associated thread. Can only be called when
- * the associated thread is suspended. Implementations must implement
- * stepping as non- blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepWithFilters() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java
deleted file mode 100644
index 3999f6370..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-
-/**
- * A stream monitor who's contents can be flushed. As well, a client may
- * turn buffering on/off in a flushable stream monitor.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 2.1
- */
-public interface IFlushableStreamMonitor extends IStreamMonitor {
-
- /**
- * Empties the contents of this stream monitor's underlying buffer.
- */
- public void flushContents();
-
- /**
- * Sets whether the contents of this monitor's underlying stream should be
- * buffered. When <code>false</code>, contents appended to this stream monitor
- * are not stored in a buffer, and are thus not available from
- * <code>getContents()</code>. Registered listeners are notified of appended
- * text, and must buffer the contents if desired.
- *
- * @param buffer whether the contents of this monitor's underlying stream
- * should be buffered
- */
- public void setBuffered(boolean buffer);
-
- /**
- * Returns whether the contents of this monitor's underlying stream is
- * buffered.
- *
- * @return whether the contents of this monitor's underlying stream is
- * buffered
- */
- public boolean isBuffered();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java
deleted file mode 100644
index 54f920626..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A value containing an indexed collection of variables - for example,
- * an array.
- * <p>
- * The indexed collection value has been added to the debug model to support
- * automatic partitioning of large arrays in the debug UI. Clients are not required
- * to implement this interface for values representing indexed collections,
- * however, doing so will provide enhanced display options in the debug UI.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IIndexedValue extends IValue {
-
- /**
- * Returns the variable at the given offset in this collection.
- * The offset is zero based.
- * @param offset zero based offset into this collection
- * @return returns the variable in this collection at the given
- * offset
- * @throws DebugException if unable to retrieve the variable at the
- * given offset
- */
- public IVariable getVariable(int offset) throws DebugException;
-
- /**
- * Returns a subset of the elements in this collection of variables as
- * specified by the given offset and length.
- *
- * @param offset beginning offset of the subset of elements to return
- * @param length the number of elements to return
- * @return a subset of the elements in this collection of variables as
- * specified by the given offset and length
- * @throws DebugException if unable to retrieve the variables
- */
- public IVariable[] getVariables(int offset, int length) throws DebugException;
-
- /**
- * Returns the number of entries in this indexed collection.
- *
- * @return the number of entries in this indexed collection
- * @throws DebugException if unable to determine the number
- * of entries in this collection
- */
- public int getSize() throws DebugException;
-
- /**
- * Returns the index of the first variable contained in this value.
- * Generally, indexed values are zero based, but this allows for
- * an arbitrary base offset.
- *
- * @return the index of the first variable contained in this value
- */
- public int getInitialOffset();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
deleted file mode 100644
index 70755652f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A launch configuration delegate performs launching for a
- * specific type of launch configuration. A launch configuration
- * delegate is defined by the <code>delegate</code> attribute
- * of a <code>launchConfigurationType</code> extension.
- * <p>
- * This interface is intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.ILaunchConfigurationType
- * @see ILaunchConfiguration
- * @since 2.0
- */
-public interface ILaunchConfigurationDelegate {
-
- /**
- * Launches the given configuration in the specified mode, contributing
- * debug targets and/or processes to the given launch object. The
- * launch object has already been registered with the launch manager.
- *
- * @param configuration the configuration to launch
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> -
- * <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>
- * @param launch the launch object to contribute processes and debug
- * targets to
- * @exception CoreException if launching fails
- */
- public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java
deleted file mode 100644
index 3491a40ab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * Optional enhancements to the launch configuration delegate interface.
- * Allows launch delegates to abort a launch, build relevant projects in
- * the workspace before a launch, and create the launch object to be used
- * in a launch.
- * <p>
- * Clients implementing <code>ILaunchConfigurationDelegate</code> may also
- * implement this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchConfigurationDelegate2 extends ILaunchConfigurationDelegate {
-
- /**
- * Returns a launch object to use when launching the given launch
- * configuration in the given mode, or <code>null</code> if a new default
- * launch object should be created by the debug platform. If a launch object
- * is returned, its launch mode must match that of the mode specified in
- * this method call.
- *
- * @param configuration the configuration being launched
- * @param mode the mode the configuration is being launched in
- * @return a launch object or <code>null</code>
- * @throws CoreException if unable to launch
- */
- public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) throws CoreException;
-
- /**
- * Optionally performs any required building before launching the given
- * configuration in the specified mode, and returns whether the debug platform
- * should perform an incremental workspace build before the launch continues.
- * If <code>false</code> is returned the launch will proceed without further
- * building, and if <code>true</code> is returned an incremental build will
- * be performed on the workspace before launching.
- * <p>
- * This method is only called if the launch is invoked with flag indicating
- * building should take place before the launch. This is done via the
- * method
- * <code>ILaunchConfiguration.launch(String mode, IProgressMonitor monitor, boolean build)</code>.
- * </p>
- * @param configuration the configuration being launched
- * @param mode the mode the configuration is being launched in
- * @param monitor progress monitor
- * @return whether the debug platform should perform an incremental workspace
- * build before the launch
- * @throws CoreException if an exception occurrs while building
- */
- public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether a launch should proceed. This method is called after
- * <code>preLaunchCheck()</code> and <code>buildForLaunch()</code> providing
- * a final chance for this launch delegate to abort a launch if required.
- * For example, a delegate could cancel a launch if it discovered compilation
- * errors that would prevent the launch from succeeding.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @param monitor progress monitor
- * @return whether the launch should proceed
- * @throws CoreException if an exception occurs during final checks
- */
- public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether a launch should proceed. This method is called first
- * in the launch sequence providing an opportunity for this launch delegate
- * to abort the launch.
- *
- * @param configuration configuration being lanuched
- * @param mode launch mode
- * @param monitor progress monitor
- * @return whether the launch should proceed
- * @throws CoreException if an exception occurs while performing pre launch checks
- */
- public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
deleted file mode 100644
index 0f5369227..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A breakpoint that can be located at a specific line of source code.
- */
-public interface ILineBreakpoint extends IBreakpoint {
-
-/**
- * Returns the line number in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not
- * present.
- *
- * @return this breakpoint's line number, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.LINE_NUMBER</code> marker attribute
- */
-public int getLineNumber() throws CoreException;
-/**
- * Returns starting source index in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not present.
- *
- * @return this breakpoint's char start value, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.CHAR_START</code> marker attribute
- */
-public int getCharStart() throws CoreException;
-/**
- * Returns ending source index in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not present.
- *
- * @return this breakpoint's char end value, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.CHAR_END</code> marker attribute
- */
-public int getCharEnd() throws CoreException;
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java
deleted file mode 100644
index a3b7b1cbd..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A delegate that provides a value represengting the logical structure of a raw
- * implementation value from a debug model. Associated with a logical structure
- * type extension.
- * <p>
- * Clients contributing logical structure types should implement this
- * interface.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureTypeDelegate {
-
- /**
- * Returns whether this structure type can provide a logical structure for
- * the given value.
- *
- * @param value value for which a logial structure is being requested
- * @return whether this structure type can provide a logical structure for
- * the given value
- */
- public boolean providesLogicalStructure(IValue value);
-
- /**
- * Returns a value representing a logical structure of the given value.
- *
- * @param value value for which a logical structure is being requested
- * @return value representing logical structure
- * @throws CoreException if an exception occurrs generating a logical
- * structure
- */
- public IValue getLogicalStructure(IValue value) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java
deleted file mode 100644
index b3de90aab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * Optional extension to <code>ILogicalStructureTypeDelegate</code> that allows
- * a logical structure type delegate to provide a description for a value.
- * This allows a logical structure type to provide logical structures and
- * descriptions for more than one type of value.
- * <p>
- * If a logical structure type delegate implements this interface, it will
- * be consulted for a description rather than using the description attribute
- * provided in plub-in XML.
- * </p>
- * <p>
- * Clients contributing logical structure types can implement this
- * interface.
- * </p>
- * @since 3.1
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureTypeDelegate2 {
-
- /**
- * Returns a simple description of the logical structure provided by this
- * structure type delegate, for the given value.
- * Cannot return <code>null</code>. This method is only called if this
- * logical strucure type delegate returns <code>true</code> for
- * <code>providesLogicalStructure(IValue)</code>.
- *
- * @return a simple description of the logical structure provided by this
- * structure type delegate, for the given value
- */
- public String getDescription(IValue value);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
deleted file mode 100644
index 54d248cfb..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A contiguous segment of memory in an execution context.
- * A memory block is represented by a starting memory address
- * and a length. Not all debug architectures support the retrieval
- * of memory blocks.
- *
- * @see IMemoryBlockRetrieval
- * @since 2.0
- */
-public interface IMemoryBlock extends IDebugElement {
-
- /**
- * Returns the start address of this memory block.
- *
- * @return the start address of this memory block
- */
- public long getStartAddress();
-
- /**
- * Returns the length of this memory block in bytes.
- *
- * @return the length of this memory block in bytes
- */
- public long getLength();
-
- /**
- * Returns the values of the bytes currently contained
- * in this this memory block.
- *
- * @return the values of the bytes currently contained
- * in this this memory block
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public byte[] getBytes() throws DebugException;
-
- /**
- * Returns whether this memory block supports value modification
- *
- * @return whether this memory block supports value modification
- */
- public boolean supportsValueModification();
-
- /**
- * Sets the value of the bytes in this memory block at the specified
- * offset within this memory block to the spcified bytes.
- * The offset is zero based.
- *
- * @param offset the offset at which to set the new values
- * @param bytes the new values
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * <li>This memory block does not support value modification</li>
- * <li>The specified offset is greater than or equal to the length
- * of this memory block, or the number of bytes specified goes
- * beyond the end of this memory block (index of out of range)</li>
- * </ul>
- */
- public void setValue(long offset, byte[] bytes) throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java
deleted file mode 100644
index 0ec8c27a0..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.math.BigInteger;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Represents a memory block.
- *
- * When the memory block is changed, fire a CHANGE Debug Event.
- *
- * When firing change event, be aware of the following:
- * - whenever a change event is fired, the content provider for Memory View / Memory Rendering
- * view checks to see if memory has actually changed.
- * - If memory has actually changed, a refresh will commence. Changes to the memory block
- * will be computed and will be shown with the delta icons.
- * - If memory has not changed, content will not be refreshed. However, previous delta information
- * will be erased. The screen will be refreshed to show that no memory has been changed. (All
- * delta icons will be removed.)
- *
- * Please note that these APIs will be called multiple times by the Memory View.
- * To improve performance, debug adapters need to cache the content of its memory block and only
- * retrieve updated data when necessary.
- * @since 3.1
- */
-public interface IMemoryBlockExtension extends IMemoryBlock {
-
- /**
- * Returns the expression of this memory block.
- * The expression will be used to construct the tab label of the memory view.
- *
- * @return expression of the memory block.
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the engine. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getExpression() throws DebugException;
-
- /**
- * Get the base address of this memory block in BigInteger
- * @return the base address of this memory block
- */
- public BigInteger getBigBaseAddress();
-
- /**
- * @return address size in number of bytes
- */
- public int getAddressSize();
-
-
- /**
- * Indicate if the base address of this memory block block could be modified
- * If return true, setBaseAddress will be used to change the base address
- * of this memory block.
- * * @return if the memory block supports base address modification
- */
- public boolean supportBaseAddressModification();
-
- /**
- * @return true to indicate that the memory block manages the changes in the
- * memory block. If the memory block manages changes, the memory block is
- * expected to cache the MemoryByte array returned by getBytesFromOffset and
- * getBytesFromAddress. The change information will not be calculated by
- * the memory view. Intead, the memory block keeps track of the bytes
- * and marks the bytes as changed/unchanged. Turn off both the CHANGE and UNCHANGED
- * bits if the memory block does not contain history for the address.
- *
- * If this function returns false, the Memory View will calculate
- * delta information for each byte based on its history.
- */
- public boolean supportsChangeManagement();
-
- /**
- * Set the base address of this memory block
- * @param address
- * @throws DebugException if the method fails. Reasons inlucde:
- * <ul><li>Failure communicating with the engine. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public void setBaseAddress(BigInteger address) throws DebugException;
-
-
- /**
- * Get bytes based on offset and length. Memory at base address + offset
- * should be returned.
- * Return an array of IMemory. Each IMemory object represents a section of the
- * memory block. The IMemory object allows debug adapters to provide more information
- * about a section of memory. Refer to IMemory for details.
- *
- * @param offset
- * @param length is the number of units of memory to return
- * @return an array of bytes from the memory block based on the given offset and length
- * The size of the array returned needs to be equal to
- * length * IMemoryBlockExtensionRetrieval.getAddressibleSize()
- * @throws DebugException if the method fails.
- */
- public MemoryByte[] getBytesFromOffset(long offset, long length) throws DebugException;
-
-
- /**
- * Get bytes based on a given address.
- *
- * Return an array of IMemory. Each IMemory object represents a section of the
- * memory block. The IMemory object allows debug adapters to provide more information
- * about a section of memory. Refer to IMemory for details.
- *
- * @param address
- * @param length is the number of units of memory to return
- * @return an array of bytes from the memory block based on the given offset and length
- * The size of the array returned needs to be equal to
- * length * IMemoryBlockExtensionRetrieval.getAddressibleSize()
- * @throws DebugException if method fails
- */
- public MemoryByte[] getBytesFromAddress(BigInteger address, long length) throws DebugException;
-
- /**
- * @return true if the platform is big endian, false otherwise
- */
- public boolean isBigEndian();
-
-
- /**
- * Connect a view to the memory block. Called by UI when a view that displays
- * the memory block is visible.
- * @param object
- */
- public void connect(Object object);
-
-
- /**
- * Disconnect a view from the memory block. Called by UI when a view
- * that displays the memory block is hidden.
- * @param object
- */
- public void disconnect(Object object);
-
- /**
- * @return objects that are currently connected to the memory block.
- * Return an empty array if nothing is connected
- */
- public Object[] getConnected();
-
-
- /**
- * Dispose this memory block.
- */
- public void dispose();
-
- /**
- * @return the IMemoryBlockRetrieval responsible for creating this memory block
- */
- public IMemoryBlockRetrieval getMemoryBlockRetrieval();
-
- /**
- * @return addssible size in number of bytes
- */
- int getAddressibleSize();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java
deleted file mode 100644
index 9abc2b3bf..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-
-/**
- * Extended capabilites for memory block retrieval.
- * @since 3.1
- */
-public interface IMemoryBlockExtensionRetrieval extends IMemoryBlockRetrieval {
-
- /**
- * Retrieves a memory block.
- *
- * @param expression - expression to be evalutated to an address, evaluation context can be retrieved
- * from the selected debug element
- * @param selected - selected debug element from Debug View
- * @return a memory block based on the given expression and selected debug element
- * @throws DebugException
- */
-
- public IMemoryBlockExtension getExtendedMemoryBlock(String expression, IDebugElement selected) throws DebugException;
-
- /**
- * @return the string to be used in place of this memory content when bytes
- * are not available.
- * Return null if the byte is available.
- */
- public String getPaddedString();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
deleted file mode 100644
index 3efcb1aa5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Supports the retrieval of arbitrary blocks of memory.
- *
- * @see IMemoryBlock
- * @since 2.0
- */
-public interface IMemoryBlockRetrieval {
-
- /**
- * Returns whether this debug target supports the retrieval
- * of memory blocks.
- *
- * @return whether this debug target supports the retrieval
- * of memory blocks
- */
- public boolean supportsStorageRetrieval();
-
- /**
- * Returns a memory block that starts at the specified
- * memory address, with the specified length.
- *
- * @param startAddress starting address
- * @param length length of the memory block in bytes
- * @return a memory block that starts at the specified
- * memory address, with the specified length
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * <li>This debug target does not support memory block retrieval</li>
- * <li>The specified address and length are not within valid
- * ranges</li>
- * </ul>
- */
- public IMemoryBlock getMemoryBlock(long startAddress, long length) throws DebugException;
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
deleted file mode 100644
index 83f651d0e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source locator that can be persisted and restored,
- * to be used with a specfic launch configuration.
- * The debug plug-in defines a source locator extension
- * point for persistable source locators.
- * <p>
- * A source locator extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a source locator extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.sourceLocators"&gt;
- * &lt;sourceLocator
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleSourceLocator"
- * name="Example Source Locator"&gt;
- * &lt;/sourceLocator&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this source locator.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- * that implements <code>IPersistableSourceLocator</code>.</li>
- * <li><code>name</code> a human readable name, describing the type of
- * this source locator.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see IStackFrame
- * @see org.eclipse.debug.ui.IDebugModelPresentation
- * @since 2.0
- */
-public interface IPersistableSourceLocator extends ISourceLocator {
-
- /**
- * Returns a memento that can be used to reconstruct
- * this source locator
- *
- * @return a memento that can be used to reconstruct
- * this source locator
- * @exception CoreException if unable to construct a memento
- */
- public String getMemento() throws CoreException;
-
- /**
- * Initializes this source locator based on the given
- * memento.
- *
- * @param memento a memento to initialize this source locator
- * @exception CoreException on failure to initialize
- */
- public void initializeFromMemento(String memento) throws CoreException;
-
- /**
- * Initializes this source locator to perform default
- * source lookup for the given launch configuration.
- *
- * @param configuration launch configuration this source locator
- * will be performing souce lookup for
- * @exception CoreException on failure to initialize
- */
- public void initializeDefaults(ILaunchConfiguration configuration) throws CoreException;
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
deleted file mode 100644
index 383847b7f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-
-/**
- * A process represents a program running in normal (non-debug) mode.
- * Processes support setting and getting of client defined attributes.
- * This way, clients can annotate a process with any extra information
- * important to them. For example, classpath annotations, or command
- * line arguments used to launch the process may be important to a client.
- * <p>
- * Clients may implement this interface, however, the debug plug-in
- * provides an implementation of this interface for a
- * <code>java.lang.Process</code>.
- * </p>
- * @see org.eclipse.debug.core.DebugPlugin#newProcess(ILaunch, Process, String)
- */
-public interface IProcess extends IAdaptable, ITerminate {
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute is the command line a process was launched with.
- *
- * @since 2.1
- */
- public final static String ATTR_CMDLINE= DebugPlugin.getUniqueIdentifier() + ".ATTR_CMDLINE"; //$NON-NLS-1$
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute is an identifier for the type of this process. Process types
- * are client defined - whoever creates a process may define its type. For
- * example, a process type could be "java", "javadoc", or "ant".
- *
- * @since 2.1
- */
- public final static String ATTR_PROCESS_TYPE = DebugPlugin.getUniqueIdentifier() + ".ATTR_PROCESS_TYPE"; //$NON-NLS-1$
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute specifies an alternate dynamic label for a process, displayed by
- * the console.
- *
- * @since 3.0
- */
- public final static String ATTR_PROCESS_LABEL = DebugPlugin.getUniqueIdentifier() + ".ATTR_PROCESS_LABEL"; //$NON-NLS-1$
-
- /**
- * Returns a human-readable label for this process.
- *
- * @return a label for this process
- */
- public String getLabel();
- /**
- * Returns the launch this element originated from.
- *
- * @return the launch this process is contained in
- */
- public ILaunch getLaunch();
- /**
- * Returns a proxy to the standard input, output, and error streams
- * for this process, or <code>null</code> if not supported.
- *
- * @return a streams proxy, or <code>null</code> if not supported
- */
- public IStreamsProxy getStreamsProxy();
-
- /**
- * Sets the value of a client defined attribute.
- *
- * @param key the attribute key
- * @param value the attribute value
- */
- public void setAttribute(String key, String value);
-
- /**
- * Returns the value of a client defined attribute.
- *
- * @param key the attribute key
- * @return value the String attribute value, or <code>null</code> if undefined
- */
- public String getAttribute(String key);
-
- /**
- * Returns the exit value of this process. Conventionally, 0 indicates
- * normal termination.
- *
- * @return the exit value of this process
- * @exception DebugException if this process has not yet terminated
- */
- public int getExitValue() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
deleted file mode 100644
index 6a2161be4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A register is a special kind of variable that is contained
- * in a register group. Each register has a name and a value.
- * Not all debug architectures provide access to registers.
- *
- * @since 2.0
- */
-public interface IRegister extends IVariable {
-
- /**
- * Returns the register group this register is contained in.
- *
- * @return the register group this register is contained in
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IRegisterGroup getRegisterGroup() throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
deleted file mode 100644
index 8c54c03e9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A register group is a group of registers that are
- * assigned to a stack frame. Some debug architectures
- * provide access to registers, and registers are often
- * grouped logically. For example, a floating point
- * register group.
- *
- * @since 2.0
- */
-public interface IRegisterGroup extends IDebugElement {
-
-
- /**
- * Returns the name of this register group.
- *
- * @return this register group's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the registers in this register group.
- *
- * @return the registers in this register group
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IRegister[] getRegisters() throws DebugException;
-
- /**
- * Returns whether this register group currently contains any registers.
- *
- * @return whether this register group currently contains any registers
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public boolean hasRegisters() throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
deleted file mode 100644
index 64de70582..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.model.IStackFrame;
-
-/**
- * A source locator locates source elements for stack frames. A launch (optionally)
- * specifies a source locator which is
- * used to locate source for that debug session. If a launch does not
- * provide a source locator, source cannot be displayed.
- * Abstraction of source lookup allows clients to hide implementation
- * details of source location and representation.
- * <p>
- * Generally, an implementor of a debug model will also implement launch configuration types,
- * delegates, and source locators that work together as a whole. That is, the implementation
- * of a source locator will have knowledge of how to locate a source element
- * for a stack frame. For example, a Java stack frame could define API which
- * specifies a source file name. A Java source locator would use this information
- * to locate the associated file in the workspace.
- * </p>
- * <p>
- * Source is displayed by the debug UI plug-in. The debug UI uses a source locator
- * to resolve an object representing the source for a stack frame, and then uses
- * a debug model presentation to determine the editor and editor input to use to
- * display the actual source in an editor.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.model.IStackFrame
- * @see org.eclipse.debug.ui.IDebugModelPresentation
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
-public interface ISourceLocator {
-
- /**
- * Returns a source element that corresponds to the given stack frame, or
- * <code>null</code> if a source element could not be located. The object returned
- * by this method will be used by the debug UI plug-in to display source.
- * The debug UI uses the debug model presentation associated
- * with the given stack frame's debug model to translate a source object into an
- * {editor input, editor id} pair in which to display source.
- * <p>
- * For example, a java source locator could return an object representing a
- * compilation unit or class file. The java debug model presentation would
- * then be responsible for providing an editor input and editor id for each
- * compilation unit and class file such that the debug UI could display source.
- * </p>
- *
- * @param stackFrame the stack frame for which to locate source
- * @return an object representing a source element.
- */
- public Object getSourceElement(IStackFrame stackFrame);
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
deleted file mode 100644
index 430c58db3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A stack frame represents an execution context in a suspended thread.
- * A stack frame contains variables representing visible locals and arguments at
- * the current execution location. Minimally, a stack frame supports
- * the following:
- * <ul>
- * <li>suspend/resume (convenience to resume this stack frame's thread)
- * <li>stepping
- * <li>termination (convenience to terminate this stack frame's thread or debug target)
- * </ul>
- * <p>
- * A debug model implementation may choose to re-use or discard
- * stack frames on iterative thread suspensions. Clients
- * cannot assume that stack frames are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * A debug model implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if stack frames are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IStep
- * @see ISuspendResume
- * @see ITerminate
- */
-public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerminate {
- /**
- * Returns the thread this stack frame is contained in.
- *
- * @return thread
- * @since 2.0
- */
- public IThread getThread();
- /**
- * Returns the visible variables in this stack frame. An empty
- * collection is returned if there are no visible variables.
- *
- * @return collection of visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IVariable[] getVariables() throws DebugException;
-
- /**
- * Returns whether this stack frame currently contains any visible variables.
- *
- * @return whether this stack frame currently contains any visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasVariables() throws DebugException;
-
- /**
- * Returns the line number of the instruction pointer in
- * this stack frame that corresponds to a line in an associated source
- * element, or <code>-1</code> if line number information
- * is unavailable.
- *
- * @return line number of instruction pointer in this stack frame, or
- * <code>-1</code> if line number information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public int getLineNumber() throws DebugException;
-
- /**
- * Returns the index of the first character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable.
- * <p>
- * If a debug model supports expression level stepping, the start/end
- * character ranges are used to highlight the expression within a line
- * that is being executed.
- * </p>
- * @return index of the first character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public int getCharStart() throws DebugException;
-
- /**
- * Returns the index of the last character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable.
- * <p>
- * If a debug model supports expression level stepping, the start/end
- * character ranges are used to highlight the expression within a line
- * that is being executed.
- * </p>
- * @return index of the last character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public int getCharEnd() throws DebugException;
-
- /**
- * Returns the name of this stack frame. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this frame's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the register groups assigned to this stack frame,
- * or an empty collection if no register groups are assigned
- * to this stack frame.
- *
- * @return the register groups assigned to this stack frame
- * or an empty collection if no register groups are assigned
- * to this stack frame
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IRegisterGroup[] getRegisterGroups() throws DebugException;
-
- /**
- * Returns whether this stack frame contains any register groups.
- *
- * @return whether this stack frame contains any visible register groups
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasRegisterGroups() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
deleted file mode 100644
index aef7935f3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to step into, over, and return
- * from the current execution location. Implementations
- * must be non-blocking.
- * <p>
- * Implementations should honor step filter settings in their
- * associated debug target, as defined by <code>IStepFilters</code>.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStepFilters
- */
-public interface IStep {
- /**
- * Returns whether this element can currently perform a step into.
- *
- * @return whether this element can currently perform a step into
- */
- public boolean canStepInto();
- /**
- * Returns whether this element can currently perform a step over.
- *
- * @return whether this element can currently perform a step over
- */
- public boolean canStepOver();
- /**
- * Returns whether this element can currently perform a step return.
- *
- * @return whether this element can currently perform a step return
- */
- public boolean canStepReturn();
- /**
- * Returns whether this element is currently stepping.
- * <p>
- * For example, a thread is considered to be stepping
- * after the <code>stepOver</code> call until the step over is completed,
- * a breakpoint is reached, an exception is thrown, or the thread or debug target is
- * terminated.
- * </p>
- *
- * @return whether this element is currently stepping
- */
- public boolean isStepping();
- /**
- * Steps into the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread. Can only be called
- * when the associated thread is suspended. Implementations must implement
- * stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepInto() throws DebugException;
- /**
- * Steps over the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread. Can only be called
- * when the associated thread is suspended. Implementations must implement
- * stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepOver() throws DebugException;
- /**
- * Steps to the next return statement in the current scope,
- * generating <code>RESUME</code> and <code>SUSPEND</code> events for
- * the associated thread. Can only be called when the associated thread is suspended.
- * Implementations must implement stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepReturn() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java
deleted file mode 100644
index 204ccec20..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * Support for step filters for a debug target. A debug target
- * that supports step filters should implement this interface.
- * Step filters can be toggled on/off for a debug target via
- * this interface. When a step method is called (see
- * <code>IStep</code>), the step implementation must respect
- * the state of the step filters as defined by this interface.
- * This allows step filters to be toggled on/off for
- * all stepping operations (in, over, return).
- * <p>
- * Step filter management is debug model specific - this interface
- * is used only to turn them on/off.
- * </p>
- * <p>
- * In 2.1, the <code>IFilteredStep</code> interface was used
- * to implement step filtering. The <code>IFilteredStep</code>
- * interface is now deprecated, and this inteface should be used
- * in its place to allow filters to be applied to any step
- * function.
- * </p>
- * <p>
- * Clients may implement this interface. Debug targets that support
- * step filters should implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStep
- * @since 3.0
- */
-public interface IStepFilters {
-
- /**
- * Returns whether this debug target supports step filters.
- *
- * @return whether this debug target supports step filters
- */
- public boolean supportsStepFilters();
-
- /**
- * Returns whether step filters are currently enabled in this
- * debug target.
- *
- * @return whether step filters are currently enabled in this
- * debug target
- */
- public boolean isStepFiltersEnabled();
-
- /**
- * Sets whether step filters are enabled in this debug target.
- *
- * @param enabled whether step filters are enabled in this debug target
- */
- public void setStepFiltersEnabled(boolean enabled);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
deleted file mode 100644
index 5051a80a8..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.IStreamListener;
-
-/**
- * A stream monitor manages the contents of the stream a process
- * is writing to, and notifies registered listeners of changes in
- * the stream.
- * <p>
- * Clients may implement this interface. Generally, a client that
- * provides an implementation of the <code>IStreamsProxy</code>
- * interface must also provide an implementation of this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStreamsProxy
- * @see org.eclipse.debug.core.model.IFlushableStreamMonitor
- */
-public interface IStreamMonitor {
- /**
- * Adds the given listener to this stream monitor's registered listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addListener(IStreamListener listener);
- /**
- * Returns the entire current contents of the stream. An empty
- * String is returned if the stream is empty.
- *
- * @return the stream contents as a <code>String</code>
- */
- public String getContents();
- /**
- * Removes the given listener from this stream monitor's registered listeners.
- * Has no effect if the listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeListener(IStreamListener listener);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
deleted file mode 100644
index b2f53f784..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.io.IOException;
-
-/**
- * A streams proxy acts as proxy between the streams of a
- * process and interested clients. This abstraction allows
- * implementations of <code>IProcess</code> to handle I/O related
- * to the standard input, output, and error streams associated
- * with a process.
- * <p>
- * Clients implementing the <code>IProcess</code> interface must also
- * provide an implementation of this interface.
- * </p>
- * @see IProcess
- */
-public interface IStreamsProxy {
- /**
- * Returns a monitor for the error stream of this proxy's process,
- * or <code>null</code> if not supported.
- * The monitor is connected to the error stream of the
- * associated process.
- *
- * @return an error stream monitor, or <code>null</code> if none
- */
- public IStreamMonitor getErrorStreamMonitor();
- /**
- * Returns a monitor for the output stream of this proxy's process,
- * or <code>null</code> if not supported.
- * The monitor is connected to the output stream of the
- * associated process.
- *
- * @return an output stream monitor, or <code>null</code> if none
- */
- public IStreamMonitor getOutputStreamMonitor();
- /**
- * Writes the given text to the output stream connected to the
- * standard input stream of this proxy's process.
- *
- * @param input the text to be written
- * @exception IOException when an error occurs writing to the
- * underlying <code>OutputStream</code>.
- *
- */
- public void write(String input) throws IOException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java
deleted file mode 100644
index 8d954b80f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.io.IOException;
-
-/**
- * Extension to a streams proxy that allows closing of the output stream
- * connected to the standard input stream of a proxy's process.
- * <p>
- * Clients should implement this interface, in addition to
- * <code>IStreamsProxy</code>, if interested closing the standard
- * input stream.
- * </p>
- * @since 3.1
- */
-public interface IStreamsProxy2 extends IStreamsProxy {
-
- /**
- * Closes the output stream connected to the standard input stream
- * of this proxy's process.
- *
- * @throws IOException if unable to close the stream
- */
- public void closeInputStream() throws IOException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
deleted file mode 100644
index e45952ca2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to suspend and resume a thread
- * or debug target.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface ISuspendResume {
- /**
- * Returns whether this element can currently be resumed.
- *
- * @return whether this element can currently be resumed
- */
- public boolean canResume();
- /**
- * Returns whether this element can currently be suspended.
- *
- * @return whether this element can currently be suspended
- */
- public boolean canSuspend();
- /**
- * Returns whether this element is currently suspended.
- *
- * @return whether this element is currently suspended
- */
- public boolean isSuspended();
- /**
- * Causes this element to resume its execution, generating a <code>RESUME</code> event.
- * Has no effect on an element that is not suspended. This call is non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void resume() throws DebugException;
- /**
- * Causes this element to suspend its execution, generating a <code>SUSPEND</code> event.
- * Has no effect on an already suspended element.
- * Implementations may be blocking or non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void suspend() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
deleted file mode 100644
index bf8a44536..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to terminate an execution
- * context - for example, a thread, debug target or process.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface ITerminate {
- /**
- * Returns whether this element can be terminated.
- *
- * @return whether this element can be terminated
- */
- public boolean canTerminate();
- /**
- * Returns whether this element is terminated.
- *
- * @return whether this element is terminated
- */
- public boolean isTerminated();
- /**
- * Causes this element to terminate, generating a <code>TERMINATE</code> event.
- * Implementations may be blocking or non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void terminate() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
deleted file mode 100644
index a737419e0..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A thread is a sequential flow of execution in a debug target.
- * A thread contains stack frames. Stack frames are only available when the
- * thread is suspended, and are returned in top-down order.
- * Minimally, a thread supports the following:
- * <ul>
- * <li>suspend/resume
- * <li>stepping
- * <li>terminate
- * </ul>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ISuspendResume
- * @see IStep
- * @see ITerminate
- * @see IStackFrame
- */
-
-public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminate {
- /**
- * Returns the stack frames contained in this thread. An
- * empty collection is returned if this thread contains
- * no stack frames, or is not currently suspended. Stack frames
- * are returned in top down order.
- *
- * @return a collection of stack frames
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IStackFrame[] getStackFrames() throws DebugException;
-
- /**
- * Returns whether this thread currently contains any stack
- * frames.
- *
- * @return whether this thread currently contains any stack frames
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasStackFrames() throws DebugException;
-
- /**
- * Returns the priority of this thread. The meaning of this
- * number is operating-system dependent.
- *
- * @return thread priority
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public int getPriority() throws DebugException;
- /**
- * Returns the top stack frame or <code>null</code> if there is
- * currently no top stack frame.
- *
- * @return the top stack frame, or <code>null</code> if none
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IStackFrame getTopStackFrame() throws DebugException;
- /**
- * Returns the name of this thread. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this thread's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the breakpoints that caused this thread to suspend,
- * or an empty collection if this thread is not suspended or
- * was not suspended by a breakpoint. Usually a single breakpoint
- * will be returned, but this collection can contain more than
- * one breakpoint if two breakpoints are at the same location in
- * a program.
- *
- * @return the collection of breakpoints that caused this thread to suspend
- */
- public IBreakpoint[] getBreakpoints();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
deleted file mode 100644
index ef167078e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A value represents the value of a variable.
- * A value representing a complex data structure contains variables.
- * <p>
- * An implementation may choose to re-use or discard
- * values on iterative thread suspensions. Clients
- * cannot assume that values are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * An implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if variables are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list or tree.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IVariable
- */
-
-
-public interface IValue extends IDebugElement {
-
- /**
- * Returns a description of the type of data this value contains
- * or references.
- *
- * @return the name of this value's reference type
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getReferenceTypeName() throws DebugException;
-
- /**
- * Returns this value as a <code>String</code>.
- *
- * @return a String representation of this value
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getValueString() throws DebugException;
-
- /**
- * Returns whether this value is currently allocated.
- * <p>
- * For example, if this value represents
- * an object that has been garbage collected, <code>false</code> is returned.
- * </p>
- * @return whether this value is currently allocated
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public boolean isAllocated() throws DebugException;
- /**
- * Returns the visible variables in this value. An empty
- * collection is returned if there are no visible variables.
- *
- * @return an array of visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IVariable[] getVariables() throws DebugException;
-
- /**
- * Returns whether this value currently contains any visible variables.
- *
- * @return whether this value currently contains any visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasVariables() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
deleted file mode 100644
index d04c5ebaf..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to modify the value of a variable in
- * a target.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IVariable
- */
-public interface IValueModification {
-
- /**
- * Attempts to set the value of this variable to the
- * value of the given expression.
- *
- * @param expression an expression to generate a new value
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void setValue(String expression) throws DebugException;
-
- /**
- * Sets the value of this variable to the given value.
- *
- * @param value a new value
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- * @since 2.0
- */
- public void setValue(IValue value) throws DebugException;
-
- /**
- * Returns whether this variable supports value modification.
- *
- * @return whether this variable supports value modification
- */
- public boolean supportsValueModification();
-
- /**
- * Returns whether the given expression is valid to be used in
- * setting a new value for this variable.
- *
- * @param expression an expression to generate a new value
- * @return whether the expression is valid
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public boolean verifyValue(String expression) throws DebugException;
-
- /**
- * Returns whether the given value can be used as
- * a new value for this variable.
- *
- * @param value a new value
- * @return whether the value is valid
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- * @since 2.0
- */
- public boolean verifyValue(IValue value) throws DebugException;
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
deleted file mode 100644
index b67cbdcf3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A variable represents a visible data structure in a stack frame
- * or value.
- * Each variable has a value which may in turn contain more variables.
- * A variable may support value modification.
- * <p>
- * An implementation may choose to re-use or discard
- * variables on iterative thread suspensions. Clients
- * cannot assume that variables are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * An implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if variables are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list or tree.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IValue
- * @see IStackFrame
- * @see IValueModification
- */
-public interface IVariable extends IDebugElement, IValueModification {
- /**
- * Returns the value of this variable.
- *
- * @return this variable's value
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IValue getValue() throws DebugException;
- /**
- * Returns the name of this variable. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this variable's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
- /**
- * Returns a description of the type of data this variable is
- * declared to reference. Note that the declared type of a
- * variable and the concrete type of its value are not neccessarily
- * the same.
- *
- * @return the declared type of this variable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getReferenceTypeName() throws DebugException;
-
- /**
- * Returns whether this variable's value has changed since the last suspend event.
- * Implementations may choose whether the last suspend event is the last suspend
- * event in this variable's debug target, or within the thread(s) in which this variable
- * is visible.
- * <p>
- * Implementations that choose not to implement this function should always
- * return <code>false</code>.
- * </p>
- *
- * @return whether this variable's value has changed since the last suspend event
- * @exception DebugException if an exception occurs determining if this variable's
- * value has changed since the last suspend event
- */
- public boolean hasValueChanged() throws DebugException;
-
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java
deleted file mode 100644
index 3c9eb9e0f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A watch expression is an expression that is evaluated in the context
- * of a specific stack frame, thread, debug target, process, or launch.
- * Generally, a watch expression is a snippet of code that is evaluated
- * each time a debug target suspends, or when a user provides a context
- * for an evaluation by selecting a debug target or thread. An expression
- * updates its value when it is provided with a context in which it
- * can perform an evaluation.
- * <p>
- * Clients are not intended to implement this interface. An implementation
- * is provided by the debug platform. Clients that support watch expressions
- * should contribute and implement a watch exrepssion delegate. Watch
- * expressions can be created via the <code>IExpressionManager</code>.
- * </p>
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @see org.eclipse.debug.core.IExpressionManager
- * @since 3.0
- */
-public interface IWatchExpression extends IErrorReportingExpression {
-
- /**
- * Updates this watch expression's value based on the current evaluation
- * context. This watch expression fires a debug change event when the
- * evaluation is complete. A watch expression can be asked to
- * evaluate even when it is disabled. Note that implementations should
- * generally be asynchronous to avoid blocking the calling thread.
- */
- public void evaluate();
- /**
- * Sets the context for this watch expression, or <code>null</code> if none.
- * If the given context is valid for this expression, this expression may
- * update its value. When the value update is complete, a debug change event is
- * fired. When <code>null</code> is specified as a context, this expression
- * may choose to retain its previous value.
- * <p>
- * The context is usually one of (but not limited to):
- * <ul>
- * <li>a debug target (<code>IDebugTarget</code>)</li>
- * <li>a thread (<code>IThread</code>)</li>
- * <li>a stack frame (<code>IStackFrame</code>)</li>
- * </ul>
- * </p>
- *
- * @param context context in which to update this expression's value, or
- * <code>null</code> if none
- */
- public void setExpressionContext(IDebugElement context);
- /**
- * Sets this watch expression's snippet of code. This method
- * causes the new snippet to be evaluated immediately in
- * the expression's last context.
- *
- * @param expressionText the snippet which will be evaluated
- */
- public void setExpressionText(String expressionText);
- /**
- * Returns whether the result of this watch expression is pending.
- * An expression is pending if an evaluation has been requested, but
- * the value has not yet been returned.
- *
- * @return whether this expression's result is pending
- */
- public boolean isPending();
- /**
- * Returns whether this expression is enabled. An enabled expression will
- * update its value. A disabled expression will not.
- *
- * @return whether this expression is enabled
- */
- public boolean isEnabled();
- /**
- * Sets this expression's enabled state. This method
- * causes the new snippet to be evaluated immediately in
- * the expression's last context.
- *
- * @param enabled whether this expression should be enabled
- */
- public void setEnabled(boolean enabled);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java
deleted file mode 100644
index e34d22681..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A delegate which computes the value of a watch expression
- * when provided a context. Watch delegates are provided on a
- * per debug model basis. Watch expressions query the appropriate
- * delegate based on the debug model of the context element.
- * Plug-ins that wish to contribute watch expression delegates may do so using the
- * <code>org.eclipse.debug.core.watchExpressionDelegates</code>
- * extension point.
- * <p>
- * For example, the following is the definition of a watch expression
- * delegate for the com.example.foo plug-in:
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.watchExpressionDelegates"&gt;
- * &lt;watchExpressionDelegate
- * debugModel="org.eclipse.jdt.debug"
- * delegateClass="org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate"/&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IWatchExpression
- * @see org.eclipse.debug.core.model.IWatchExpressionListener
- *
- * @since 3.0
- */
-public interface IWatchExpressionDelegate {
-
- /**
- * Evaluates the given expression in the given context asynchronously and
- * notifies the given listener when the evaluation finishes.
- *
- * @param expression the expression to evaluate
- * @param context the context for the evaluation
- * @param listener the listener to notify when the evaluation completes
- */
- public void evaluateExpression(String expression, IDebugElement context, IWatchExpressionListener listener);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java
deleted file mode 100644
index 8b1baa0a5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A watch expression listener is notified when an
- * <code>org.eclipse.debug.core.model.IWatchExpressionDelegate</code>
- * completes an evaluation.
- *
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @see org.eclipse.debug.core.model.IWatchExpressionResult
- * @since 3.0
- */
-public interface IWatchExpressionListener {
-
- /**
- * Notifies the listener that an evaluation has completed.
- *
- * @param result the result of the evaluation
- */
- public void watchEvaluationFinished(IWatchExpressionResult result);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java
deleted file mode 100644
index 90a1c315b..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * The result of an evaluation performed by an
- * <code>org.eclipse.debug.core.model.IWatchExpressionDelegate</code>.
- * A watch expression reports the value of the evaluation
- * and any errors or exceptions that occurred.
- *
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @since 3.0
- */
-public interface IWatchExpressionResult {
- /**
- * Returns the value representing the result of the
- * evaluation, or <code>null</code> if the
- * associated evaluation failed. If
- * the associated evaluation failed, there will
- * be problems, or an exception in this result.
- *
- * @return the resulting value, possibly
- * <code>null</code>
- */
- public IValue getValue();
-
- /**
- * Returns whether the evaluation had any problems
- * or if an exception occurred while performing the
- * evaluation.
- *
- * @return whether there were any problems.
- * @see #getErrorMessages()
- * @see #getException()
- */
- public boolean hasErrors();
-
- /**
- * Returns an array of problem messages. Each message describes a problem that
- * occurred while compiling the snippet.
- *
- * @return evaluation error messages, or an empty array if no errors occurred
- */
- public String[] getErrorMessages();
-
- /**
- * Returns the expression that was evaluated.
- *
- * @return The string expression.
- */
- public String getExpressionText();
-
- /**
- * Returns any exception that occurred while performing the evaluation
- * or <code>null</code> if an exception did not occur.
- * The exception will be a debug exception or a debug exception
- * that wrappers a debug model specific exception that indicates a problem communicating
- * with the target or with actually performing some action in the target.
- *
- * @return The exception that occurred during the evaluation
- * @see org.eclipse.debug.core.DebugException
- */
- public DebugException getException();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java
deleted file mode 100644
index e106ceea7..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A breakpoint that suspends when an associated variable is
- * read or written.
- * <p>
- * Clients may implement this interface. Clients are not required to
- * implement this interface to implement watchpoints, but those that do inherit
- * default rendering of images for watchpoints from the debug platform's
- * default label provider and actions to toggle access and modification
- * properties of a watchpoint.
- * </p>
- * @since 3.1
- */
-public interface IWatchpoint extends IBreakpoint {
- /**
- * Returns whether this watchpoint will suspend execution when its associated
- * variable is accessed (read).
- *
- * @return whether this is an access watchpoint
- * @exception CoreException if unable to access the property
- * on this breakpoint's underlying marker
- */
- public boolean isAccess() throws CoreException;
- /**
- * Sets whether this breakpoint will suspend execution when its associated
- * variable is accessed.
- *
- * @param access whether to suspend on access
- * @exception CoreException if unable to set the property on this breakpoint's
- * underlying marker or if the capability is not supported
- */
- public void setAccess(boolean access) throws CoreException;
- /**
- * Returns whether this watchpoint will suspend execution when its associated
- * variable is written.
- *
- * @return whether this is a modification watchpoint
- * @exception CoreException if unable to access the property
- * on this breakpoint's underlying marker
- */
- public boolean isModification() throws CoreException;
- /**
- * Sets whether this breakpoint will suspend execution when its associated
- * variable is modified.
- *
- * @param modification whether to suspend on modification
- * @exception CoreException if unable to set the property on
- * this breakpoint's underlying marker or if the capability is not supported
- */
- public void setModification(boolean modification) throws CoreException;
- /**
- * Returns whether this breakpoints supports the capability to suspend
- * when an associated variable is read.
- *
- * @return whether this breakpoints supports the capability to suspend
- * when an associated variable is read
- */
- public boolean supportsAccess();
- /**
- * Returns whether this breakpoints supports the ability to suspend
- * when an associated variable is written.
- *
- * @return whether this breakpoints supports the ability to suspend
- * when an associated variable is written
- */
- public boolean supportsModification();
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java
deleted file mode 100644
index 1dd3d558d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-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.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.IStatusHandler;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * Default implementation of a launch configuration delegate. Provides
- * convenience methods for computing the build order of projects,
- * building projects, and searching for errors in the workspace. The
- * default pre-launch check prompts the user to launch in debug mode
- * if breakpoints are present in the workspace.
- * <p>
- * Clients implementing launch configration delegates should subclass
- * this class.
- * </p>
- * @since 3.0
- */
-public abstract class LaunchConfigurationDelegate implements ILaunchConfigurationDelegate2 {
-
- /**
- * Status code for which a UI prompter is registered.
- */
- protected static final IStatus promptStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 200, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- /**
- * Status code for which a prompter is registered to ask the user if they
- * want to launch in debug mode when breakpoints are present.
- */
- protected static final IStatus switchToDebugPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.core", 201, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- /**
- * Status code for which a prompter is registered to ask the user if the
- * want to continue launch despite existing compile errors
- */
- protected static final IStatus complileErrorPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.core", 202, "", null); //$NON-NLS-1$ //$NON-NLS-2$
-
- /* (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 null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#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 {
- IProject[] projects = getBuildOrder(configuration, mode);
- if (projects == null) {
- return true;
- }
- buildProjects(projects, monitor);
- return false;
- }
-
- /**
- * Returns the projects to build before launching the given launch configuration
- * or <code>null</code> if the entire workspace should be built incrementally.
- * Subclasses should override as required.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @return projects to build, in build order, or <code>null</code>
- * @throws CoreException if an exception occurrs
- */
- protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException {
- return null;
- }
-
- /**
- * Returns the set of projects to use when searching for errors or <code>null</code>
- * if no search is to be done.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @return a list of projects or <code>null</code>
- * @throws CoreException if an exception occurrs
- */
- protected IProject[] getProjectsForProblemSearch(ILaunchConfiguration configuration, String mode) throws CoreException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#finalLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
- IProject[] projects = getProjectsForProblemSearch(configuration, mode);
- if (projects == null) {
- return true; //continue launch
- }
- boolean continueLaunch = true;
-
- monitor.subTask(DebugCoreMessages.getString("LaunchConfigurationDelegate.6")); //$NON-NLS-1$
- for (int i = 0; i < projects.length; i++) {
- monitor.subTask(DebugCoreMessages.getString("LaunchConfigurationDelegate.7") + projects[i].getName()); //$NON-NLS-1$
- if (existsProblems(projects[i])) {
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
- if (prompter != null) {
- continueLaunch = ((Boolean) prompter.handleStatus(complileErrorPromptStatus, configuration)).booleanValue();
- break;
- }
- }
- }
-
- return continueLaunch;
- }
-
- /* (non-Javadoc)
- *
- * If launching in run mode, and the configuration supports debug mode, check
- * if there are any breakpoints in the workspace, and ask the user if they'd
- * rather launch in debug mode.
- *
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
- if (mode.equals(ILaunchManager.RUN_MODE) && configuration.supportsMode(ILaunchManager.DEBUG_MODE)) {
- IBreakpoint[] breakpoints= getBreakpoints(configuration);
- if (breakpoints == null) {
- return true;
- }
- for (int i = 0; i < breakpoints.length; i++) {
- if (breakpoints[i].isEnabled()) {
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
- if (prompter != null) {
- boolean launchInDebugModeInstead = ((Boolean)prompter.handleStatus(switchToDebugPromptStatus, configuration)).booleanValue();
- if (launchInDebugModeInstead) {
- return false; //kill this launch
- }
- }
- // if no user prompt, or user says to continue (no need to check other breakpoints)
- return true;
- }
- }
- }
- // no enabled breakpoints... continue launch
- return true;
- }
-
- /**
- * Returns the breakpoint collection that is relevant for this launch delegate.
- * By default this is all the breakpoints registered with the Debug breakpoint manager.
- *
- * @since 3.1
- * @return the breakpoints that are relevant for this launch delegate
- */
- protected IBreakpoint[] getBreakpoints(ILaunchConfiguration configuration) {
- IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
- if (!breakpointManager.isEnabled()) {
- // no need to check breakpoints individually.
- return null;
- }
- return breakpointManager.getBreakpoints();
- }
-
- /**
- * Returns an array of projects in their suggested build order
- * containing all of the projects specified by <code>baseProjects</code>
- * and all of their referenced projects.
- *
- * @param baseProjects a collection of projetcs
- * @return an array of projects in their suggested build order
- * containing all of the projects specified by <code>baseProjects</code>
- * @throws CoreException if an error occurs while computing referenced
- * projects
- */
- protected IProject[] computeReferencedBuildOrder(IProject[] baseProjects) throws CoreException {
- HashSet unorderedProjects = new HashSet();
- for(int i = 0; i< baseProjects.length; i++) {
- unorderedProjects.add(baseProjects[i]);
- addReferencedProjects(baseProjects[i], unorderedProjects);
- }
- IProject[] projectSet = (IProject[]) unorderedProjects.toArray(new IProject[unorderedProjects.size()]);
- return computeBuildOrder(projectSet);
- }
-
-
- /**
- * Adds all projects referenced by <code>project</code> to the given
- * set.
- *
- * @param project project
- * @param references set to which referenced projects are added
- * @throws CoreException if an error occurs while computing referenced
- * projects
- */
- protected void addReferencedProjects(IProject project, Set references) throws CoreException{
- if (project.isOpen()) {
- IProject[] projects = project.getReferencedProjects();
- for (int i = 0; i < projects.length; i++) {
- IProject refProject= projects[i];
- if (refProject.exists() && !references.contains(refProject)) {
- references.add(refProject);
- addReferencedProjects(refProject, references);
- }
- }
- }
- }
-
- /**
- * Returns a list of projects in their suggested build order from the
- * given unordered list of projects.
- *
- * @param projects the list of projects to sort into build order
- * @return a new array containing all projects from <code>projects</code> sorted
- * according to their build order.
- */
- protected IProject[] computeBuildOrder(IProject[] projects) {
- String[] orderedNames = ResourcesPlugin.getWorkspace().getDescription().getBuildOrder();
- if (orderedNames != null) {
- List orderedProjects = new ArrayList(projects.length);
- //Projects may not be in the build order but should be built if selected
- List unorderedProjects = new ArrayList(projects.length);
- for(int i = 0; i < projects.length; ++i) {
- unorderedProjects.add(projects[i]);
- }
-
- for (int i = 0; i < orderedNames.length; i++) {
- String projectName = orderedNames[i];
- for (Iterator iterator = unorderedProjects.iterator(); iterator.hasNext(); ) {
- IProject project = (IProject)iterator.next();
- if (project.getName().equals(projectName)) {
- orderedProjects.add(project);
- iterator.remove();
- break;
- }
- }
- }
- //Add anything not specified before we return
- orderedProjects.addAll(unorderedProjects);
- return (IProject[]) orderedProjects.toArray(new IProject[orderedProjects.size()]);
- }
-
- // Computing build order returned null, try the project prerequisite order
- IWorkspace.ProjectOrder po = ResourcesPlugin.getWorkspace().computeProjectOrder(projects);
- return po.projects;
- }
-
- /**
- * Returns whether the given project contains any problem markers of the
- * specified severity.
- *
- * @param proj the project to search
- * @return whether the given project contains any problems that should
- * stop it from launching
- * @throws CoreException if an error occurs while searching for
- * problem markers
- */
- protected boolean existsProblems(IProject proj) throws CoreException {
- IMarker[] markers = proj.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
- if (markers.length > 0) {
- for (int i = 0; i < markers.length; i++) {
- if (isLaunchProblem(markers[i])) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Returns whether the given problem should potentially abort the launch.
- * By default if the problem has an error severity, the problem is considered
- * a potential launch problem. Subclasses may override to specialize error
- * detection.
- *
- * @param problemMarker candidate problem
- * @return whether the given problem should potentially abort the launch
- * @throws CoreException if any exceptions occurr while accessing marker attributes
- */
- protected boolean isLaunchProblem(IMarker problemMarker) throws CoreException {
- Integer severity = (Integer)problemMarker.getAttribute(IMarker.SEVERITY);
- if (severity != null) {
- return severity.intValue() >= IMarker.SEVERITY_ERROR;
- }
-
- return false;
- }
-
- /**
- * Performs an incremental build on each of the given projects.
- *
- * @param projects projects to build
- * @param monitor progress monitor
- * @throws CoreException if an exception occurrs while building
- */
- protected void buildProjects(IProject[] projects, IProgressMonitor monitor) throws CoreException {
- for (int i = 0; i < projects.length; i++ ) {
- projects[i].build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
deleted file mode 100644
index c43f3555f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- * Abstract implementation of a line breakpoint. This class is
- * intended to be subclassed by debug model specific implementations
- * of line breakpoints.
- *
- * @see ILineBreakpoint
- */
-
-public abstract class LineBreakpoint extends Breakpoint implements ILineBreakpoint {
-
-
- /**
- * @see ILineBreakpoint#getLineNumber()
- */
- public int getLineNumber() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.LINE_NUMBER, -1);
- }
- return -1;
- }
-
- /**
- * @see ILineBreakpoint#getCharStart()
- */
- public int getCharStart() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.CHAR_START, -1);
- }
- return -1;
- }
-
- /**
- * @see ILineBreakpoint#getCharEnd()
- */
- public int getCharEnd() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.CHAR_END, -1);
- }
- return -1;
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java
deleted file mode 100644
index d32811c9c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * A byte of memory in a meomry block. Each byte of memory has a value and
- * attributes indicating if the byte is read-only, valid, or if its value has
- * changed.
- * <p>
- * Clients may instantiate this class. Clients may subclass this class to
- * add other attributes to a memory byte, as required.
- * </p>
- * @since 3.1
- */
-public class MemoryByte {
-
- /**
- * Bit mask used to indicate a byte is read-only.
- */
- public static final byte READONLY = 0x01;
-
- /**
- * Bit mask used to indicate a byte is valid.
- * A memory byte is valid when its value and attributes are retrievable.
- * Otherwise, a byte is considered invalid.
- */
- public static final byte VALID = 0x02;
-
- /**
- * Bit mask used to indicate a byte has changed since the last
- * suspend event.
- *
- * @see org.eclipse.debug.core.DebugEvent#SUSPEND
- */
- public static final byte CHANGED = 0x04;
-
- /**
- * Bit mask used to indicate a memory byte has history to
- * determine if its value has changed. When a memory byte's
- * history is unknown, the change state has no meaning.
- */
- public static final byte KNOWN = 0x08;
-
- /**
- * Value of this byte.
- */
- protected byte value;
-
- /**
- * Attribute flags.
- * <p>
- * To specify VALID: flags |= MemoryByte.VALID;
- * To specify READONLY: flags |= MemoryByte.READONLY;
- * </p>
- */
- protected byte flags;
-
- /**
- * Constructs a read-write, valid memory byte without a change history,
- * and a value of 0.
- */
- public MemoryByte() {
- this((byte)0, VALID);
- }
-
- /**
- * Constructs a read-write, valid memory byte without a change history,
- * with the given value.
- *
- * @param byteValue value of this memory byte
- *
- */
- public MemoryByte(byte byteValue) {
- this(byteValue, VALID);
- }
-
- /**
- * Constructs a memory byte with the given value and attributes.
- *
- * @param byteValue value of this memory byte
- * @param byteFlags attributes of the byte specified as a bit mask
- */
- public MemoryByte(byte byteValue, byte byteFlags) {
- value = byteValue;
- flags = byteFlags;
- }
-
- /**
- * Returns this memory byte's attribute as a bit mask.
- *
- * @return this memory byte's attribute as a bit mask
- */
- public byte getFlags() {
- return flags;
- }
- /**
- * Sets this memory byte's attributes based on the given bit mask.
- *
- * @param flags bit mask of attributes
- */
- public void setFlags(byte flags) {
- this.flags = flags;
- }
-
- /**
- * Returns the value of this memory byte.
- *
- * @return the value of this memory byte
- */
- public byte getValue() {
- return value;
- }
-
- /**
- * Sets the value of this memory byte.
- *
- * @param value the new value of this memory byte
- */
- public void setValue(byte value) {
- this.value = value;
- }
-
- /**
- * Sets whether this memory byte is valid. A memory byte
- * is considered valid when its value and attributes are
- * retrievable.
- *
- * @param valid whether this memory byte is valid
- */
- public void setValid(boolean valid) {
- flags |= MemoryByte.VALID;
- if (!valid)
- flags ^= MemoryByte.VALID;
- }
-
- /**
- * Returns whether this memory byte is valid. A memory byte
- * is considered valid when its value and attributes are
- * retrievable.
- *
- * @return whether this memory byte is valid
- */
- public boolean isValid() {
- return ((flags & MemoryByte.VALID) == MemoryByte.VALID);
- }
-
- /**
- * Sets whether this memory byte is read-only.
- *
- * @param readonly whether this memory byte is read-only.
- */
- public void setReadonly(boolean readonly) {
- flags |= MemoryByte.READONLY;
- if (!readonly)
- flags ^= MemoryByte.READONLY;
- }
-
- /**
- * Returns whether this memory byte is read-only.
- *
- * @return whether this memory byte is read-only
- */
- public boolean isReadonly() {
- return ((flags & MemoryByte.READONLY) == MemoryByte.READONLY);
- }
-
- /**
- * Sets whether this memory byte has changed.
- *
- * @param changed whether this memory byte has changed
- */
- public void setChanged(boolean changed) {
- flags |= MemoryByte.CHANGED;
- if (!changed)
- flags ^= MemoryByte.CHANGED;
- }
-
- /**
- * Returns whether this memory byte has changed.
- *
- * @return whether this memory byte has changed
- */
- public boolean isChanged() {
- return ((flags & MemoryByte.CHANGED) == MemoryByte.CHANGED);
- }
-
- /**
- * Sets whether the history of this byte is known. When history
- * is unknown, the change state of a memory byte has no meaning.
- *
- * @param known whether the change state of this byte is known
- */
- public void setKnown(boolean known) {
- flags |= MemoryByte.KNOWN;
- if (!known)
- flags ^= MemoryByte.KNOWN;
- }
-
- /**
- * Returns whether the history of this byte is known. When history
- * is unknown, the change state of a memory byte has no meaning.
- *
- * @return whether the change state of this byte is known
- */
- public boolean isKnown() {
- return ((flags & MemoryByte.KNOWN) == MemoryByte.KNOWN);
- }
-
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java
deleted file mode 100644
index 34542206f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.NullStreamsProxy;
-import org.eclipse.debug.internal.core.StreamsProxy;
-
-
-/**
- * Standard implementation of an <code>IProcess</code> that wrappers a system
- * process (<code>java.lang.Process</code>).
- * <p>
- * Clients may subclass this class. Clients that need to replace the implementation
- * of a streams proxy associatd with an <code>IProcess</code> should subclass this
- * class. Generally clients should not instantiate this class directly, but should
- * instead call <code>DebugPlugin.newProcess(...)</code>, which can delegate to an
- * <code>IProcessFactory</code> if one is referenced by the associated launch configuration.
- * </p>
- * @see org.eclipse.debug.core.model.IProcess
- * @see org.eclipse.debug.core.IProcessFactory
- * @since 3.0
- */
-public class RuntimeProcess extends PlatformObject implements IProcess {
-
- private static final int MAX_WAIT_FOR_DEATH_ATTEMPTS = 10;
- private static final int TIME_TO_WAIT_FOR_THREAD_DEATH = 500; // ms
-
- /**
- * The launch this process is contained in
- */
- private ILaunch fLaunch;
-
- /**
- * The system process represented by this <code>IProcess</code>
- */
- private Process fProcess;
-
- /**
- * This process's exit value
- */
- private int fExitValue;
-
- /**
- * The monitor which listens for this runtime process' system process
- * to terminate.
- */
- private ProcessMonitorThread fMonitor;
-
- /**
- * The streams proxy for this process
- */
- private IStreamsProxy fStreamsProxy;
-
- /**
- * The name of the process
- */
- private String fName;
-
- /**
- * Whether this process has been terminated
- */
- private boolean fTerminated;
-
- /**
- * Table of client defined attributes
- */
- private Map fAttributes;
-
- /**
- * Whether output from the process should be captured or swallowed
- */
- private boolean fCaptureOutput = true;
-
- /**
- * Constructs a RuntimeProcess on the given system process
- * with the given name, adding this process to the given
- * launch.
- *
- * @param launch the launch this process will be parented by
- * @param process underlyig system process
- * @param name the label used for this process
- * @param attributes map of attributes used to initialize the attributes
- * of this process, or <code>null</code> if none
- */
- public RuntimeProcess(ILaunch launch, Process process, String name, Map attributes) {
- setLaunch(launch);
- initializeAttributes(attributes);
- fProcess= process;
- fName= name;
- fTerminated= true;
- try {
- process.exitValue();
- } catch (IllegalThreadStateException e) {
- fTerminated= false;
- }
-
- String captureOutput = launch.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT);
- fCaptureOutput = !("false".equals(captureOutput)); //$NON-NLS-1$
-
- fStreamsProxy= createStreamsProxy();
- fMonitor = new ProcessMonitorThread(this);
- fMonitor.start();
- launch.addProcess(this);
- fireCreationEvent();
- }
-
- /**
- * Initialize the attributes of this process to those in the given map.
- *
- * @param attributes attribute map or <code>null</code> if none
- */
- private void initializeAttributes(Map attributes) {
- if (attributes != null) {
- Iterator keys = attributes.keySet().iterator();
- while (keys.hasNext()) {
- String key = (String)keys.next();
- setAttribute(key, (String)attributes.get(key));
- }
- }
- }
-
- /**
- * @see ITerminate#canTerminate()
- */
- public boolean canTerminate() {
- return !fTerminated;
- }
-
- /**
- * @see IProcess#getLabel()
- */
- public String getLabel() {
- return fName;
- }
-
- /**
- * Sets the launch this process is contained in
- *
- * @param launch the launch this process is contained in
- */
- protected void setLaunch(ILaunch launch) {
- fLaunch = launch;
- }
-
- /**
- * @see IProcess#getLaunch()
- */
- public ILaunch getLaunch() {
- return fLaunch;
- }
-
- /**
- * Returns the underlying system process associated with this process.
- *
- * @return system process
- */
- protected Process getSystemProcess() {
- return fProcess;
- }
-
- /**
- * @see ITerminate#isTerminated()
- */
- public boolean isTerminated() {
- return fTerminated;
- }
-
- /**
- * @see ITerminate#terminate()
- */
- public void terminate() throws DebugException {
- if (!isTerminated()) {
- if (fStreamsProxy instanceof StreamsProxy) {
- ((StreamsProxy)fStreamsProxy).kill();
- }
- Process process = getSystemProcess();
- if (process != null) {
- process.destroy();
- }
- int attempts = 0;
- while (attempts < MAX_WAIT_FOR_DEATH_ATTEMPTS) {
- try {
- process = getSystemProcess();
- if (process != null) {
- fExitValue = process.exitValue(); // throws exception if process not exited
- }
- return;
- } catch (IllegalThreadStateException ie) {
- }
- try {
- Thread.sleep(TIME_TO_WAIT_FOR_THREAD_DEATH);
- } catch (InterruptedException e) {
- }
- attempts++;
- }
- // clean-up
- if (fMonitor != null) {
- fMonitor.killThread();
- fMonitor = null;
- }
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.TARGET_REQUEST_FAILED, DebugCoreMessages.getString("RuntimeProcess.terminate_failed"), null); //$NON-NLS-1$
- throw new DebugException(status);
- }
- }
-
- /**
- * Notification that the system process associated with this process
- * has terminated.
- */
- protected void terminated() {
- if (fStreamsProxy instanceof StreamsProxy) {
- ((StreamsProxy)fStreamsProxy).close();
- }
- fTerminated= true;
- try {
- fExitValue = fProcess.exitValue();
- } catch (IllegalThreadStateException ie) {
- }
- fProcess= null;
- fireTerminateEvent();
- }
-
- /**
- * @see IProcess#getStreamsProxy()
- */
- public IStreamsProxy getStreamsProxy() {
- if (!fCaptureOutput) {
- return null;
- }
- return fStreamsProxy;
- }
-
- /**
- * Returns the streams proxy associated with this process.
- *
- * @return streams proxy
- */
- protected IStreamsProxy createStreamsProxy() {
- if (!fCaptureOutput) {
- return new NullStreamsProxy(getSystemProcess());
- }
-
- return new StreamsProxy(getSystemProcess());
- }
-
- /**
- * Fires a creation event.
- */
- protected void fireCreationEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.CREATE));
- }
-
- /**
- * Fires the given debug event.
- *
- * @param event debug event to fire
- */
- protected void fireEvent(DebugEvent event) {
- DebugPlugin manager= DebugPlugin.getDefault();
- if (manager != null) {
- manager.fireDebugEventSet(new DebugEvent[]{event});
- }
- }
-
- /**
- * Fires a terminate event.
- */
- protected void fireTerminateEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.TERMINATE));
- }
-
- /**
- * Fires a change event.
- */
- protected void fireChangeEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.CHANGE));
- }
-
- /**
- * @see IProcess#setAttribute(String, String)
- */
- public void setAttribute(String key, String value) {
- if (fAttributes == null) {
- fAttributes = new HashMap(5);
- }
- Object origVal = fAttributes.get(key);
- if (origVal != null && origVal.equals(value)) {
- return; //nothing changed.
- }
-
- fAttributes.put(key, value);
- fireChangeEvent();
- }
-
- /**
- * @see IProcess#getAttribute(String)
- */
- public String getAttribute(String key) {
- if (fAttributes == null) {
- return null;
- }
- return (String)fAttributes.get(key);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter.equals(IProcess.class)) {
- return this;
- }
- if (adapter.equals(IDebugTarget.class)) {
- ILaunch launch = getLaunch();
- IDebugTarget[] targets = launch.getDebugTargets();
- for (int i = 0; i < targets.length; i++) {
- if (this.equals(targets[i].getProcess())) {
- return targets[i];
- }
- }
- return null;
- }
- return super.getAdapter(adapter);
- }
- /**
- * @see IProcess#getExitValue()
- */
- public int getExitValue() throws DebugException {
- if (isTerminated()) {
- return fExitValue;
- }
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.TARGET_REQUEST_FAILED, DebugCoreMessages.getString("RuntimeProcess.Exit_value_not_available_until_process_terminates._1"), null)); //$NON-NLS-1$
- }
-
- /**
- * Monitors a system process, waiting for it to terminate, and
- * then notifies the associated runtime process.
- */
- class ProcessMonitorThread extends Thread {
-
- /**
- * Whether the thread has been told to exit.
- */
- protected boolean fExit;
- /**
- * The underlying <code>java.lang.Process</code> being monitored.
- */
- protected Process fOSProcess;
- /**
- * The <code>IProcess</code> which will be informed when this
- * monitor detects that the underlying process has terminated.
- */
- protected RuntimeProcess fRuntimeProcess;
-
- /**
- * The <code>Thread</code> which is monitoring the underlying process.
- */
- protected Thread fThread;
-
- /**
- * A lock protecting access to <code>fThread</code>.
- */
- private final Object fThreadLock = new Object();
-
- /**
- * @see Thread#run()
- */
- public void run() {
- synchronized (fThreadLock) {
- if (fExit) {
- return;
- }
- fThread = Thread.currentThread();
- }
- while (fOSProcess != null) {
- try {
- fOSProcess.waitFor();
- } catch (InterruptedException ie) {
- // clear interrupted state
- Thread.interrupted();
- } finally {
- fOSProcess = null;
- fRuntimeProcess.terminated();
- }
- }
- fThread = null;
- }
-
- /**
- * Creates a new process monitor and starts monitoring the process for
- * termination.
- */
- public ProcessMonitorThread(RuntimeProcess process) {
- super(DebugCoreMessages.getString("ProcessMonitorJob.0")); //$NON-NLS-1$
- fRuntimeProcess= process;
- fOSProcess= process.getSystemProcess();
- }
-
- /**
- * Kills the monitoring thread.
- *
- * This method is to be useful for dealing with the error
- * case of an underlying process which has not informed this
- * monitor of its termination.
- */
- protected void killThread() {
- synchronized (fThreadLock) {
- if (fThread == null) {
- fExit = true;
- } else {
- fThread.interrupt();
- }
- }
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
deleted file mode 100644
index 6192e28d6..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform [org.eclipse.debug.core.model]</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Defines interfaces for debug model elements, source lookup, and launching.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package defines classes and interfaces known as the &quot;debug model&quot;
- which support an extensible set of debug architectures and languages. The debug
- model is a set of interfaces representing common artifacts in debuggable programs.
- The debug plug-in itself does not provide an implementation of a debug model.
- It is intended that third parties providing an integrated set of development
- tools for a specific language will also implement a debug model for that language,
- using an underlying debug architecture of their choice. For example, Java development
- tooling provides an implementation of a debug model based on the standard Java
- Platform Debug Architecture (JPDA).</p>
-
-<h4>The Debug Model</h4>
-
-<p>A client implements a debug model by
-providing an implementation of the interfaces defined in this package. (There is no explicit
-extension point that represents a debug model). Each debug model provides one or more
-launch configuration types capable of initiating a debug session.</p>
-
-<p>The common elements defined by the debug model are:
-
-<ul>
- <li>Debug Target - A debug target represents a debuggable program - for example, a virtual
- machine or a process.</li>
- <li>Thread - A debug target may contain one or more threads.</li>
- <li>Stack Frame - A suspended thread may contain one or more stack frames.</li>
- <li>Variable - A stack frame may contain variables.</li>
- <li>Value - Each variable has an associated value, and a value may contain more variables (to
- represent complex data structures and objects).</li>
- <li>Register Group - A stack frame may (optionally) be associated with one or more register
- groups.</li>
- <li>Register - A register group contains one or more registers.</li>
- <li>Memory Blocks - A debug target may (optionally) support the retrieval of
- arbitrary contiguous segments of memory.</li>
- <li>Breakpoint - Breakpoints suspend the execution of a program.</li>
- <li>Expression - An expression is a snippet of code that can be evaluated to
- produce a value.</li>
-</ul>
-
-<p>A debug model implementation is responsible for firing debug events. A debug event
-corresponds to an event in a program being debugged - for example the creation or
-termination of a thread.</p>
-
-<h4>Breakpoints</h4>
-
-<p>Breakpoints are used to suspend the execution of a program being debugged. There are
-many kinds of breakpoints - line breakpoints, conditional line breakpoints, hit count
-breakpoints, exception breakpoints, etc. The kinds of breakpoints supported by each debug
-architecture, and the information required to create those breakpoints
-is dictated by each debug architecture. The debug platform supports an extensible
-set of breakpoint via the breakpoints extension point.</p>
-
-<p>The debug platform provides a breakpoint manager that maintains the collection
- of all registered breakpoints. Clients add and remove breakpoints via this manager.
- Breakpoints are implemented by instances of <b>IBreakpoint</b>. Each breakpoint
- object has an associated marker, which provides persistence and presentation
- in editors. The debug platform defines a generic breakpoint and line breakpoint,
- as well as their corresponding marker definitions. Breakpoint creation is a
- client responsibility - that is, defining the attributes of a breakpoint and
- the resource to associate a breakpoint marker with.</p>
-
-<p>Breakpoints are persisted via their underlying marker. Breakpoint markers defined
- with the <b>persisted</b> attribute as <b>false</b> will not be persisted. Breakpoints
- are restored at workspace startup time by the breakpoint manager - that is,
- breakpoint objects are created for all persisted markers which are a subtype
- of the root breakpoint marker and are added to the breakpoint manager. To allow
- for selective persistence of breakpoints (of the same kind), the <b>IBreakpoint</b>
- interface and root breakpoint implementation defines a &quot;persisted&quot;
- attribute. If this value is set to false, the breakpoint will not be persisted
- across workspace invocations.</p>
-
-<p>As breakpoint markers are modified (created, removed, and changed), resource
- deltas are created by the platform. The breakpoint manager translates pertinent
- resource deltas into breakpoint change notifications (breakpoint added/removed/changed
- messages). Interested listeners may register with the breakpoint manager. The
- breakpoint manager only fires change notifications for registered breakpoints.
- This simplifies breakpoint processing for clients, as resource delta traversal
- and analysis is not required. Debug targets that support breakpoints should
- register for breakpoint change notifications.</p>
-<h4>New Features in the Debug Model, Eclipse 3.0</h4>
-<blockquote>
- <h4>Launch Delegate Enhancements<br>
- </h4>
- <p>Lanuch delegates can optionally implement the new interface <code>ILaunchConfigurationDelegate2</code>.
- This allows launch delegates to provide a launch object to be used for a launch.
- For example, when debugging on a server a delegate could create a new launch
- object or may reuse an existing launch object if the server is already running
- in debug mode. As well, the inteface provides a mechanism for performing a
- scoped build prior to launching (i.e. scoped to the projects in the workspace
- pertaining to the launch), and searching for errors in the workspace which
- may prevent the launch from succeeding (for example, compilation errors).</p>
- <p></p>
- <h4>Extensible Watch Expressions</h4>
- <p>The debug platform provides an implementation of watch expressions. Debug
- models can contribute watch expression delegates if they support watch expressions.
- When a stack frame is selected, the associated delegate is queried to provide
- a value for a watch expression in that context. The debug platform provides
- persistence, enabling, disabling, entering, and editing of watch expressions.</p>
- <h4>Automatic Array Partitioning<br>
- </h4>
- <p>The debug plug-in supports automatic partitioning of indexed collections,
- which partitions large arrays into sub-ranges in the variables view. This
- is supported with the introduction of a new interface in the debug model representing
- an indexed value - <code>IIndexedValue</code>. If a value implements this
- interface, the variables view will automatically partition its elements as
- required, into sub-ranges</p>
- <h4>Logical Structure Types<br>
- </h4>
- <p>Often, it is convenient to navigate complex data structures in terms of a
- logical structure, rather than an implementation structure. For example, no
- matter how a list is implemented (i.e. linked list, collection of arrays,
- etc.), it is often convenient to be able to view the list as an ordered collection.
- To facilitate the display of logical structures in the variables view, an
- extension point has been added (<code>org.eclipse.debug.core.logicalStructureTypes</code>)
- allowing debug models to contribute logical structures of its values, where
- applicable. Debug models may contribute delegates to translate raw implementation
- values into logical values. The variables view will display the logical values,
- when the option to display logical structures is turned on. More than one
- logical structure can be provided for a single value - the user can choose
- which structure to display.</p>
- <h4>Step Filters<br>
- </h4>
- <p>To support step filters on all stepping functions (into, over, return), a
- new interface has been added to the debug platform - <code>IStepFilters</code>
- - which can be implemented by debug targets. This interface replaces <code>IFilteredStep</code>,
- which is now deprecated. The debugger provides a global toggle that turns
- step filters on/off for all stepping functions. Debug targets should implement
- this new interface and honor the step filter enablement setting when stepping.</p>
- <p>This change maintains binary compatibility with previous releases. However,
- targets wishing to leverage the new function must implement the new interface.<br>
- </p>
-</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
deleted file mode 100644
index 069ad320f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides support for launching programs, breakpoint management, expression management,
-and debug events.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides classes and interfaces to support facilities common among
- many debug architectures: launching programs, breakpoint management, expression
- management, and debug events. An extensible set of debug architectures and languages
- are supported by the definition of a &quot;debug model&quot; - a set of interfaces
- representing common artifacts in debuggable programs, which are defined in <b>org.eclipse.debug.core.model</b>.
- The debug plug-in itself does not provide an implementation of a debug model.
- It is intended that third parties providing an integrated set of development
- tools for a specific language will also implement a debug model for that language,
- using an underlying debug architecture of their choice. For example, Java development
- tooling provides an implementation of a debug model based on the standard Java
- Platform Debug Architecture (JPDA).</p>
-
-<h4>The Managers</h4>
-
-<p>The debug platform defines and provides an implementation of the following managers:
-<ul>
- <li>Launch Manager - The launch manager maintains the set of registered launches
- - that is, a collection of programs that have been launched in debuggable
- or non-debuggable (run) mode. Each launch contains its associated debug targets
- and system processes. A launch that represents a debuggable program may specify
- an associated source locator used to locate source elements associated with
- stack frames for a particular debug session. Clients may provide implementations
- of source locators, which are generally tied to the manner in which a program
- is launched.</li>
- <li>Breakpoint Manager - The breakpoint manager maintains, persists, and restores the collection
- of all registered breakpoints in the workspace. As well, it provides change notification for
- breakpoints.</li>
- <li>Expression Manager - The expression manager maintains a collection of registered expressions.
- Expressions are not automatically persisted, but a client could persist its own expressions
- if required.</li>
-</ul>
-<p></p>
-
-<h4>Launch Configurations</h4>
-
-<p>A launch configuration is a persistable description of how to launch an application.
- Each launch configuration is an instance of a type of launch configuration -
- for example, a Java Application. The debug plug-in defines a launch configuration
- type extension point that clients can contribute to. A launch configuration
- is a set of attributes describing how to launch a program. The launching of
- an application is performed by an associated implementation of a launch configuration
- delegate, contributed by each launch configuration type extension.</p>
-<p>A launch configuration may be stored as a file in the worksapce (and shared
- in a repository via standard team mechanisms), or may be stored locally, essentially
- making the launch configuration private for a single user.</p>
-<h4>New Features in the Debug Platform, Eclipse 3.0</h4>
-<blockquote>
- <h4>Extensible Launch Modes</h4>
- <p>The debug platform supports an extensible set of launch modes. Prior releases
- only supported two launch modes - run and debug. The debug platform defines
- an extension point for contributing new launch modes (<code>org.eclipse.debug.core.launchModes)</code>,
- and contributes three basic launch modes itself: run, debug, and profile.
- The launch manager has API to retrieve all launch modes, and a human readable
- label for each launch mode.</p>
- <p>The debug platform has an extension point to support the contribution of
- a launch delegate for a specific launch configuration type and launch mode
- - <code>org.eclipse.debug.core.launchDelegates</code>. This allows launch
- configurations to be extended by third parties, to support new launch modes.
- For example, a client could contribute a launch delegate that launches a Java
- Application in profile mode (currently, the SDK does not provide a Java profiler).</p>
- <p>For backwards compatibility, the launch delegate supplied by a launch configuration
- type extension is used for the launch modes specified by the launch configuration
- type. A launch delegate supplied for a specific mode, is used only for that
- mode.</p>
- <h4>Extensible Debug Events</h4>
- <p>The debug platform supports an extensible set of debug events. A debug event
- kind of <code>MODEL_SPECIFIC</code> has been added to indicate an application
- specific debug event. When a debug event of kind <code>MODEL_SPECIFIC</code>
- is created, the detail code in the event is client defined. The source of
- the event (debug element that generated the event) identifies the debug model
- from which the event was generated. The debug platform and user interface
- ignores model specific debug events.</p>
- <p>A data field has been added to debug events to allow clients to store application
- specific data in debug events.<br>
- </p>
- <h4>Process Factories<br>
- </h4>
- <p>The debug platform provides an extension point (<code>org.eclipse.debug.core.processFactories</code>)
- for contributing process factories. A process factory can be used to override
- default process creation for a launch configuration when the debug plug-in
- creates a new process. A launch configuration can specify a process factory
- to use when creating a process, via the launch configuration attribute<code>
- DebugPlugin.ATTR_PROCESS_FACTORY_ID</code>.</p>
- <h4>Launch Termination Notification<br>
- </h4>
- <p>The debug platform provides a mechanism for launch listeners to be notified
- when a launch terminates. A launch is a container of processes and debug targets.
- When all of the contained targets and processes terminate, a terminate notification
- is sent to those listeners implementing <code>ILaunchesListener2</code>.</p>
- <h4>Breakpoint Manager Enablement<br>
- </h4>
- <p>The breakpoint manager defines the methods <code>setEnabled(boolean)</code>
- and <code>isEnabled()</code>. When the breakpoint manager is disabled, debuggers
- should ignore all registered breakpoints. The debug platform also provides
- a new listener mechanism, <code>IBreakpointManagerListener</code> which allows
- clients to register with the breakpoint manager to be notified when its enablement
- changes.</p>
-</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java
deleted file mode 100644
index 7765824fa..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java
+++ /dev/null
@@ -1,717 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationListener;
-import org.eclipse.debug.core.ILaunchListener;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.IStatusHandler;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.sourcelookup.containers.DefaultSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Directs source lookup among a collection of source lookup participants,
- * and a common collection of source containers.
- * Each source lookup participant is a source locator itself, which allows
- * more than one source locator to participate in source lookup for a
- * launch. Each source lookup participant searches for source in the source
- * containers managed by this director, and each participant is notified
- * of changes in the source containers (i.e. when the set of source
- * containers changes).
- * <p>
- * When a source director is intilaized, it adds it self as a launch listener,
- * and automatically disposes itself when its associated launch is removed
- * from the launch manager. If a source director is instantiated by a client
- * that is not part of a launch, that client is responsible for disposing
- * the source director.
- * </p>
- * <p>
- * This class is yet experimental.
- * </p>
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.model.ISourceLocator
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerType
- * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputer
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant
- */
-public abstract class AbstractSourceLookupDirector implements ISourceLookupDirector, ILaunchConfigurationListener, ILaunchListener {
-
- // source locator type identifire
- protected String fId;
- //ISourceLocatorParticipants that are listening for container changes
- protected ArrayList fParticipants = new ArrayList();
- //list of current source containers
- protected ISourceContainer[] fSourceContainers = null;
- //the launch config associated with this director
- protected ILaunchConfiguration fConfig;
- //whether duplicates should be searched for or not
- protected boolean fDuplicates = false;
- // source path computer, or null if default
- protected ISourcePathComputer fComputer = null;
- /**
- * Cache of resolved source elements when duplicates exist.
- * Keys are the duplicates, values are the source element to use.
- */
- protected Map fResolvedElements = null;
-
- protected static final IStatus fPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 200, "", null); //$NON-NLS-1$//$NON-NLS-2$
- protected static final IStatus fResolveDuplicatesStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 205, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- // XML nodes & attributes for persistence
- protected static final String DIRECTOR_ROOT_NODE = "sourceLookupDirector"; //$NON-NLS-1$
- protected static final String CONTAINERS_NODE = "sourceContainers"; //$NON-NLS-1$
- protected static final String DUPLICATES_ATTR = "duplicates"; //$NON-NLS-1$
- protected static final String CONTAINER_NODE = "container"; //$NON-NLS-1$
- protected static final String CONTAINER_TYPE_ATTR = "typeId"; //$NON-NLS-1$
- protected static final String CONTAINER_MEMENTO_ATTR = "memento"; //$NON-NLS-1$
-
- class SourceLookupQuery implements ISafeRunnable {
-
- private List fSourceElements = new ArrayList();
- private Object fElement = null;
-
- SourceLookupQuery(Object element) {
- fElement = element;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- DebugPlugin.log(exception);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- MultiStatus multiStatus = null;
- CoreException single = null;
- for(int i=0; i < fParticipants.size(); i++) {
- Object[] sourceArray;
- try {
- sourceArray = ((ISourceLookupParticipant)fParticipants.get(i)).findSourceElements(fElement);
- if (sourceArray !=null && sourceArray.length > 0) {
- if (isFindDuplicates()) {
- for(int j=0; j<sourceArray.length; j++)
- if(!checkDuplicate(sourceArray[j], fSourceElements))
- fSourceElements.add(sourceArray[j]);
- } else {
- fSourceElements.add(sourceArray[0]);
- return;
- }
- }
- } catch (CoreException e) {
- if (single == null) {
- single = e;
- } else if (multiStatus == null) {
- multiStatus = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, new IStatus[]{single.getStatus()}, SourceLookupMessages.getString("AbstractSourceLookupDirector.19"), null); //$NON-NLS-1$
- multiStatus.add(e.getStatus());
- } else {
- multiStatus.add(e.getStatus());
- }
- }
- }
- if (fSourceElements.isEmpty()) {
- // throw exception if there was one
- if (multiStatus != null) {
- throw new CoreException(multiStatus);
- } else if (single != null) {
- throw single;
- }
- }
- }
-
- public List getSourceElements() {
- return fSourceElements;
- }
-
- public void dispose() {
- fElement = null;
- fSourceElements = null;
- }
-
- }
-
- /**
- * Constructs source lookup director
- */
- public AbstractSourceLookupDirector() {
- }
-
- /**
- * Sets the type identifier for this source locator's type
- *
- * @param id corresponds to source locator type identifier for a
- * persistable source locator
- */
- public void setId(String id) {
- fId = id;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.IPersistableSourceLocator2#dispose()
- */
- public synchronized void dispose() {
- ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
- launchManager.removeLaunchConfigurationListener(this);
- launchManager.removeLaunchListener(this);
- Iterator iterator = fParticipants.iterator();
- while (iterator.hasNext()) {
- ISourceLookupParticipant participant = (ISourceLookupParticipant) iterator.next();
- //director may also be a participant
- if(participant != this)
- participant.dispose();
- }
- fParticipants.clear();
- if (fSourceContainers != null) {
- for (int i = 0; i < fSourceContainers.length; i++) {
- fSourceContainers[i].dispose();
- }
- }
- fSourceContainers = null;
- fResolvedElements = null;
- }
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Constructs source containers from a list of container mementos.
- *
- * @param list the list of nodes to be parsed
- * @exception CoreException if parsing encounters an error
- * @return a list of source containers
- */
- private List parseSourceContainers(NodeList list) throws CoreException {
- List containers = new ArrayList();
- for (int i=0; i < list.getLength(); i++) {
- if(!(list.item(i).getNodeType() == Node.ELEMENT_NODE))
- continue;
- Element element = (Element)list.item(i);
- String typeId = element.getAttribute(CONTAINER_TYPE_ATTR);
- if (typeId == null || typeId.equals("")) { //$NON-NLS-1$
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.11"), null); //$NON-NLS-1$
- }
- ISourceContainerType type = DebugPlugin.getDefault().getLaunchManager().getSourceContainerType(typeId);
- if(type == null) {
- abort(MessageFormat.format(SourceLookupMessages.getString("AbstractSourceLookupDirector.12"), new String[]{typeId}), null); //$NON-NLS-1$
- }
- String memento = element.getAttribute(CONTAINER_MEMENTO_ATTR);
- if (memento == null || memento.equals("")) { //$NON-NLS-1$
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.13"), null); //$NON-NLS-1$
- }
- ISourceContainer container = type.createSourceContainer(memento);
- containers.add(container);
- }
- return containers;
- }
-
- /**
- * Registers the given source lookup participant. Has no effect if an identical
- * participant is already registered. Paticipants receive notification
- * when the source containers associated with this source director change.
- *
- * @param participant the particiapant to register
- */
- private void addSourceLookupParticipant(ISourceLookupParticipant participant) {
- if (!fParticipants.contains(participant)) {
- fParticipants.add(participant);
- participant.init(this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getSourceContainers()
- */
- public ISourceContainer[] getSourceContainers() {
- if (fSourceContainers == null) {
- return new ISourceContainer[0];
- }
- ISourceContainer[] copy = new ISourceContainer[fSourceContainers.length];
- System.arraycopy(fSourceContainers, 0, copy, 0, fSourceContainers.length);
- return copy;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#isFindDuplicates()
- */
- public boolean isFindDuplicates() {
- return fDuplicates;
- }
-
- /**
- * Sets whether source containers should be searched exhaustively for
- * applicable source elements or if only the first match should be located.
- *
- * @param duplicates whether source containers should be searched exhaustively for
- * applicable source elements or if only the first match should be located
- */
- public void setFindDuplicates(boolean duplicates) {
- fDuplicates = duplicates;
- }
-
- /**
- * Removes the given participant from the list of registered partipants.
- * Has no effect if an identical participant is not already registered.
- *
- * @param participant the participant to remove
- */
- private void removeSourceLookupParticipant(ISourceLookupParticipant participant) {
- if (fParticipants.remove(participant)) {
- participant.dispose();
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- *
- * Updates source containers in repsonse to changes in underlying launch
- * configuration. Only responds to changes in non-working copies.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- if (fConfig == null || configuration.isWorkingCopy()) {
- return;
- }
- if(fConfig.equals(configuration)) {
- try{
- String locatorMemento = configuration.getAttribute(ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO,(String)null);
- if (locatorMemento == null) {
- initializeDefaults(configuration);
- } else {
- initializeFromMemento(locatorMemento, configuration);
- }
- } catch (CoreException e){
- }
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#getMemento()
- */
- public String getMemento() throws CoreException {
- Document doc = DebugPlugin.newDocument();
- Element rootNode = doc.createElement(DIRECTOR_ROOT_NODE);
- doc.appendChild(rootNode);
-
- Element pathNode = doc.createElement(CONTAINERS_NODE);
- if(fDuplicates) {
- pathNode.setAttribute(DUPLICATES_ATTR, "true"); //$NON-NLS-1$
- } else {
- pathNode.setAttribute(DUPLICATES_ATTR, "false"); //$NON-NLS-1$
- }
- rootNode.appendChild(pathNode);
- if(fSourceContainers !=null){
- for(int i=0; i<fSourceContainers.length; i++){
- Element node = doc.createElement(CONTAINER_NODE);
- ISourceContainer container = fSourceContainers[i];
- ISourceContainerType type = container.getType();
- node.setAttribute(CONTAINER_TYPE_ATTR, type.getId());
- node.setAttribute(CONTAINER_MEMENTO_ATTR, type.getMemento(container));
- pathNode.appendChild(node);
- }
- }
- return DebugPlugin.serializeDocument(doc);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#initializeFromMemento(java.lang.String)
- */
- public void initializeFromMemento(String memento) throws CoreException {
- doInitializeFromMemento(memento, true);
- }
-
- /**
- * Initializes this source lookup director from the given memento.
- * Disposes itself before initialization if specified.
- *
- * @param memento source locator memento
- * @param dispose whether to dispose any current source containers and participants
- * before initializing
- * @throws CoreException if an exception occurrs during initialization
- */
- protected void doInitializeFromMemento(String memento, boolean dispose) throws CoreException {
- if (dispose) {
- dispose();
- }
- Element rootElement = DebugPlugin.parseDocument(memento);
- if (!rootElement.getNodeName().equalsIgnoreCase(DIRECTOR_ROOT_NODE)) {
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.14"), null); //$NON-NLS-1$
- }
- NodeList list = rootElement.getChildNodes();
- int length = list.getLength();
- for (int i = 0; i < length; ++i) {
- Node node = list.item(i);
- short type = node.getNodeType();
- if (type == Node.ELEMENT_NODE) {
- Element entry = (Element) node;
- if(entry.getNodeName().equalsIgnoreCase(CONTAINERS_NODE)){
- setFindDuplicates("true".equals(entry.getAttribute(DUPLICATES_ATTR))); //$NON-NLS-1$
- NodeList children = entry.getChildNodes();
- List containers = parseSourceContainers(children);
- setSourceContainers((ISourceContainer[]) containers.toArray(new ISourceContainer[containers.size()]));
- }
- }
- }
- initializeParticipants();
- }
-
- /**
- * Sets the source containers used by this source lookup
- * director.
- *
- * @param containers source containers to search
- */
- public void setSourceContainers(ISourceContainer[] containers) {
- ISourceContainer[] old = getSourceContainers();
- for (int i = 0; i < old.length; i++) {
- old[i].dispose();
- }
- fSourceContainers = containers;
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- container.init(this);
- }
- // clear resolved duplicates
- fResolvedElements = null;
- // notify participants
- ISourceLookupParticipant[] participants = getParticipants();
- for (int i = 0; i < participants.length; i++) {
- ISourceLookupParticipant participant = participants[i];
- participant.sourceContainersChanged(this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ISourceLocator#getSourceElement(org.eclipse.debug.core.model.IStackFrame)
- * Would be better to accept Object so this can be used for breakpoints and other objects.
- */
- public Object getSourceElement(IStackFrame stackFrame) {
- return getSourceElement((Object)stackFrame);
- }
-
- /**
- * Performs a source lookup query for the given element
- * returning the source elements associated with the element.
- *
- * @param element stack frame
- * @return list of associated source elements
- */
- protected List doSourceLookup(Object element) {
- SourceLookupQuery query = new SourceLookupQuery(element);
- Platform.run(query);
- List sources = query.getSourceElements();
- query.dispose();
- return sources;
- }
-
- /**
- * Returns the source element to associate with the given element.
- * This method is called when more than one source element has been found
- * for an element, and allows the source director to select a single
- * source element to associate with the element.
- * <p>
- * Subclasses should override this method as appropriate. For example,
- * to prompt the user to choose a source element.
- * </p>
- * @param element the debug artifact for which source is being searched for
- * @param sources the source elements found for the given element
- * @return a single source element for the given element
- */
- public Object resolveSourceElement(Object element, List sources) {
- // check the duplicates cache first
- Iterator duplicates = sources.iterator();
- while (duplicates.hasNext()) {
- Object dup = duplicates.next();
- Object resolved = getCachedElement(dup);
- if (resolved != null) {
- return resolved;
- }
- }
- // consult a status handler
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(fPromptStatus);
- if (prompter != null) {
- try {
- Object result = prompter.handleStatus(fResolveDuplicatesStatus, new Object[]{element, sources});
- if (result != null) {
- cacheResolvedElement(sources, result);
- return result;
- }
- } catch (CoreException e) {
- }
- }
- return sources.get(0);
- }
-
- /**
- * Checks if the object being added to the list of sources is a duplicate of what's already in the list
- * @param sourceToAdd the new source file to be added
- * @param sources the list that the source will be compared against
- * @return true if it is already in the list, false if it is a new object
- */
- private boolean checkDuplicate(Object sourceToAdd, List sources){
- if(sources.size() == 0)
- return false;
- Iterator iterator = sources.iterator();
- while(iterator.hasNext())
- if(iterator.next().equals(sourceToAdd))
- return true;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.IPersistableSourceLookupDirector#initializeFromMemento(java.lang.String, org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void initializeFromMemento(String memento, ILaunchConfiguration configuration) throws CoreException {
- dispose();
- setLaunchConfiguration(configuration);
- doInitializeFromMemento(memento, false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#initializeDefaults(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void initializeDefaults(ILaunchConfiguration configuration) throws CoreException {
- dispose();
- setLaunchConfiguration(configuration);
- setSourceContainers(new ISourceContainer[]{new DefaultSourceContainer()});
- initializeParticipants();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getLaunchConfiguration()
- */
- public ILaunchConfiguration getLaunchConfiguration() {
- return fConfig;
- }
-
- /**
- * Sets the launch configuration associated with this source lookup
- * director. If the given configuration is a working copy, this director
- * will respond to changes the working copy. If the given configuration
- * is a persisted launch configration, this director will respond to changes
- * in the persisted launch configuration.
- *
- * @param configuration launch configuration to associate with this
- * source lookup director, or <code>null</code> if none
- */
- protected void setLaunchConfiguration(ILaunchConfiguration configuration) {
- fConfig = configuration;
- ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
- launchManager.addLaunchConfigurationListener(this);
- launchManager.addLaunchListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchAdded(org.eclipse.debug.core.ILaunch)
- */
- public void launchAdded(ILaunch launch) {
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchChanged(org.eclipse.debug.core.ILaunch)
- */
- public void launchChanged(ILaunch launch) {
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchRemoved(org.eclipse.debug.core.ILaunch)
- */
- public void launchRemoved(ILaunch launch) {
- if (this.equals(launch.getSourceLocator())) {
- dispose();
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getParticipants()
- */
- public ISourceLookupParticipant[] getParticipants() {
- return (ISourceLookupParticipant[]) fParticipants.toArray(new ISourceLookupParticipant[fParticipants.size()]);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#supportsSourceContainerType(org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType)
- */
- public boolean supportsSourceContainerType(ISourceContainerType type) {
- return true;
- }
-
- /**
- * Caches the resolved source element to use when one of the following
- * duplicates is found.
- *
- * @param duplicates duplicates source elemnets
- * @param sourceElement chosen source element to use in place of the
- * duplicates
- */
- protected void cacheResolvedElement(List duplicates, Object sourceElement) {
- if (fResolvedElements == null) {
- fResolvedElements = new HashMap(10);
- }
- Iterator iterator = duplicates.iterator();
- while (iterator.hasNext()) {
- Object dup = iterator.next();
- fResolvedElements.put(dup, sourceElement);
- }
-
- }
-
- /**
- * Returns the cached source element to use when the given duplicate
- * is encountered.
- *
- * @param duplicate duplicates source element
- * @return element to use in the duplicate's place
- */
- protected Object getCachedElement(Object duplicate) {
- if (fResolvedElements != null) {
- return fResolvedElements.get(duplicate);
- }
- return null;
- }
-
- /**
- * Clears any cached source element associated with the given duplicate
- * is source elemnet.
- *
- * @param duplicate duplicate source element to cache resolved results
- * for
- */
- protected void clearCachedElement(Object duplicate) {
- if (fResolvedElements != null) {
- fResolvedElements.remove(duplicate);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#clearSourceElements(java.lang.Object)
- */
- public void clearSourceElements(Object element) {
- List list = doSourceLookup(element);
- if (list.size() > 0) {
- Iterator iterator = list.iterator();
- while (iterator.hasNext()) {
- clearCachedElement(iterator.next());
- }
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#addParticipants(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant[])
- */
- public void addParticipants(ISourceLookupParticipant[] participants) {
- for (int i = 0; i < participants.length; i++) {
- ISourceLookupParticipant participant = participants[i];
- addSourceLookupParticipant(participant);
- participant.sourceContainersChanged(this);
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#removeParticipants(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant[])
- */
- public void removeParticipants(ISourceLookupParticipant[] participants) {
- for (int i = 0; i < participants.length; i++) {
- removeSourceLookupParticipant(participants[i]);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getId()
- */
- public String getId() {
- return fId;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#getSourcePathComputer()
- */
- public ISourcePathComputer getSourcePathComputer() {
- if (fComputer == null && getLaunchConfiguration() != null) {
- try {
- return DebugPlugin.getDefault().getLaunchManager().getSourcePathComputer(getLaunchConfiguration());
- } catch (CoreException e) {
- }
- }
- return fComputer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#setSourcePathComputer(org.eclipse.debug.core.sourcelookup.ISourcePathComputer)
- */
- public void setSourcePathComputer(ISourcePathComputer computer) {
- fComputer = computer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#findSourceElements(java.lang.Object)
- */
- public Object[] findSourceElements(Object object) throws CoreException {
- SourceLookupQuery query = new SourceLookupQuery(object);
- Platform.run(query);
- List sources = query.getSourceElements();
- query.dispose();
- return sources.toArray();
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#getSourceElement(java.lang.Object)
- */
- public synchronized Object getSourceElement(Object element) {
- List sources = doSourceLookup(element);
- if(sources.size() == 1) {
- return sources.get(0);
- } else if(sources.size() > 1) {
- return resolveSourceElement(element, sources);
- } else {
- return null;
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java
deleted file mode 100644
index 8e54d1199..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- * Common super class for implementations of source lookup participants.
- * <p>
- * Clients implementing source lookup participants should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceLookupParticipant implements ISourceLookupParticipant {
-
- private ISourceLookupDirector fDirector;
-
- protected static final Object[] EMPTY = new Object[0];
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#init(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- fDirector = director;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#dispose()
- */
- public void dispose() {
- fDirector = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#findSourceElements(java.lang.Object)
- */
- public Object[] findSourceElements(Object object) throws CoreException {
- List results = null;
- if (isFindDuplicates()) {
- results = new ArrayList();
- }
- String name = getSourceName(object);
- if (name != null) {
- ISourceContainer[] containers = getSourceContainers();
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = getDelegateContainer(containers[i]);
- if (container != null) {
- Object[] objects = container.findSourceElements(name);
- if (objects.length > 0) {
- if (isFindDuplicates()) {
- for (int j = 0; j < objects.length; j++) {
- results.add(objects[j]);
- }
- } else {
- if (objects.length == 1) {
- return objects;
- }
- return new Object[]{objects[0]};
- }
- }
- }
- }
- }
- if (results == null) {
- return EMPTY;
- }
- return results.toArray();
- }
-
- /**
- * Returns the source container to search in place of the given source
- * container, or <code>null</code> if the given source container is not
- * to be searched. The default implementation does not translate source
- * containers. Subclasses should override if required.
- *
- * @param container the source container about to be searched (proxy)
- * @return the source container to be searched (delegate), or <code>null</code>
- * if the source container should not be searched
- */
- protected ISourceContainer getDelegateContainer(ISourceContainer container) {
- return container;
- }
-
- /**
- * Returns the source lookup director this participant is registered with
- * or <code>null</code> if none.
- *
- * @return the source lookup director this participant is registered with
- * or <code>null</code> if none
- */
- protected ISourceLookupDirector getDirector() {
- return fDirector;
- }
-
- /**
- * Returns whether this participant's source lookup director is configured
- * to search for duplicate source elements.
- *
- * @return whether this participant's source lookup director is configured
- * to search for duplicate source elements
- */
- protected boolean isFindDuplicates() {
- return getDirector().isFindDuplicates();
- }
-
- /**
- * Returns the source containers currently registered with this participant's
- * source lookup director.
- *
- * @return the source containers currently registered with this participant's
- * source lookup director
- */
- protected ISourceContainer[] getSourceContainers() {
- return getDirector().getSourceContainers();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#sourceContainersChanged(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void sourceContainersChanged(ISourceLookupDirector director) {
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java
deleted file mode 100644
index 2e986321a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-
-/**
- * Extensions to the <code>IPersistableSourceLocator</code> interface.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- * @since 3.0
- */
-public interface IPersistableSourceLocator2 extends IPersistableSourceLocator {
-
- /**
- * Initializes this source locator based on the given
- * memento, for the given launch configuration. This method
- * is called instead of <code>initializeFrom(String memento)</code>
- * defined in <code>IPersistableSourceLocator</code> when a source
- * locator implements this interface.
- *
- * @param memento a memento to initialize this source locator
- * @param configuration the launch configuration this source locator is
- * being created for
- * @exception CoreException on failure to initialize
- */
- public void initializeFromMemento(String memento, ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Disposes this source locator. This method is called when a source
- * locator's associated launch is removed from the launch manager.
- */
- public void dispose();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java
deleted file mode 100644
index ee146a7f2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * A source container is a container of source code. A source container is
- * capable of searching for source elements by name. For example, a source
- * container may be a project or a directory capable of searching for files
- * by name. A source container may be a composite container - i.e. contain
- * other source containers.
- * <p>
- * When a source container is created and added to a source director, the
- * source container's <code>dispose()</code> method is called when the
- * source director is disposed. Clients creating source containers for other
- * purposes must dispose of containers themselves.
- * </p>
- *
- * @see ISourceLookupParticipant
- * @see ISourceContainerType
- * @since 3.0
- */
-public interface ISourceContainer extends IAdaptable {
-
- /**
- * Notifiation this source container has been added to the given
- * source lookup director.
- *
- * @param director the director this container has been added to
- */
- public void init(ISourceLookupDirector director);
-
- /**
- * Returns a collection of source elements in this container corresponding to the
- * given name. Returns an empty collection if no source elements are found.
- * This source container's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element. If this is a composite container, the containers contained
- * by this container are also searched.
- * <p>
- * The format of the given name is implementation specific but generally conforms
- * to the format of a file name. If a source container does not recognize the
- * name format provided, an empty collection should be returned. A source container
- * may or may not require names to be fully qualified (i.e. be qualified with directory
- * names).
- * </p>
- * @param name the name of the source element to search for
- * @return a collection of source elements corresponding to the given name
- * @exception CoreException if an exception occurrs while searching for source elements
- */
- public Object[] findSourceElements(String name) throws CoreException;
-
- /**
- * The name of this source container that can be used for presentation purposes.
- * For example, the name of a project.
- *
- * @return the name of this source container
- */
- public String getName();
-
- /**
- * Returns the source containers this container is composed of. An empty
- * collection is returned if this container is not a composite container.
- * For example, a workspace source container may be composed of project source
- * containers.
- *
- * @return the source containers this container is composed of, possibly
- * an empty collection
- * @exception CoreException if unable to retrieve source containers
- */
- public ISourceContainer[] getSourceContainers() throws CoreException;
-
- /**
- * Returns whether this container is a composite container. A composite
- * container is composed of other source containers. For example, a workspace
- * source container may be composed of project source containers.
- *
- * @return whether this container is a composite container
- */
- public boolean isComposite();
-
- /**
- * Returns this container's type.
- *
- * @return this container's type
- */
- public ISourceContainerType getType();
-
- /**
- * Disposes this source container. This method is called when the source
- * director associated with this source container is disposed.
- */
- public void dispose();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java
deleted file mode 100644
index b788d8963..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-
-
-/**
- * A source container type represents a kind of container of source code.
- * For example, a source container type may be a project or a directory. A specific
- * project or directory is represented by an instance of a source container type,
- * which is called a source container (<code>ISourceContainer</code>).
- * <p>
- * A source container type is contributed via the <code>sourceContainerTypes</code>
- * extension point, providing a delegate to the work specific to the contributed
- * type. Following is an example contribution.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.sourceContainerTypes&quot;&gt;
- * &lt;sourceContainerType
- * name=&quot;Project&quot;
- * class=&quot;org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType&quot;
- * id=&quot;org.eclipse.debug.core.containerType.project&quot;
- * description=&quot;A project in the workspace&quot;&gt;
- * &lt;/sourceContainerType&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate
- * @since 3.0
- */
-public interface ISourceContainerType extends ISourceContainerTypeDelegate {
-
- /**
- * Returns the name of this source container type that can be used for
- * presentation purposes. For example, <code>Working Set</code> or
- * <code>Project</code>. The value returned is
- * identical to the name specified in plugin.xml by the <code>name</code>
- * attribute.
- *
- * @return the name of this source container type
- */
- public String getName();
-
- /**
- * Returns the unique identifier associated with this source container type.
- * The value returned is identical to the identifier specified in plugin.xml by
- * the <code>id</code> attribute.
- *
- * @return the unique identifier associated with this source container type
- */
- public String getId();
-
- /**
- * Returns a short description of this source container type that can be used
- * for presenetation purposes, or <code>null</code> if none.
- *
- * @return a short description of this source container type, or <code>null</code>
- */
- public String getDescription();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java
deleted file mode 100644
index 75ca4a2ba..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A source container type delegate represents a kind of container of source code.
- * For example, a source container type may be a project or a directory. A specific
- * project or directory is represented by an instance of a source container type,
- * which is called a source container (<code>ISourceContainer</code>).
- * <p>
- * A source container type delegate is contributed via the
- * <code>sourceContainerTypes</code> extension point.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerType
- * @since 3.0
- */
-public interface ISourceContainerTypeDelegate {
-
- /**
- * Creates and returns a new source container of this type
- * corresponding to the given memento.
- *
- * @param memento a memento for a source conatiner of this source container type
- * @return a source container corresponding to the given memento
- * @exception CoreException if unable to construct a source container based
- * on the given memento
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException;
-
- /**
- * Constructs and returns a memento for the given source container. A memento
- * can be used to reconstruct a source container.
- *
- * @param container The container for which a memento should be created. The
- * container must of this source container type.
- * @return a memento for the source container
- * @exception CoreException if unable to create a memento
- */
- public String getMemento(ISourceContainer container) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java
deleted file mode 100644
index 5cc46ab9a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source lookup director directs the source lookup process
- * among a set of participants and source containers.
- * <p>
- * Clients may implement this interface. An astract implementation
- * is provided by <code>AbstractSourceLookupDirector</code>, which
- * clients should subclass.
- * </p>
- * @since 3.0
- */
-public interface ISourceLookupDirector extends IPersistableSourceLocator2 {
-
- /**
- * Returns the launch configuration associated with this source
- * lookup director, or <code>null</code> if none.
- *
- * @return the launch configuration associated with this source
- * lookup director, or <code>null</code> if none
- */
- public ILaunchConfiguration getLaunchConfiguration();
-
- /**
- * Returns the source lookup participants currently registered with
- * this director, possibly an empty collection.
- *
- * @return the source lookup participants currently registered with
- * this director, possibly an empty collection
- */
- public ISourceLookupParticipant[] getParticipants();
-
- /**
- * Returns the source containers currently registered with this
- * director, possibly an empty collection.
- *
- * @return the source containers currently registered with this
- * director, possibly an empty collection
- */
- public ISourceContainer[] getSourceContainers();
-
- /**
- * Sets the source containers this source lookup director
- * should search when looking for source, possibly an empty collection.
- *
- * @param containers the source containers this source lookup director
- * should search when looking for source, possibly an empty collection
- */
- public void setSourceContainers(ISourceContainer[] containers);
-
- /**
- * Returns whether to search exhaustively for all source elements
- * with the same name in all registered source containers, or
- * whether to stop searching when the first source element matching
- * the required name is found.
- *
- * @return whether to search exhaustively for all source elements
- * with the same name
- */
- public boolean isFindDuplicates();
-
- /**
- * Sets whether to search exhaustively for all source elements
- * with the same name in all registered source containers, or
- * whether to stop searching when the first source element matching
- * the required name is found.
- *
- * @param findDuplicates whether to search exhaustively for all source elements
- * with the same name
- */
- public void setFindDuplicates(boolean findDuplicates);
-
- /**
- * Notifies this source lookup director that it should initialize
- * its set of source lookup participants.
- */
- public void initializeParticipants();
-
- /**
- * Returns whether this source director supports the given type
- * of source location.
- *
- * @param type source container type
- * @return whether this source director supports the given type
- * of source location
- */
- public boolean supportsSourceContainerType(ISourceContainerType type);
-
- /**
- * Clears any source lookup results associated with the given
- * debug artifact, such that a subsequent lookup will force a new search
- * to be performed.
- *
- * @param element debug artifact to clear source lookup results for
- */
- public void clearSourceElements(Object element);
-
- /**
- * Adds the given source lookup participants to this director.
- *
- * @param participants participants to add
- */
- public void addParticipants(ISourceLookupParticipant[] participants);
-
- /**
- * Removes the given source lookup participants from this director.
- *
- * @param participants participants to remove
- */
- public void removeParticipants(ISourceLookupParticipant[] participants);
-
- /**
- * Returns the identifier of this type of source locator.
- *
- * @return the identifier of this type of source locator
- */
- public String getId();
-
- /**
- * Returns the source path computer to use with this source lookup
- * director, possibly <code>null</code>. By default, the source path
- * computer returned is the one associated with this director's launch
- * configuration's type. However, the source path computer can be specified
- * programmatically by calling <code>setSourcePathComputer(...)</code>.
- *
- * @return the source path computer to use with this source lookup
- * director, possibly <code>null</code>
- */
- public ISourcePathComputer getSourcePathComputer();
-
- /**
- * Sets the source path computer for this source lookup director.
- * This method can be used to override the default source path computer
- * for a launch configuration type. When <code>null</code> is specified
- * the default source path computer will be used (i.e. the one assocaited
- * with this director's launch configuration's type).
- *
- * @param computer source path computer or <code>null</code>
- */
- public void setSourcePathComputer(ISourcePathComputer computer);
-
- /**
- * Returns a collection of source elements corresponding to the given debug
- * artifact (for example, a stack frame or breakpoint). Returns an empty
- * collection if no source elements are found.
- * This participant's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element.
- *
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return a collection of source elements corresponding to the given
- * debug artifact, possibly empty
- * @exception CoreException if an exception occurrs while searching for source
- */
- public Object[] findSourceElements(Object object) throws CoreException;
-
- /**
- * Returns a source element that corresponds to the given debug artifact, or
- * <code>null</code> if a source element could not be located. This is a
- * generalization of <code>getSourceElement(IStackFrame)</code> to allow
- * source to be found for other types of elements.
- *
- * @param element the debug artifact for which to locate source
- * @return an object representing a source element.
- */
- public Object getSourceElement(Object element);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java
deleted file mode 100644
index 34aa354ff..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A source lookup participant participates in source lookup by searching an ordered
- * list of source containers for source elements corresponding to a debug artifact.
- * For example, a participant may be asked to find source corresponding to a stack
- * frame or breakpoint. An implementation of a source lookup participant is debug
- * model specific, since it must convert the debug model artifact (stack frame,
- * breakpoint, etc.), into a source name that can be recognized by a source container
- * (<code>ISourceContainer</code>), to search for source elements. Source containers
- * are generally debug model independent, whereas source lookup participants are
- * debug model specific.
- * <p>
- * Clients may implement this interface. An abstract implementation is
- * provided by <code>AbstractSourceLookupParticipant</code>, which clients
- * should subclass.
- * </p>
- * @since 3.0
- */
-public interface ISourceLookupParticipant {
-
- /**
- * Notification this participant has been added to the specified
- * source lookup director.
- *
- * @param director the source lookup director that this participant
- * has been added to
- */
- public void init(ISourceLookupDirector director);
-
- /**
- * Returns a collection of source elements corresponding to the given debug
- * artifact (for example, a stack frame or breakpoint). Returns an empty
- * collection if no source elements are found.
- * This participant's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element.
- * <p>
- * If the given debug artifact is not recognized by this participant, an empty
- * collection is returned. Otherwise, this participant generates a source name
- * from the given artifact and performs a search for associated source elements
- * in its source containers.
- * </p>
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return a collection of source elements corresponding to the given
- * debug artifact, possibly empty
- * @exception CoreException if an exception occurrs while searching for source
- */
- public Object[] findSourceElements(Object object) throws CoreException;
-
- /**
- * Returns the source file name associated with the given debug artifact that
- * source needs to be found for, or <code>null</code> if none.
- *
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return the source file name associated with the given debug artifact,
- * or <code>null</code> if none.
- * @throws CoreException if unable to determine a source file name
- */
- public String getSourceName(Object object) throws CoreException;
-
- /**
- * Disposes this source lookup participant. This method is called when
- * the source lookup director assocaited with this participant is
- * disposed.
- */
- public void dispose();
-
- /**
- * Notification that the source lookup containers in the given source
- * lookup director have changed.
- *
- * @param director source lookup director that is directing this
- * participant
- */
- public void sourceContainersChanged(ISourceLookupDirector director);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java
deleted file mode 100644
index 39e7467ca..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * A source path computer computes the default source lookup path (set of source
- * containers that should be considered) for a launch configuration.
- * <p>
- * A source path computer is contributed in plug-in XML via the
- * <code>sourcePathComputers</code> extension point, that provides a delegate
- * to compute the path specific to a launch configuration. Following
- * is an example contribution.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.sourcePathComputers&quot;&gt;
- * &lt;sourcePathComputer
- * id=&quot;org.eclipse.example.exampleSourcePathComputer&quot;
- * class=&quot;org.eclipse.example.SourcePathComputer&quot;&gt;
- * &lt;/sourcePathComputer&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * A source path computer can be associated with a launch configuration type
- * via the <code>sourcePathComputerId</code> attribute of a launch configuration
- * type extension. As well, a launch configuration can specify its own
- * source path computer to use via the <code>ATTR_SOURCE_PATH_COMPUTER_ID</code>
- * attribute.
- * </p>
- * @since 3.0
- */
-public interface ISourcePathComputer extends ISourcePathComputerDelegate {
-
- /**
- * Launch configuration attribute to specify a source path computer
- * that should be used for a launch configuration. The value is an identifer
- * of a source path computer extension, or unspecified (<code>null</code>), if the
- * default source path computer should be used. A default source path computer
- * can be associated with a launch configuration type.
- */
- public static final String ATTR_SOURCE_PATH_COMPUTER_ID = DebugPlugin.getUniqueIdentifier() + ".SOURCE_PATH_COMPUTER_ID"; //$NON-NLS-1$
-
- /**
- * Returns the unique identifier for this source path computer.
- *
- * @return the unique identifier for this source path computer
- */
- public String getId();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java
deleted file mode 100644
index c65ec91c9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source path computer delegate computes the default source lookup path
- * (set of source containers that should be considered) for a launch
- * configuration.
- * <p>
- * A source path computer is contributed in plug-in XML via the
- * <code>sourcePathComputers</code> extension point, providing a delegate
- * to compute the default source lookup path specific to a launch
- * configuration.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputer
- * @since 3.0
- */
-public interface ISourcePathComputerDelegate {
-
- /**
- * Returns a default collection source containers to be considered for the
- * given launch configuration. The collection returned represents the default
- * source lookup path for the given configuration.
- *
- * @param configuration the launch configuration for which a default source lookup path
- * is to be computed
- * @param monitor a progress monitor to be used in case of long operations
- * @return a default collection source containers to be considered for the
- * given launch configuration
- * @exception CoreException if unable to compute a default source lookup path
- */
- public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java
deleted file mode 100644
index 09c40c345..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-
-/**
- * Common function for source containers.
- * <p>
- * Clients implementing source containers should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceContainer extends PlatformObject implements ISourceContainer {
-
- public static final Object[] EMPTY = new Object[0];
-
- private ISourceLookupDirector fDirector;
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /* (non-Javadoc)
- *
- * By default, do nothing. Subclasses should override as requried.
- *
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- fDirector = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getSourceContainers()
- */
- public ISourceContainer[] getSourceContainers() throws CoreException {
- return new ISourceContainer[0];
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#init(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- fDirector = director;
- }
-
- /**
- * Returns the source lookup director this source container registered
- * in, or <code>null</code> if none.
- *
- * @return the source lookup director this source container registered
- * in, or <code>null</code> if none
- */
- protected ISourceLookupDirector getDirector() {
- return fDirector;
- }
-
- /**
- * Returns whether this container's source lookup director is configured
- * to search for duplicate source elements.
- *
- * @return whether this container's source lookup director is configured
- * to search for duplicate source elements
- */
- protected boolean isFindDuplicates() {
- return getDirector().isFindDuplicates();
- }
-
- /**
- * Returns the source container type identified by the given id,
- * or <code>null</code> if none.
- *
- * @param id source container type identifier
- * @return source container type or <code>null</code>
- */
- protected ISourceContainerType getSourceContainerType(String id) {
- return DebugPlugin.getDefault().getLaunchManager().getSourceContainerType(id);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java
deleted file mode 100644
index 9d07e21c9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Common function for source container type delegates.
- * <p>
- * Clients implementing source container delegates should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceContainerTypeDelegate implements ISourceContainerTypeDelegate {
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Creates and returns a new XML document.
- *
- * @return a new XML document
- * @throws CoreException if unable to create a new document
- */
- protected Document newDocument()throws CoreException {
- return DebugPlugin.newDocument();
- }
-
- /**
- * Returns the given XML document as a string.
- *
- * @param document document to serialize
- * @return the given XML document as a string
- * @throws CoreException if unable to serialize the document
- */
- protected String serializeDocument(Document document) throws CoreException {
- return DebugPlugin.serializeDocument(document);
- }
-
- /**
- * Parses the given XML document, returning its root element.
- *
- * @param document XML document as a string
- * @return the document's root element
- * @throws CoreException if unable to parse the document
- */
- protected Element parseDocument(String document) throws CoreException {
- return DebugPlugin.parseDocument(document);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java
deleted file mode 100644
index 0d311228a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-
-/**
- * Archive source container for an archive in the workspace. Returns instances
- * of <code>ZipEntryStorage</code> as source elemetns.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ArchiveSourceContainer extends AbstractSourceContainer {
-
- private IFile fFile;
- private boolean fDetectRoot;
- private ExternalArchiveSourceContainer fDelegateContainer;
-
- /**
- * Unique identifier for the archive source container type
- * (value <code>org.eclipse.debug.core.containerType.archive</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.archive"; //$NON-NLS-1$
-
- /**
- * Creates an archive source container on the given file.
- *
- * @param archive archive in the workspace
- * @param detectRootPath whether a root path should be detected. When
- * <code>true</code>, searching is performed relative to a root path
- * within the archive based on fully qualified file names. The root
- * path is automatically determined when the first successful search
- * is performed. For example, when searching for a file named
- * <code>a/b/c.d</code>, and an entry in the archive named
- * <code>r/a/b/c.d</code> exists, the root path is set to <code>r</code>.
- * From that point on, searching is performed relative to <code>r</code>.
- * When <code>false</code>, searching is performed by
- * matching file names as suffixes to the entries in the archive.
- */
- public ArchiveSourceContainer(IFile archive, boolean detectRootPath) {
- fFile = archive;
- fDetectRoot = detectRootPath;
- if (archive.exists() && archive.getLocation() != null) {
- fDelegateContainer = new ExternalArchiveSourceContainer(archive.getLocation().toOSString(), detectRootPath);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fFile.getName();
- }
-
- /**
- * Returns the associated file in the workspace.
- *
- * @return associated file in the workspace
- */
- public IFile getFile() {
- return fFile;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof ArchiveSourceContainer &&
- ((ArchiveSourceContainer)obj).getName().equals(getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getName().hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- ExternalArchiveSourceContainer container = getDelegateContainer();
- if (container != null) {
- return container.findSourceElements(name);
- }
- return EMPTY;
- }
-
- /**
- * Returns the underlying external archive source container.
- *
- * @return underlying external archive source container
- * @since 3.0.1.1
- */
- private ExternalArchiveSourceContainer getDelegateContainer() {
- return fDelegateContainer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#init(org.eclipse.debug.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- super.init(director);
- if (fDelegateContainer != null) {
- fDelegateContainer.init(director);
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- if (fDelegateContainer != null) {
- fDelegateContainer.dispose();
- }
- }
-
- /**
- * Returns whether root paths are automatically detected in this
- * archive source container.
- *
- * @return whether root paths are automatically detected in this
- * archive source container
- * @since 3.0.1.1
- */
- public boolean isDetectRoot() {
- return fDetectRoot;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java
deleted file mode 100644
index 7ab80f92c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * A source container of source containers.
- * <p>
- * Clients implementing composite source containers should subclass
- * this class.
- * </p>
- * @since 3.0
- */
-public abstract class CompositeSourceContainer extends AbstractSourceContainer {
-
- private ISourceContainer[] fContainers;
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- return findSourceElements(name, getSourceContainers());
- }
-
- /**
- * Returns a collection of source elements in the given containers corresponding to
- * the given name. Returns an empty collection if no source elements are found.
- * This source container's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element. If this is a composite container, the containers contained
- * by this container are also searched.
- * <p>
- * The format of the given name is implementation specific but generally conforms
- * to the format of a file name. If a source container does not recognize the
- * name format provided, an empty collection should be returned. A source container
- * may or may not require names to be fully qualified (i.e. be qualified with directory
- * names).
- * </p>
- * @param name the name of the source element to search for
- * @param containers the containers to search
- * @return a collection of source elements corresponding to the given name
- * @exception CoreException if an exception occurrs while searching for source elements
- */
- protected Object[] findSourceElements(String name, ISourceContainer[] containers) throws CoreException {
- List results = null;
- CoreException single = null;
- MultiStatus multiStatus = null;
- if (isFindDuplicates()) {
- results = new ArrayList();
- }
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- try {
- Object[] objects = container.findSourceElements(name);
- if (objects.length > 0) {
- if (isFindDuplicates()) {
- for (int j = 0; j < objects.length; j++) {
- results.add(objects[j]);
- }
- } else {
- if (objects.length == 1) {
- return objects;
- }
- return new Object[]{objects[0]};
- }
- }
- } catch (CoreException e) {
- if (single == null) {
- single = e;
- } else if (multiStatus == null) {
- multiStatus = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, new IStatus[]{single.getStatus()}, SourceLookupMessages.getString("CompositeSourceContainer.0"), null); //$NON-NLS-1$
- multiStatus.add(e.getStatus());
- } else {
- multiStatus.add(e.getStatus());
- }
- }
- }
- if (results == null) {
- if (multiStatus != null) {
- throw new CoreException(multiStatus);
- } else if (single != null) {
- throw single;
- }
- return EMPTY;
- }
- return results.toArray();
- }
-
- /**
- * Creates the source containers in this composite container.
- * Subclasses should override this methods.
- *
- * @throws CoreException if unable to create the containers
- */
- protected abstract ISourceContainer[] createSourceContainers() throws CoreException;
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getSourceContainers()
- */
- public synchronized ISourceContainer[] getSourceContainers() throws CoreException {
- if (fContainers == null) {
- fContainers = createSourceContainers();
- for (int i = 0; i < fContainers.length; i++) {
- ISourceContainer container = fContainers[i];
- container.init(getDirector());
- }
- }
- return fContainers;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- if (fContainers != null) {
- for (int i = 0; i < fContainers.length; i++) {
- ISourceContainer container = fContainers[i];
- container.dispose();
- }
- }
- fContainers = null;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java
deleted file mode 100644
index f3f5c6b82..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * A source container that computers the default source lookup path
- * for a launch configuration on each launch using a launch configuration's
- * associated source path computer.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class DefaultSourceContainer extends CompositeSourceContainer {
-
- /**
- * Unique identifier for the default source container type
- * (value <code>org.eclipse.debug.core.containerType.default</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.default"; //$NON-NLS-1$
-
- /**
- * Constructs a default source container.
- */
- public DefaultSourceContainer() {
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof DefaultSourceContainer;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getClass().hashCode();
- }
-
- /**
- * Returns the launch configuration for which a default source lookup
- * path will be computed, or <code>null</code> if none.
- *
- * @return the launch configuration for which a default source lookup
- * path will be computed, or <code>null</code>
- */
- protected ILaunchConfiguration getLaunchConfiguration() {
- ISourceLookupDirector director = getDirector();
- if (director != null) {
- return director.getLaunchConfiguration();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /**
- * Returns the source path computer to use, or <code>null</code>
- * if none.
- *
- * @return the source path computer to use, or <code>null</code>
- * if none
- */
- private ISourcePathComputer getSourcePathComputer() {
- return getDirector().getSourcePathComputer();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return SourceLookupMessages.getString("DefaultSourceContainer.0"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- ISourcePathComputer sourcePathComputer = getSourcePathComputer();
- if (sourcePathComputer == null) {
- return new ISourceContainer[0];
- }
- return sourcePathComputer.computeSourceContainers(getLaunchConfiguration(), null);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java
deleted file mode 100644
index a6d85e83c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-
-/**
- * A directory in the local file system. Source elements returned
- * from <code>findSourceElements(...)</code> are instances
- * of <code>LocalFileStorage</code>.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-
-public class DirectorySourceContainer extends CompositeSourceContainer {
-
- // root directory
- private File fDirectory;
- // whether to search subfolders
- private boolean fSubfolders = false;
- /**
- * Unique identifier for the directory source container type
- * (value <code>org.eclipse.debug.core.containerType.directory</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.directory"; //$NON-NLS-1$
-
- /**
- * Consutructs an external folder container for the
- * directory identified by the given path.
- *
- * @param dirPath path to a directory in the local file system
- * @param subfolders whether folders within the root directory
- * should be searched for source elements
- */
- public DirectorySourceContainer(IPath dirPath, boolean subfolders) {
- this(dirPath.toFile(), subfolders);
- }
-
- /**
- * Consutructs an external folder container for the
- * directory identified by the given file.
- *
- * @param dir a directory in the local file system
- * @param subfolders whether folders within the root directory
- * should be searched for source elements
- */
- public DirectorySourceContainer(File dir, boolean subfolders) {
- fDirectory = dir;
- fSubfolders = subfolders;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fDirectory.getName();
- }
-
- /**
- * Returns the root directory in the local file system associated
- * with this source container.
- *
- * @return the root directory in the local file system associated
- * with this source container
- */
- public File getDirectory() {
- return fDirectory;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- ArrayList sources = new ArrayList();
- File directory = getDirectory();
- File file = new File(directory, name);
- if (file.exists() && file.isFile()) {
- sources.add(new LocalFileStorage(file));
- }
-
- //check subfolders
- if ((isFindDuplicates() && fSubfolders) || (sources.isEmpty() && fSubfolders)) {
- ISourceContainer[] containers = getSourceContainers();
- for (int i=0; i < containers.length; i++) {
- Object[] objects = containers[i].findSourceElements(name);
- if (objects == null || objects.length == 0) {
- continue;
- }
- if (isFindDuplicates()) {
- for(int j=0; j < objects.length; j++)
- sources.add(objects[j]);
- } else {
- sources.add(objects[0]);
- break;
- }
- }
- }
-
- if(sources.isEmpty())
- return EMPTY;
- return sources.toArray();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return fSubfolders;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj instanceof DirectorySourceContainer) {
- DirectorySourceContainer container = (DirectorySourceContainer) obj;
- return container.getDirectory().equals(getDirectory());
- }
- return false;
- }
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getDirectory().hashCode();
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- if (isComposite()) {
- String[] files = fDirectory.list();
- if (files != null) {
- List dirs = new ArrayList();
- for (int i = 0; i < files.length; i++) {
- String name = files[i];
- File file = new File(getDirectory(), name);
- if (file.exists() && file.isDirectory()) {
- dirs.add(new DirectorySourceContainer(file, true));
- }
- }
- ISourceContainer[] containers = (ISourceContainer[]) dirs.toArray(new ISourceContainer[dirs.size()]);
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- container.init(getDirector());
- }
- return containers;
- }
- }
- return new ISourceContainer[0];
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java
deleted file mode 100644
index dfa3ed052..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils;
-
-/**
- * An archive in the local file system. Returns instances
- * of <code>ZipEntryStorage</code> as source elemetns.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ExternalArchiveSourceContainer extends AbstractSourceContainer {
-
- private boolean fDetectRoots = false;
- private Map fRoots = new HashMap(5);
- private String fArchivePath = null;
- /**
- * Unique identifier for the external archive source container type
- * (value <code>org.eclipse.debug.core.containerType.externalArchive</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.externalArchive"; //$NON-NLS-1$
-
- /**
- * Creates an archive source container on the archive at the
- * specified location in the local file system.
- *
- * @param archivePath path to the archive in the local file system
- * @param detectRootPaths whether root container paths should be detected. When
- * <code>true</code>, searching is performed relative to a root path
- * within the archive based on fully qualified file names. A root
- * path is automatically determined for each file type when the first
- * successful search is performed. For example, when searching for a file
- * named <code>a/b/c.d</code>, and an entry in the archive named
- * <code>r/a/b/c.d</code> exists, the root path is set to <code>r</code>
- * for file type <code>d</code>.
- * From that point on, searching is performed relative to <code>r</code>
- * for files of type <code>d</code>.
- * When searching for an unqualified file name, root containers are not
- * considered.
- * When <code>false</code>, searching is performed by
- * matching file names as suffixes to the entries in the archive.
- */
- public ExternalArchiveSourceContainer(String archivePath, boolean detectRootPaths) {
- fArchivePath = archivePath;
- fDetectRoots = detectRootPaths;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- name = name.replace('\\', '/');
- ZipFile file = getArchive();
- synchronized (file) {
- boolean isQualfied = name.indexOf('/') > 0;
- if (fDetectRoots && isQualfied) {
- String root = getRoot(file, name);
- if (root != null) {
- if (root.length() > 0) {
- name = root + name;
- }
- ZipEntry entry = file.getEntry(name);
- if (entry != null) {
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- }
- } else {
- // try exact match
- ZipEntry entry = file.getEntry(name);
- if (entry != null) {
- // can't be any dups if there is an exact match
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- // search
- Enumeration entries = file.entries();
- List matches = null;
- while (entries.hasMoreElements()) {
- entry = (ZipEntry)entries.nextElement();
- String entryName = entry.getName();
- if (entryName.endsWith(name)) {
- if (isQualfied || entryName.length() == name.length() || entryName.charAt(entryName.length() - name.length() - 1) == '/') {
- if (isFindDuplicates()) {
- if (matches == null) {
- matches = new ArrayList();
- }
- matches.add(new ZipEntryStorage(file, entry));
- } else {
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- }
- }
- }
- if (matches != null) {
- return matches.toArray();
- }
- }
- }
- return EMPTY;
- }
-
- /**
- * Returns the root path in this archive for the given file name, based
- * on its type, or <code>null</code> if none. Detects a root if a root has
- * not yet been detected for the given file type.
- *
- * @param file zip file to search in
- * @param name file name
- * @exception CoreException if an exception occurrs while detecting the root
- */
- private String getRoot(ZipFile file, String name) throws CoreException {
- int index = name.lastIndexOf('.');
- String fileType = null;
- if (index >= 0) {
- fileType = name.substring(index);
- } else {
- // no filetype, use "" as key
- fileType = ""; //$NON-NLS-1$
- }
- String root = (String) fRoots.get(fileType);
- if (root == null) {
- root = detectRoot(file, name);
- if (root != null) {
- fRoots.put(fileType, root);
- }
- }
- return root;
- }
-
- /**
- * Detects and returns the root path in this archive by searching for an entry
- * with the given name, as a suffix.
- *
- * @param file zip file to search in
- * @param name entry to search for
- * @return root
- * @exception CoreException if an exception occurrs while detecting the root
- */
- private String detectRoot(ZipFile file, String name) throws CoreException {
- synchronized (file) {
- Enumeration entries = file.entries();
- try {
- while (entries.hasMoreElements()) {
- ZipEntry entry = (ZipEntry)entries.nextElement();
- String entryName = entry.getName();
- if (entryName.endsWith(name)) {
- int rootLength = entryName.length() - name.length();
- if (rootLength > 0) {
- return entryName.substring(0, rootLength);
- }
- return ""; //$NON-NLS-1$
- }
- }
- } catch (IllegalStateException e) {
- abort(MessageFormat.format(SourceLookupMessages.getString("ExternalArchiveSourceContainer.1"), new String[] {getName()}), e); //$NON-NLS-1$
- }
- }
- return null;
- }
-
- /**
- * Returns the archive to search in.
- *
- * @throws CoreException if unable to access the archive
- */
- private ZipFile getArchive() throws CoreException {
- try {
- return SourceLookupUtils.getZipFile(fArchivePath);
- } catch (IOException e) {
- abort(MessageFormat.format(SourceLookupMessages.getString("ExternalArchiveSourceContainer.2"), new String[]{fArchivePath}), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fArchivePath;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /**
- * Returns whether root paths are automatically detected in this
- * archive source container.
- *
- * @return whether root paths are automatically detected in this
- * archive source container
- */
- public boolean isDetectRoot() {
- return fDetectRoots;
- }
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof ExternalArchiveSourceContainer &&
- ((ExternalArchiveSourceContainer)obj).getName().equals(getName());
- }
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getName().hashCode();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- fRoots.clear();
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java
deleted file mode 100644
index 3310f9f31..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.containers.*;
-
-/**
- * A folder in the workspace.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class FolderSourceContainer extends ContainerSourceContainer {
-
- /**
- * Unique identifier for the folder source container type
- * (value <code>org.eclipse.debug.core.containerType.folder</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.folder"; //$NON-NLS-1$
-
-
- /**
- * Constructs a source container on the given folder.
- *
- * @param folder the folder to search for source in
- * @param subfolders whether to search nested folders
- */
- public FolderSourceContainer(IContainer folder, boolean subfolders) {
- super(folder, subfolders);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java
deleted file mode 100644
index dbdf75fbc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-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.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * Implementation of storage for a local file
- * (<code>java.io.File</code>).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @see IStorage
- * @since 3.0
- */
-public class LocalFileStorage extends PlatformObject implements IStorage {
-
- /**
- * The file this storage refers to.
- */
- private File fFile;
-
- /**
- * Constructs and returns storage for the given file.
- *
- * @param file a local file
- */
- public LocalFileStorage(File file){
- setFile(file);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getContents()
- */
- public InputStream getContents() throws CoreException {
- try {
- return new FileInputStream(getFile());
- } catch (IOException e){
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, SourceLookupMessages.getString("LocalFileStorage.0"), e)); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getFullPath()
- */
- public IPath getFullPath() {
- try {
- return new Path(getFile().getCanonicalPath());
- } catch (IOException e) {
- DebugPlugin.log(e);
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getName()
- */
- public String getName() {
- return getFile().getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-
- /**
- * Sets the file associated with this storage
- *
- * @param file a local file
- */
- private void setFile(File file) {
- fFile = file;
- }
-
- /**
- * Returns the file asscoiated with this storage
- *
- * @return file
- */
- public File getFile() {
- return fFile;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object object) {
- return object instanceof LocalFileStorage &&
- getFile().equals(((LocalFileStorage)object).getFile());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getFile().hashCode();
- }
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java
deleted file mode 100644
index ce0361e43..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.containers.*;
-
-/**
- * A project in the workspace. Source is searched for in the root project
- * folder and all folders within the project recursively. Optionally,
- * referenced projects may be searched as well.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ProjectSourceContainer extends ContainerSourceContainer {
-
- boolean fReferencedProjects=false;
- /**
- * Unique identifier for the project source container type
- * (value <code>org.eclipse.debug.core.containerType.project</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.project"; //$NON-NLS-1$
-
- /**
- * Constructs a project source container.
- *
- * @param project the project to search for source in
- * @param referenced whether referenced projects should be considered
- */
- public ProjectSourceContainer(IProject project, boolean referenced) {
- super(project, true);
- fReferencedProjects = referenced;
- }
-
- /**
- * Returns whether referenced projects are considered.
- *
- * @return whether referenced projects are considered
- */
- public boolean isSearchReferencedProjects() {
- return fReferencedProjects;
- }
-
- /**
- * Returns the project this source container references.
- *
- * @return the project this source container references
- */
- public IProject getProject() {
- return (IProject) getContainer();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- if (getProject().isOpen()) {
- if (isSearchReferencedProjects()) {
- IProject project = getProject();
- IProject[] projects = project.getReferencedProjects();
- ISourceContainer[] folders = super.createSourceContainers();
- List all = new ArrayList(folders.length + projects.length);
- for (int i = 0; i < folders.length; i++) {
- all.add(folders[i]);
- }
- for (int i = 0; i < projects.length; i++) {
- if (project.exists() && project.isOpen()) {
- ProjectSourceContainer container = new ProjectSourceContainer(projects[i], true);
- container.init(getDirector());
- all.add(container);
- }
- }
- return (ISourceContainer[]) all.toArray(new ISourceContainer[all.size()]);
- }
- return super.createSourceContainers();
- }
- return new ISourceContainer[0];
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java
deleted file mode 100644
index 786a55ecd..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * All projects in the workspace.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class WorkspaceSourceContainer extends CompositeSourceContainer {
-
- /**
- * Unique identifier for the workspace source container type
- * (value <code>org.eclipse.debug.core.containerType.workspace</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.workspace"; //$NON-NLS-1$
-
- public WorkspaceSourceContainer() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return SourceLookupMessages.getString("WorkspaceSourceContainer.0"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof WorkspaceSourceContainer;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return ResourcesPlugin.getWorkspace().hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- ISourceContainer[] containers = new ISourceContainer[projects.length];
- for (int i = 0; i < projects.length; i++) {
- ISourceContainer container = new ProjectSourceContainer(projects[i], false);
- container.init(getDirector());
- containers[i] = container;
- }
- return containers;
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java
deleted file mode 100644
index e5ad45a72..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IStorage;
-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.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * Storage implementation for zip entries.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @see IStorage
- * @since 3.0
- */
-public class ZipEntryStorage extends PlatformObject implements IStorage {
-
- /**
- * Zip file associated with zip entry
- */
- private ZipFile fArchive;
-
- /**
- * Zip entry
- */
- private ZipEntry fZipEntry;
-
- /**
- * Constructs a new storage implementation for the
- * given zip entry in the specified zip file
- *
- * @param archive zip file
- * @param entry zip entry
- */
- public ZipEntryStorage(ZipFile archive, ZipEntry entry) {
- setArchive(archive);
- setZipEntry(entry);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getContents()
- */
- public InputStream getContents() throws CoreException {
- try {
- return getArchive().getInputStream(getZipEntry());
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, SourceLookupMessages.getString("ZipEntryStorage.0"), e)); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getFullPath()
- */
- public IPath getFullPath() {
- return new Path(getArchive().getName()).append(getZipEntry().getName());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getName()
- */
- public String getName() {
- int index = getZipEntry().getName().lastIndexOf('\\');
- if (index == -1) {
- index = getZipEntry().getName().lastIndexOf('/');
- }
- if (index == -1) {
- return getZipEntry().getName();
- }
- return getZipEntry().getName().substring(index + 1);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-
- /**
- * Sets the archive containing the zip entry.
- *
- * @param archive a zip file
- */
- private void setArchive(ZipFile archive) {
- fArchive = archive;
- }
-
- /**
- * Returns the archive containing the zip entry.
- *
- * @return zip file
- */
- public ZipFile getArchive() {
- return fArchive;
- }
-
- /**
- * Sets the entry that contains the source.
- *
- * @param entry the entry that contains the source
- */
- private void setZipEntry(ZipEntry entry) {
- fZipEntry = entry;
- }
-
- /**
- * Returns the entry that contains the source
- *
- * @return zip entry
- */
- public ZipEntry getZipEntry() {
- return fZipEntry;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object object) {
- return object instanceof ZipEntryStorage &&
- getArchive().equals(((ZipEntryStorage)object).getArchive()) &&
- getZipEntry().getName().equals(((ZipEntryStorage)object).getZipEntry().getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getZipEntry().getName().hashCode();
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html
deleted file mode 100644
index 7125fb5a2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides implementations of common source containers supporting source lookup.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides implementations of common source containers, such as
- archives, folders, and projects.</p>
-
-<blockquote>&nbsp;</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html
deleted file mode 100644
index 8866be6cc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html
+++ /dev/null
@@ -1,34 +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 source lookup.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides classes and interfaces to support source lookup. A source
- lookup director is a persistable source locator that directs source lookup among
- a collection of source lookup participants and a collection of source containers.
- Each source lookup participant is a source locator itself, which allows more
- than one source locator to participate in source lookup for a launch. Each source
- lookup participant searches for source in the source containers managed by its
- director, and each participant is notified of changes in the set of source containers
- being searched.</p>
-<p>A source lookup participant participates in source lookup by searching an ordered
- list of source containers for source elements corresponding to a debug artifact.
- For example, a participant may be asked to find source corresponding to a stack
- frame or breakpoint. An implementation of a source lookup participant is debug
- model specific, since it must convert the debug model artifact (stack frame,
- breakpoint, etc.), into a source name that can be recognized by a source container,
- to search for source elements. Source containers are generally debug model independent,
- whereas source lookup participants are debug model specific.</p>
-
-<blockquote>&nbsp;</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
deleted file mode 100644
index 991937bff..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
+++ /dev/null
@@ -1,1042 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointListener;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.IBreakpointManagerListener;
-import org.eclipse.debug.core.IBreakpointsListener;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * The breakpoint manager manages all registered breakpoints
- * for the debug plugin. It is instantiated by the debug plugin at startup.
- *
- * @see IBreakpointManager
- */
-public class BreakpointManager implements IBreakpointManager, IResourceChangeListener {
-
- /**
- * Constants for breakpoint add/remove/change updates
- */
- private final static int ADDED = 0;
- private final static int REMOVED = 1;
- private final static int CHANGED = 2;
-
- /**
- * String constants corresponding to XML extension keys
- */
- private final static String CLASS = "class"; //$NON-NLS-1$
-
- /**
- * Attribute name for the <code>"markerType"</code> attribute of
- * a breakpoint extension.
- */
- private static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$
-
- /**
- * Attribute name for the <code>"name"</code> attribute of a
- * breakpoint extension.
- */
- private static final String TYPE_NAME= "name"; //$NON-NLS-1$
-
- /**
- * Preference constant used to persist the auto group
- */
- private static final String PREF_AUTO_GROUP = "AUTO_GROUP"; //$NON-NLS-1$
-
- /**
- * A collection of breakpoints registered with this manager.
- */
- private Vector fBreakpoints= null;
-
- /**
- * Collection of breakpoints being added currently. Used to
- * suppress change notication of "REGISTERED" attribute when
- * being added.
- */
- private List fSuppressChange = new ArrayList();
-
- /**
- * A table of breakpoint extension points, keyed by
- * marker type
- * key: a marker type
- * value: the breakpoint extension which corresponds to that marker type
- */
- private HashMap fBreakpointExtensions;
-
- /**
- * Collection of markers that associates markers to breakpoints
- * key: a marker
- * value: the breakpoint which contains that marker
- */
- private HashMap fMarkersToBreakpoints;
-
- /**
- * Collection of breakpoint listeners.
- */
- private ListenerList fBreakpointListeners= new ListenerList(6);
-
- /**
- * Collection of (multi) breakpoint listeners.
- */
- private ListenerList fBreakpointsListeners= new ListenerList(6);
-
- /**
- * Singleton resource delta visitor which handles marker
- * additions, changes, and removals.
- */
- private static BreakpointManagerVisitor fgVisitor;
-
- /**
- * Whether or not this breakpoint manager is enabled.
- */
- private boolean fEnabled= true;
-
- /**
- * Collection of breakpoint manager listeners which are
- * notified when this manager's enablement changes.
- */
- private ListenerList fBreakpointManagerListeners= new ListenerList(2);
-
- /**
- * Constructs a new breakpoint manager.
- */
- public BreakpointManager() {
- fMarkersToBreakpoints= new HashMap(10);
- fBreakpointExtensions= new HashMap(15);
- }
-
- /**
- * Loads all the breakpoints on the given resource.
- *
- * @param resource the resource which contains the breakpoints
- * @param notify whether to notify of the breakpoint additions
- */
- private void loadBreakpoints(IResource resource, boolean notify) throws CoreException {
- initBreakpointExtensions();
- IMarker[] markers= getPersistedMarkers(resource);
- List added = new ArrayList();
- for (int i = 0; i < markers.length; i++) {
- IMarker marker= markers[i];
- try {
- IBreakpoint breakpoint = createBreakpoint(marker);
- if (breakpoint.isRegistered()) {
- added.add(breakpoint);
- }
- } catch (DebugException e) {
- DebugPlugin.log(e);
- }
- }
- addBreakpoints((IBreakpoint[])added.toArray(new IBreakpoint[added.size()]), notify, true);
- }
-
- /**
- * Returns the persisted markers associated with the given resource.
- *
- * Delete any invalid breakpoint markers. This is done at startup rather
- * than shutdown, since the changes made at shutdown are not persisted as
- * the workspace state has already been saved. See bug 7683.
- *
- * Since the <code>TRANSIENT</code> marker attribute/feature has been added,
- * we no longer have to manully delete non-persisted markers - the platform
- * does this for us (at shutdown, transient markers are not saved). However,
- * the code is still present to delete non-persisted markers from old
- * workspaces.
- */
- protected IMarker[] getPersistedMarkers(IResource resource) throws CoreException {
- IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
- final List delete = new ArrayList();
- List persisted= new ArrayList();
- for (int i = 0; i < markers.length; i++) {
- IMarker marker= markers[i];
- // ensure the marker has a valid model identifier attribute
- // and delete the breakpoint if not
- String modelId = marker.getAttribute(IBreakpoint.ID, null);
- if (modelId == null) {
- // marker with old/invalid format - delete
- delete.add(marker);
- } else if (!marker.getAttribute(IBreakpoint.PERSISTED, true)) {
- // the breakpoint is marked as not to be persisted,
- // schedule for deletion
- delete.add(marker);
- } else {
- persisted.add(marker);
- }
- }
- // delete any markers that are not to be restored
- if (!delete.isEmpty()) {
- final IMarker[] delMarkers = (IMarker[])delete.toArray(new IMarker[delete.size()]);
- IWorkspaceRunnable wr = new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- for (int i = 0; i < delMarkers.length; i++) {
- IMarker marker = delMarkers[i];
- marker.delete();
- }
- }
- };
- new BreakpointManagerJob(wr).schedule();
- }
- return (IMarker[])persisted.toArray(new IMarker[persisted.size()]);
- }
-
- /**
- * Removes this manager as a resource change listener
- * and removes all breakpoint listeners.
- */
- public void shutdown() {
- getWorkspace().removeResourceChangeListener(this);
- fBreakpointListeners.removeAll();
- }
-
- /**
- * Find the defined breakpoint extensions and cache them for use in recreating
- * breakpoints from markers.
- */
- private void initBreakpointExtensions() {
- IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_BREAKPOINTS);
- IConfigurationElement[] elements = ep.getConfigurationElements();
- for (int i= 0; i < elements.length; i++) {
- String markerType = elements[i].getAttribute(MARKER_TYPE);
- String className = elements[i].getAttribute(CLASS);
- if (markerType == null) {
- invalidBreakpointExtension(MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__markerType_1"), new String[]{elements[i].getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } else if (className == null){
- invalidBreakpointExtension(MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__class_2"), new String[]{elements[i].getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } else {
- fBreakpointExtensions.put(markerType, elements[i]);
- }
- }
- }
-
- private void invalidBreakpointExtension(String message) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, null);
- DebugPlugin.log(status);
- }
-
- /**
- * Convenience method to get the workspace
- */
- private IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
-
- /**
- * @see IBreakpointManager#getBreakpoint(IMarker)
- */
- public IBreakpoint getBreakpoint(IMarker marker) {
- // ensure that breakpoints are initialized
- getBreakpoints0();
- return (IBreakpoint)fMarkersToBreakpoints.get(marker);
- }
-
- /**
- * @see IBreakpointManager#getBreakpoints()
- */
- public IBreakpoint[] getBreakpoints() {
- Vector breakpoints= getBreakpoints0();
- IBreakpoint[] temp= new IBreakpoint[breakpoints.size()];
- breakpoints.copyInto(temp);
- return temp;
- }
-
- /**
- * The BreakpointManager waits to load the breakpoints
- * of the workspace until a request is made to retrieve the
- * breakpoints.
- */
- private Vector getBreakpoints0() {
- if (fBreakpoints == null) {
- initializeBreakpoints();
- }
- return fBreakpoints;
- }
-
- /**
- * @see IBreakpointManager#getBreakpoints(String)
- */
- public IBreakpoint[] getBreakpoints(String modelIdentifier) {
- Vector allBreakpoints= getBreakpoints0();
- ArrayList temp= new ArrayList(allBreakpoints.size());
- Iterator breakpoints= allBreakpoints.iterator();
- while (breakpoints.hasNext()) {
- IBreakpoint breakpoint= (IBreakpoint) breakpoints.next();
- String id= breakpoint.getModelIdentifier();
- if (id != null && id.equals(modelIdentifier)) {
- temp.add(breakpoint);
- }
- }
- return (IBreakpoint[]) temp.toArray(new IBreakpoint[temp.size()]);
- }
-
- /**
- * Loads the list of breakpoints from the breakpoint markers in the
- * workspace. Start listening to resource deltas.
- */
- private void initializeBreakpoints() {
- setBreakpoints(new Vector(10));
- try {
- loadBreakpoints(getWorkspace().getRoot(), false);
- getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
- } catch (CoreException ce) {
- DebugPlugin.log(ce);
- setBreakpoints(new Vector(0));
- }
- }
-
- /**
- * @see IBreakpointManager#isRegistered(IBreakpoint)
- */
- public boolean isRegistered(IBreakpoint breakpoint) {
- return getBreakpoints0().contains(breakpoint);
- }
-
-
- /**
- * @see IBreakpointManager#removeBreakpoint(IBreakpoint, boolean)
- */
- public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException {
- removeBreakpoints(new IBreakpoint[]{breakpoint}, delete);
- }
-
- /**
- * @see IBreakpointManager#removeBreakpoints(IBreakpoint[], boolean)
- */
- public void removeBreakpoints(IBreakpoint[] breakpoints, final boolean delete) throws CoreException {
- final List remove = new ArrayList(breakpoints.length);
- for (int i = 0; i < breakpoints.length; i++) {
- IBreakpoint breakpoint = breakpoints[i];
- if (getBreakpoints0().contains(breakpoint)) {
- remove.add(breakpoint);
- }
- }
- if (!remove.isEmpty()) {
- Iterator iter = remove.iterator();
- while (iter.hasNext()) {
- IBreakpoint breakpoint = (IBreakpoint)iter.next();
- getBreakpoints0().remove(breakpoint);
- fMarkersToBreakpoints.remove(breakpoint.getMarker());
- }
- fireUpdate(remove, null, REMOVED);
- IWorkspaceRunnable r = new IWorkspaceRunnable() {
- public void run(IProgressMonitor montitor) throws CoreException {
- Iterator innerIter = remove.iterator();
- while (innerIter.hasNext()) {
- IBreakpoint breakpoint = (IBreakpoint)innerIter.next();
- if (delete) {
- breakpoint.delete();
- } else {
- // if the breakpoint is being removed from the manager
- // because the project is closing, the breakpoint should
- // remain as registered, otherwise, the breakpoint should
- // be marked as deregistered
- IMarker marker = breakpoint.getMarker();
- if (marker.exists()) {
- IProject project = breakpoint.getMarker().getResource().getProject();
- if (project == null || project.isOpen()) {
- breakpoint.setRegistered(false);
- }
- }
- }
- }
- }
- };
- getWorkspace().run(r, null, 0, null);
- }
- }
-
- /**
- * Create a breakpoint for the given marker. The created breakpoint
- * is of the type specified in the breakpoint extension associated
- * with the given marker type.
- *
- * @return a breakpoint on this marker
- * @exception DebugException if breakpoint creation fails. Reasons for
- * failure include:
- * <ol>
- * <li>The breakpoint manager cannot determine what kind of breakpoint
- * to instantiate for the given marker type</li>
- * <li>A lower level exception occurred while accessing the given marker</li>
- * </ol>
- */
- private IBreakpoint createBreakpoint(IMarker marker) throws DebugException {
- IBreakpoint breakpoint= (IBreakpoint) fMarkersToBreakpoints.get(marker);
- if (breakpoint != null) {
- return breakpoint;
- }
- try {
- IConfigurationElement config = (IConfigurationElement)fBreakpointExtensions.get(marker.getType());
- if (config == null) {
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.CONFIGURATION_INVALID, MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Missing_breakpoint_definition"), new String[] {marker.getType()}), null)); //$NON-NLS-1$
- }
- Object object = config.createExecutableExtension(CLASS);
- if (object instanceof IBreakpoint) {
- breakpoint = (IBreakpoint)object;
- breakpoint.setMarker(marker);
- } else {
- invalidBreakpointExtension(MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Class_{0}_specified_by_breakpoint_extension_{1}_does_not_implement_required_interface_IBreakpoint._3"), new String[]{config.getAttribute(CLASS), config.getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- }
- return breakpoint;
- } catch (CoreException e) {
- throw new DebugException(e.getStatus());
- }
- }
-
- /**
- * @see IBreakpointManager#addBreakpoint(IBreakpoint)
- */
- public void addBreakpoint(IBreakpoint breakpoint) throws CoreException {
- addBreakpoints(new IBreakpoint[]{breakpoint});
- }
-
- /**
- * @see IBreakpointManager#addBreakpoints(IBreakpoint[])
- */
- public void addBreakpoints(IBreakpoint[] breakpoints) throws CoreException {
- addBreakpoints(breakpoints, true, false);
- }
-
- /**
- * Registers the given breakpoints and notifies listeners if specified.
- *
- * @param breakpoints the breakpoints to register
- * @param notify whether to notify listeners of the add
- * @param loading whether the given breakpoints are being automatically loaded
- * from previously persisted markers
- */
- private void addBreakpoints(IBreakpoint[] breakpoints, boolean notify, final boolean loading) throws CoreException {
- List added = new ArrayList(breakpoints.length);
- final List update = new ArrayList();
- final String autoGroup = getAutoGroup();
- for (int i = 0; i < breakpoints.length; i++) {
- IBreakpoint breakpoint = breakpoints[i];
- if (!getBreakpoints0().contains(breakpoint)) {
- verifyBreakpoint(breakpoint);
- if (autoGroup == null && breakpoint.isRegistered()) {
- // If notify == false, the breakpoints are just being added at startup
- added.add(breakpoint);
- getBreakpoints0().add(breakpoint);
- fMarkersToBreakpoints.put(breakpoint.getMarker(), breakpoint);
- } else {
- // need to update the 'registered' and/or 'group' attributes
- update.add(breakpoint);
- }
- }
- }
- if (notify) {
- fireUpdate(added, null, ADDED);
- }
- if (!update.isEmpty()) {
- IWorkspaceRunnable r = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- Iterator iter = update.iterator();
- while (iter.hasNext()) {
- IBreakpoint breakpoint = (IBreakpoint)iter.next();
- getBreakpoints0().add(breakpoint);
- breakpoint.setRegistered(true);
- if (!loading && autoGroup != null && autoGroup.length() > 0 && breakpoint.getGroup() == null) {
- breakpoint.setGroup(autoGroup);
- }
- fMarkersToBreakpoints.put(breakpoint.getMarker(), breakpoint);
- }
- }
- };
- // Need to suppress change notification, since this is really
- // an add notification
- fSuppressChange.addAll(update);
- getWorkspace().run(r, null, 0, null);
- fSuppressChange.removeAll(update);
- if (notify) {
- fireUpdate(update, null, ADDED);
- }
- }
- }
-
- /**
- * Returns whether change notification is to be suppressed for the given breakpoint.
- * Used when adding breakpoints and changing the "REGISTERED" attribute.
- *
- * @param breakpoint
- * @return boolean whether change notification is suppressed
- */
- protected boolean isChangeSuppressed(IBreakpoint breakpoint) {
- return fSuppressChange.contains(breakpoint);
- }
-
- /**
- * @see IBreakpointManager#fireBreakpointChanged(IBreakpoint)
- */
- public void fireBreakpointChanged(IBreakpoint breakpoint) {
- if (getBreakpoints0().contains(breakpoint)) {
- List changed = new ArrayList();
- changed.add(breakpoint);
- fireUpdate(changed, null, CHANGED);
- }
- }
-
- /**
- * Verifies that the breakpoint marker has the minimal required attributes,
- * and throws a debug exception if not.
- */
- private void verifyBreakpoint(IBreakpoint breakpoint) throws DebugException {
- try {
- String id= breakpoint.getModelIdentifier();
- if (id == null) {
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.CONFIGURATION_INVALID, DebugCoreMessages.getString("BreakpointManager.Missing_model_identifier"), null)); //$NON-NLS-1$
- }
- } catch (CoreException e) {
- throw new DebugException(e.getStatus());
- }
- }
-
- /**
- * A resource has changed. Traverses the delta for breakpoint changes.
- */
- public void resourceChanged(IResourceChangeEvent event) {
- IResourceDelta delta= event.getDelta();
- if (delta != null) {
- try {
- if (fgVisitor == null) {
- fgVisitor= new BreakpointManagerVisitor();
- }
- delta.accept(fgVisitor);
- fgVisitor.update();
- } catch (CoreException ce) {
- DebugPlugin.log(ce);
- }
- }
- }
-
- /**
- * Visitor for handling resource deltas
- */
- class BreakpointManagerVisitor implements IResourceDeltaVisitor {
- /**
- * Moved markers
- */
- private List fMoved = new ArrayList();
- /**
- * Removed breakpoints
- */
- private List fRemoved = new ArrayList();
- /**
- * Changed breakpoints and associated marker deltas
- */
- private List fChanged = new ArrayList();
- private List fChangedDeltas = new ArrayList();
-
- /**
- * Resets the visitor for a delta traversal - empties
- * collections of removed/changed breakpoints.
- */
- protected void reset() {
- fMoved.clear();
- fRemoved.clear();
- fChanged.clear();
- fChangedDeltas.clear();
- }
-
- /**
- * Performs updates on accumlated changes, and fires change notification after
- * a traversal. Accumlated updates are reset.
- */
- public void update() {
- if (!fMoved.isEmpty()) {
- // delete moved markers
- IWorkspaceRunnable wRunnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- IMarker[] markers = (IMarker[])fMoved.toArray(new IMarker[fMoved.size()]);
- for (int i = 0; i < markers.length; i++) {
- markers[i].delete();
- }
- }
- };
- try {
- getWorkspace().run(wRunnable, null, 0, null);
- } catch (CoreException e) {
- }
- }
- if (!fRemoved.isEmpty()) {
- try {
- removeBreakpoints((IBreakpoint[])fRemoved.toArray(new IBreakpoint[fRemoved.size()]), false);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- if (!fChanged.isEmpty()) {
- fireUpdate(fChanged, fChangedDeltas, CHANGED);
- }
- reset();
- }
-
- /**
- * @see IResourceDeltaVisitor#visit(IResourceDelta)
- */
- public boolean visit(IResourceDelta delta) {
- if (delta == null) {
- return false;
- }
- if (0 != (delta.getFlags() & IResourceDelta.OPEN) && 0 == (delta.getFlags() & IResourceDelta.MOVED_FROM)) {
- handleProjectResourceOpenStateChange(delta.getResource());
- return false;
- }
- IMarkerDelta[] markerDeltas= delta.getMarkerDeltas();
- for (int i= 0; i < markerDeltas.length; i++) {
- IMarkerDelta markerDelta= markerDeltas[i];
- if (markerDelta.isSubtypeOf(IBreakpoint.BREAKPOINT_MARKER)) {
- switch (markerDelta.getKind()) {
- case IResourceDelta.ADDED :
- handleAddBreakpoint(delta, markerDelta.getMarker());
- break;
- case IResourceDelta.REMOVED :
- handleRemoveBreakpoint(markerDelta.getMarker());
- break;
- case IResourceDelta.CHANGED :
- handleChangeBreakpoint(markerDelta.getMarker(), markerDelta);
- break;
- }
- }
- }
-
- return true;
- }
-
- /**
- * Wrapper for handling adds
- */
- protected void handleAddBreakpoint(IResourceDelta rDelta, final IMarker marker) {
- if (0 != (rDelta.getFlags() & IResourceDelta.MOVED_FROM)) {
- // This breakpoint has actually been moved - already removed
- // from the Breakpoint manager during the remove callback.
- // Schedule the marker associated with the new resource for deletion.
- if (getBreakpoint(marker) == null) {
- fMoved.add(marker);
- }
- } else {
- // do nothing - we do not add until explicitly added
- }
- }
-
- /**
- * Wrapper for handling removes
- */
- protected void handleRemoveBreakpoint(IMarker marker) {
- IBreakpoint breakpoint= getBreakpoint(marker);
- if (breakpoint != null) {
- fRemoved.add(breakpoint);
- }
- }
-
- /**
- * Wrapper for handling changes
- */
- protected void handleChangeBreakpoint(IMarker marker, IMarkerDelta delta) {
- final IBreakpoint breakpoint= getBreakpoint(marker);
- if (breakpoint != null && isRegistered(breakpoint) && !isChangeSuppressed(breakpoint)) {
- fChanged.add(breakpoint);
- fChangedDeltas.add(delta);
- }
- }
-
- /**
- * A project has been opened or closed. Updates the breakpoints for
- * that project
- */
- private void handleProjectResourceOpenStateChange(final IResource project) {
- if (!project.isAccessible()) {
- //closed
- Enumeration breakpoints= ((Vector)getBreakpoints0().clone()).elements();
- while (breakpoints.hasMoreElements()) {
- IBreakpoint breakpoint= (IBreakpoint) breakpoints.nextElement();
- IResource markerResource= breakpoint.getMarker().getResource();
- if (project.getFullPath().isPrefixOf(markerResource.getFullPath())) {
- fRemoved.add(breakpoint);
- }
- }
- return;
- }
- try {
- loadBreakpoints(project, true);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- }
-
- /**
- * @see IBreakpointManager#addBreakpointListener(IBreakpointListener)
- */
- public void addBreakpointListener(IBreakpointListener listener) {
- fBreakpointListeners.add(listener);
- }
-
- /**
- * @see IBreakpointManager#removeBreakpointListener(IBreakpointListener)
- */
- public void removeBreakpointListener(IBreakpointListener listener) {
- fBreakpointListeners.remove(listener);
- }
-
- /**
- * Notifies listeners of the adds/removes/changes
- *
- * @param breakpoints associated breakpoints
- * @param deltas or <code>null</code>
- * @param update type of change
- */
- private void fireUpdate(List breakpoints, List deltas, int update) {
- if (breakpoints.isEmpty()) {
- return;
- }
- IBreakpoint[] bpArray = (IBreakpoint[])breakpoints.toArray(new IBreakpoint[breakpoints.size()]);
- IMarkerDelta[] deltaArray = new IMarkerDelta[bpArray.length];
- if (deltas != null) {
- deltaArray = (IMarkerDelta[])deltas.toArray(deltaArray);
- }
- // single listeners
- getBreakpointNotifier().notify(bpArray, deltaArray, update);
-
- // multi listeners
- getBreakpointsNotifier().notify(bpArray, deltaArray, update);
- }
-
- protected void setBreakpoints(Vector breakpoints) {
- fBreakpoints = breakpoints;
- }
-
- /**
- * @see IBreakpointManager#hasBreakpoints()
- */
- public boolean hasBreakpoints() {
- return !getBreakpoints0().isEmpty();
- }
-
- /**
- * @see org.eclipse.debug.core.IBreakpointManager#addBreakpointListener(org.eclipse.debug.core.IBreakpointsListener)
- */
- public void addBreakpointListener(IBreakpointsListener listener) {
- fBreakpointsListeners.add(listener);
- }
-
- /**
- * @see org.eclipse.debug.core.IBreakpointManager#removeBreakpointListener(org.eclipse.debug.core.IBreakpointsListener)
- */
- public void removeBreakpointListener(IBreakpointsListener listener) {
- fBreakpointsListeners.remove(listener);
- }
-
- private BreakpointNotifier getBreakpointNotifier() {
- return new BreakpointNotifier();
- }
-
- /**
- * Notifies breakpoint listener (single breakpoint) in a safe runnable to
- * handle exceptions.
- */
- class BreakpointNotifier implements ISafeRunnable {
-
- private IBreakpointListener fListener;
- private int fType;
- private IMarkerDelta fDelta;
- private IBreakpoint fBreakpoint;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("BreakpointManager.An_exception_occurred_during_breakpoint_change_notification._4"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.breakpointAdded(fBreakpoint);
- break;
- case REMOVED:
- fListener.breakpointRemoved(fBreakpoint, fDelta);
- break;
- case CHANGED:
- fListener.breakpointChanged(fBreakpoint, fDelta);
- break;
- }
- }
-
- /**
- * Notifies the listeners of the add/change/remove
- *
- * @param breakpoints the breakpoints that changed
- * @param deltas the deltas associated with the change
- * @param update the type of change
- */
- public void notify(IBreakpoint[] breakpoints, IMarkerDelta[] deltas, int update) {
- fType = update;
- Object[] copiedListeners= fBreakpointListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IBreakpointListener)copiedListeners[i];
- for (int j = 0; j < breakpoints.length; j++) {
- fBreakpoint = breakpoints[j];
- fDelta = deltas[j];
- Platform.run(this);
- }
- }
- fListener = null;
- fDelta = null;
- fBreakpoint = null;
- }
- }
-
- private BreakpointsNotifier getBreakpointsNotifier() {
- return new BreakpointsNotifier();
- }
-
- /**
- * Notifies breakpoint listener (multiple breakpoints) in a safe runnable to
- * handle exceptions.
- */
- class BreakpointsNotifier implements ISafeRunnable {
-
- private IBreakpointsListener fListener;
- private int fType;
- private IMarkerDelta[] fDeltas;
- private IBreakpoint[] fNotifierBreakpoints;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("BreakpointManager.An_exception_occurred_during_breakpoint_change_notification._5"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.breakpointsAdded(fNotifierBreakpoints);
- break;
- case REMOVED:
- fListener.breakpointsRemoved(fNotifierBreakpoints, fDeltas);
- break;
- case CHANGED:
- fListener.breakpointsChanged(fNotifierBreakpoints, fDeltas);
- break;
- }
- }
-
- /**
- * Notifies the listeners of the adds/changes/removes
- *
- * @param breakpoints the breakpoints that changed
- * @param deltas the deltas associated with the changed breakpoints
- * @param update the type of change
- */
- public void notify(IBreakpoint[] breakpoints, IMarkerDelta[] deltas, int update) {
- fType = update;
- fNotifierBreakpoints = breakpoints;
- fDeltas = deltas;
- Object[] copiedListeners = fBreakpointsListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IBreakpointsListener)copiedListeners[i];
- Platform.run(this);
- }
- fDeltas = null;
- fNotifierBreakpoints = null;
- fListener = null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#isEnabled()
- */
- public boolean isEnabled() {
- return fEnabled;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#setEnabled(boolean)
- */
- public void setEnabled(final boolean enabled) {
- if (fEnabled != enabled) {
- fEnabled= enabled;
- IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- IBreakpoint[] breakpoints = getBreakpoints();
- for (int i = 0; i < breakpoints.length; i++) {
- IBreakpoint breakpoint = breakpoints[i];
- // Touch the marker (but don't actually change anything) so that the icon in
- // the editor ruler will be updated (editors listen to marker changes).
- breakpoint.getMarker().setAttribute(IBreakpoint.ENABLED, breakpoint.isEnabled());
- }
- }
- };
- try {
- ResourcesPlugin.getWorkspace().run(runnable, null, IWorkspace.AVOID_UPDATE ,null);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- new BreakpointManagerNotifier().notify(enabled);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#addBreakpointManagerListener(org.eclipse.debug.core.IBreakpointManagerListener)
- */
- public void addBreakpointManagerListener(IBreakpointManagerListener listener) {
- fBreakpointManagerListeners.add(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#removeBreakpointManagerListener(org.eclipse.debug.core.IBreakpointManagerListener)
- */
- public void removeBreakpointManagerListener(IBreakpointManagerListener listener) {
- fBreakpointManagerListeners.remove(listener);
- }
-
- /**
- * Notifies breakpoint manager listeners in a safe runnable to
- * handle exceptions.
- */
- class BreakpointManagerNotifier implements ISafeRunnable {
-
- private IBreakpointManagerListener fListener;
- private boolean fManagerEnabled;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("BreakpointManager.An_exception_occurred_during_breakpoint_change_notification._5"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- fListener.breakpointManagerEnablementChanged(fManagerEnabled);
- }
-
- /**
- * Notifies the listeners of the adds/changes/removes
- *
- * @param breakpoints the breakpoints that changed
- * @param deltas the deltas associated with the changed breakpoints
- * @param update the type of change
- */
- public void notify(boolean enabled) {
- fManagerEnabled= enabled;
- Object[] copiedListeners = fBreakpointManagerListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IBreakpointManagerListener)copiedListeners[i];
- Platform.run(this);
- }
- fListener = null;
- }
- }
-
- class BreakpointManagerJob extends Job {
-
- private final IWorkspaceRunnable fRunnable;
-
- public BreakpointManagerJob (IWorkspaceRunnable wRunnable) {
- super("breakpoint manager job"); //$NON-NLS-1$
- fRunnable= wRunnable;
- setSystem(true);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- try {
- getWorkspace().run(fRunnable, null, 0, null);
- } catch (CoreException ce) {
- DebugPlugin.log(ce);
- }
- return new Status(IStatus.OK, DebugPlugin.getUniqueIdentifier(), IStatus.OK, "", null); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#getTypeName(org.eclipse.debug.core.model.IBreakpoint)
- */
- public String getTypeName(IBreakpoint breakpoint) {
- String typeName= null;
- IMarker marker = breakpoint.getMarker();
- if (marker != null) {
- try {
- IConfigurationElement element = (IConfigurationElement) fBreakpointExtensions.get(marker.getType());
- if (element != null) {
- typeName= element.getAttribute(TYPE_NAME);
- }
- } catch (CoreException e) {
- }
- }
- return typeName;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#setAutoGroup(java.lang.String)
- */
- public void setAutoGroup(String group) {
- if (group == null) {
- group= ""; //$NON-NLS-1$
- }
- DebugPlugin.getDefault().getPluginPreferences().setValue(PREF_AUTO_GROUP, group);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IBreakpointManager#getAutoGroup()
- */
- public String getAutoGroup() {
- return DebugPlugin.getDefault().getPluginPreferences().getString(PREF_AUTO_GROUP);
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java
deleted file mode 100644
index 3caf3a72c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.text.MessageFormat;
-import java.util.HashSet;
-import java.util.Set;
-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.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-
-/**
- * A placeholder for a launch delegate contributed for a launch mode for an
- * existing launch configuration type.
- */
-public class ContributedDelegate {
-
- /**
- * The configuration element of the extension.
- */
- private IConfigurationElement fElement;
-
- /**
- * Modes this delegate supports.
- */
- private Set fModes;
-
- /**
- * Delegate, or <code>null</code> if not yet instantiated.
- */
- private ILaunchConfigurationDelegate fDelegate;
-
- /**
- * Constructs a new contributed delegate on the
- * given configuration element.
- *
- * @param element configuration element
- */
- protected ContributedDelegate(IConfigurationElement element) {
- setConfigurationElement(element);
- }
-
- /**
- * Sets this delegate's configuration element.
- *
- * @param element this delegate's configuration element
- */
- private void setConfigurationElement(IConfigurationElement element) {
- fElement = element;
- }
-
- /**
- * Returns this delegate's configuration element.
- *
- * @return this delegate's configuration element
- */
- protected IConfigurationElement getConfigurationElement() {
- return fElement;
- }
-
- /**
- * Returns the set of modes specified in the configuration data.
- *
- * @return the set of modes specified in the configuration data
- */
- protected Set getModes() {
- if (fModes == null) {
- String modes= getConfigurationElement().getAttribute("modes"); //$NON-NLS-1$
- if (modes == null) {
- return new HashSet(0);
- }
- String[] strings = modes.split(","); //$NON-NLS-1$
- fModes = new HashSet(3);
- for (int i = 0; i < strings.length; i++) {
- String string = strings[i];
- fModes.add(string.trim());
- }
- }
- return fModes;
- }
-
- /**
- * Returns the type identifier of launch configuration type this delegate is
- * contributed to.
- */
- protected String getLaunchConfigurationType() {
- return getConfigurationElement().getAttribute("type"); //$NON-NLS-1$
- }
-
- protected ILaunchConfigurationDelegate getDelegate() throws CoreException {
- if (fDelegate == null) {
- Object object = getConfigurationElement().createExecutableExtension("delegate"); //$NON-NLS-1$
- if (object instanceof ILaunchConfigurationDelegate) {
- fDelegate = (ILaunchConfigurationDelegate)object;
- } else {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationType.Launch_delegate_for_{0}_does_not_implement_required_interface_ILaunchConfigurationDelegate._1"), new String[]{getIdentifier()}), null)); //$NON-NLS-1$
- }
- }
- return fDelegate;
- }
-
- /**
- * Returns the identifier of this extension point.
- */
- protected String getIdentifier() {
- return getConfigurationElement().getAttribute("id"); //$NON-NLS-1$
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
deleted file mode 100644
index f5fa326f4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class DebugCoreMessages {
-
- private static final String RESOURCE_BUNDLE= "org.eclipse.debug.internal.core.DebugCoreMessages";//$NON-NLS-1$
-
- private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
- private DebugCoreMessages() {
- }
-
- public static String getString(String key) {
- try {
- return fgResourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
deleted file mode 100644
index 2d3cdc1ac..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
+++ /dev/null
@@ -1,106 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-Breakpoint.no_associated_marker=Breakpoint does not have an associated marker.
-
-BreakpointManager.Missing_breakpoint_definition=Missing breakpoint definition for marker type {0}
-BreakpointManager.Missing_model_identifier=Breakpoint missing debug model identifier
-BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__markerType_1=Breakpoint extension {0} missing required attribute: markerType
-BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__class_2=Breakpoint extension {0} missing required attribute: class
-BreakpointManager.Class_{0}_specified_by_breakpoint_extension_{1}_does_not_implement_required_interface_IBreakpoint._3=Class {0} specified by breakpoint extension {1} does not implement required interface IBreakpoint.
-BreakpointManager.An_exception_occurred_during_breakpoint_change_notification._4=An exception occurred during breakpoint change notification.
-BreakpointManager.An_exception_occurred_during_breakpoint_change_notification._5=An exception occurred during breakpoint change notification.
-
-DebugEvent.illegal_detail=detail is not one of the allowed constants, see IDebugEventConstants
-DebugEvent.illegal_kind=kind is not one of the allowed constants, see IDebugEventConstants
-
-DebugPlugin.Invalid_status_handler_extension__{0}_2=Invalid status handler extension: {0}
-DebugPlugin.Debug_async_queue_1=Debug async queue
-DebugPlugin.Exception_occurred_executing_command_line._1=Exception occurred executing command line.
-DebugPlugin.Eclipse_runtime_does_not_support_working_directory_2=Eclipse runtime does not support working directory
-DebugPlugin.Registered_status_handler_{0}_does_not_implement_required_interface_IStatusHandler._1=Registered status handler {0} does not implement required interface IStatusHandler.
-DebugPlugin.An_exception_occurred_while_dispatching_debug_events._2=An exception occurred while dispatching debug events.
-DebugPlugin.An_exception_occurred_while_filtering_debug_events._3=An exception occurred while filtering debug events.
-DebugPlugin.31=Invalid process factory extension contributed by {0}; id: {1}
-DebugPlugin.0=Exception processing debug async queue
-DebugPlugin.1=Debug Event Dispatch
-
-EnvironmentVariableResolver.0=Environment variable not specified
-
-InputStreamMonitor.label=Input Stream Monitor
-
-Launch.terminate_failed=Terminate failed
-
-LaunchConfiguration.Exception_occurred_creating_launch_configuration_memento_9=Exception occurred creating launch configuration memento
-LaunchConfiguration.Exception_occurred_parsing_memento_5=Exception occurred parsing memento
-LaunchConfiguration.Failed_to_delete_launch_configuration._1=Failed to delete launch configuration.
-LaunchConfiguration.Invalid_launch_configuration_memento__missing_path_attribute_3=Invalid launch configuration memento: missing path attribute
-LaunchConfiguration.Invalid_launch_configuration_memento__missing_local_attribute_4=Invalid launch configuration memento: missing local attribute
-LaunchConfiguration.Unable_to_restore_location_for_launch_configuration_from_memento__{0}_1=Unable to restore location for launch configuration from memento: {0}
-LaunchConfiguration.Unable_to_generate_memento_for_{0},_shared_file_does_not_exist._1=Unable to generate memento for {0}, shared file does not exist.
-LaunchConfiguration.13=Incompatible launch mode: expecting {0} instead of {1}
-LaunchConfigurationDelegate.6=Searching for errors
-LaunchConfigurationDelegate.7=Searching for errors in
-
-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_boolean._3=Attribute {0} is not of type boolean.
-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_int._2=Attribute {0} is not of type int.
-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.lang.String._1=Attribute {0} is not of type java.lang.String.
-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.List._1=Attribute {0} is not of type java.util.List.
-LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.Map._1=Attribute {0} is not of type java.util.Map.
-LaunchConfigurationInfo.Invalid_launch_configuration_XML._10=Invalid launch configuration XML.
-LaunchConfigurationInfo.missing_type=Launch configuration type id \"{0}\" does not exist.\nPossible causes:\n\tMissing specification of a launch type (missing plug-in)\n\tIncorrect launch configuration XML
-LaunchConfigurationInfo.36=A null key has been specified for an attribute in this launch configuration
-
-LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1={0} occurred generating launch configuration XML.
-LaunchConfigurationWorkingCopy.Specified_container_for_launch_configuration_does_not_exist_2=Specified container for launch configuration does not exist
-LaunchConfigurationWorkingCopy.5=Unable to save launch configuration.
-
-LaunchManager.{0}_occurred_while_reading_launch_configuration_file_{1}._1={0} occurred while reading launch configuration file: {1}.
-LaunchManager.Invalid_launch_configuration_index._18=Invalid launch configuration index.
-LaunchManager.Invalid_source_locator_extentsion_defined_by_plug-in___{0}______id___not_specified_12=Invalid source locator extension defined by plug-in \"{0}\": \"id\" not specified
-LaunchManager.does_not_exist=Launch configuration {0} at {1} does not exist.
-LaunchManager.Source_locator_does_not_exist__{0}_13=Source locator does not exist: {0}
-LaunchManager.Invalid_launch_configuration_comparator_extension_defined_by_plug-in_{0}_-_attribute_not_specified_1=Invalid launch configuration comparator extension defined by plug-in {0} - attribute not specified
-LaunchManager.An_exception_occurred_during_launch_change_notification._1=An exception occurred during launch change notification.
-LaunchManager.An_exception_occurred_during_launch_configuration_change_notification._3=An exception occurred during launch configuration change notification.
-LaunchManager.30=Unable to retrieve shared launch configuration file for {0}
-
-LaunchMode.1=Required attribute {0} missing for launchMode extension.
-
-LogicalStructureType.7=Required attribute {0} missing for logicalStructureType extension.
-LogicalStructureType.0=<Missing Description>
-LogicalStructureProvider.0=Required attribute modelIdentifier missing for logicalStructureType extension.
-LogicalStructureProvider.1=Required attribute class missing for logicalStructureType extension.
-
-OutputStreamMonitor.label=Output Stream Monitor
-
-ProcessMonitorJob.0=Process monitor
-
-RuntimeProcess.terminate_failed=Terminate failed
-RuntimeProcess.Exit_value_not_available_until_process_terminates._1=Exit value not available until process terminates.
-
-ExpressionManager.An_exception_occurred_during_expression_change_notification._1=An exception occurred during expression change notification.
-
-LaunchConfigurationType.Launch_delegate_for_{0}_does_not_implement_required_interface_ILaunchConfigurationDelegate._1=Launch delegate for {0} does not implement required interface ILaunchConfigurationDelegate.
-LaunchConfigurationType.9=Launch mode {0} not supported for configuration type {1}
-LaunchConfigurationType.10=Launch delegate not registered for configuration type {0}, mode {1}
-
-MemoryRenderingManager.ErrorMsg = The selected rendering cannot be created: {0}
-WatchExpression.0=(Watch expressions not supported)
-NullStreamsProxy.0=Null Stream Monitor
-SourceLookupUtils.3=
-SourceLookupUtils.4=
-SourceLookupUtils.5=
-SourceLookupUtils.6=
-SourceLookupUtils.7=
-SourceLookupUtils.8=
-SourceLookupUtils.9=
-SourceLookupUtils.10=
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java
deleted file mode 100644
index 53fd618f7..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IStepFilters;
-
-/**
- * Implementation of common function for debug elements.
- * <p>
- * Clients may subclass this class.
- * TODO: in progress, make API
- * </p>
- * @since 3.1
- */
-public abstract class DebugElement extends PlatformObject implements IDebugElement {
-
- private IDebugTarget fTarget;
-
- /**
- * Constructs a debug element referring to an artifact in the given
- * debug target.
- *
- * @param target debug target containing this element
- */
- public DebugElement(IDebugTarget target) {
- fTarget = target;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
- */
- public IDebugTarget getDebugTarget() {
- return fTarget;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
- */
- public ILaunch getLaunch() {
- return getDebugTarget().getLaunch();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IDebugElement.class) {
- return this;
- }
- if (adapter == IStepFilters.class) {
- return getDebugTarget();
- }
- if (adapter == IDebugTarget.class) {
- return getDebugTarget();
- }
- if (adapter == ILaunch.class) {
- return getLaunch();
- }
- if (adapter == IProcess.class) {
- return getDebugTarget().getProcess();
- }
- return super.getAdapter(adapter);
- }
-
- /**
- * Fires a debug event.
- *
- * @param event debug event to fire
- */
- protected void fireEvent(DebugEvent event) {
- DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event});
- }
-
- /**
- * Fires a change event for this debug element
- * with the specified detail code.
- *
- * @param detail detail code for the change event,
- * such as <code>DebugEvent.STATE</code> or <code>DebugEvent.CONTENT</code>
- */
- public void fireChangeEvent(int detail) {
- fireEvent(new DebugEvent(this, DebugEvent.CHANGE, detail));
- }
-
- /**
- * Fires a creation event for this debug element.
- */
- protected void fireCreationEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.CREATE));
- }
-
- /**
- * Fires a resume for this debug element with
- * the specified detail code.
- *
- * @param detail detail code for the resume event, such
- * as <code>DebugEvent.STEP_OVER</code>
- */
- protected void fireResumeEvent(int detail) {
- fireEvent(new DebugEvent(this, DebugEvent.RESUME, detail));
- }
-
- /**
- * Fires a suspend event for this debug element with
- * the specified detail code.
- *
- * @param detail detail code for the suspend event, such
- * as <code>DebugEvent.BREAKPOINT</code>
- */
- protected void fireSuspendEvent(int detail) {
- fireEvent(new DebugEvent(this, DebugEvent.SUSPEND, detail));
- }
-
- /**
- * Fires a terminate event for this debug element.
- */
- protected void fireTerminateEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.TERMINATE));
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java
deleted file mode 100644
index e92c73a2c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-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.osgi.service.environment.Constants;
-
-/**
- * Resolves the value of environment variables.
- */
-public class EnvironmentVariableResolver 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, DebugPlugin.getUniqueIdentifier(), IStatus.ERROR, DebugCoreMessages.getString("EnvironmentVariableResolver.0"), null)); //$NON-NLS-1$
- }
- Map map= DebugPlugin.getDefault().getLaunchManager().getNativeEnvironment();
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- // On Win32, env variables are case insensitive, so we uppercase everything
- // for map matches
- argument= argument.toUpperCase();
- }
- return (String) map.get(argument);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
deleted file mode 100644
index 7e7c49cc9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
+++ /dev/null
@@ -1,581 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-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.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.IExpressionListener;
-import org.eclipse.debug.core.IExpressionManager;
-import org.eclipse.debug.core.IExpressionsListener;
-import org.eclipse.debug.core.model.IExpression;
-import org.eclipse.debug.core.model.IWatchExpression;
-import org.eclipse.debug.core.model.IWatchExpressionDelegate;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * The expression manager manages all registered expressions
- * for the debug plugin. It is instantiated by the debug plugin
- * at startup.
- *
- * @see IExpressionManager
- */
-public class ExpressionManager implements IExpressionManager, IDebugEventSetListener {
-
- /**
- * Collection of registered expressions.
- */
- private Vector fExpressions = null;
-
- /**
- * List of expression listeners
- */
- private ListenerList fListeners = null;
-
- /**
- * List of (multi) expressions listeners
- */
- private ListenerList fExpressionsListeners = null;
-
- /**
- * Mapping of debug model identifiers (String) to
- * expression delegate extensions (IConfigurationElement)
- */
- private Map fWatchExpressionDelegates= new HashMap();
-
- // Constants for add/remove/change notification
- private static final int ADDED = 1;
- private static final int CHANGED = 2;
- private static final int REMOVED = 3;
-
- // Preference for persisted watch expressions
- private static final String PREF_WATCH_EXPRESSIONS= "prefWatchExpressions"; //$NON-NLS-1$
- // Persisted watch expression XML tags
- private static final String WATCH_EXPRESSIONS_TAG= "watchExpressions"; //$NON-NLS-1$
- private static final String EXPRESSION_TAG= "expression"; //$NON-NLS-1$
- private static final String TEXT_TAG= "text"; //$NON-NLS-1$
- private static final String ENABLED_TAG= "enabled"; //$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$
-
- public ExpressionManager() {
- loadPersistedExpressions();
- loadWatchExpressionDelegates();
- }
-
- /**
- * Loads the mapping of debug models to watch expression delegates
- * from the org.eclipse.debug.core.watchExpressionDelegates
- * extension point.
- */
- private void loadWatchExpressionDelegates() {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), "watchExpressionDelegates"); //$NON-NLS-1$
- IConfigurationElement[] configurationElements = extensionPoint.getConfigurationElements();
- for (int i = 0; i < configurationElements.length; i++) {
- IConfigurationElement element = configurationElements[i];
- if (element.getName().equals("watchExpressionDelegate")) { //$NON-NLS-1$
- String debugModel = element.getAttribute("debugModel"); //$NON-NLS-1$
- if (debugModel == null || debugModel.length() == 0) {
- continue;
- }
- fWatchExpressionDelegates.put(debugModel, element);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IExpressionManager#newWatchExpressionDelegate(java.lang.String)
- */
- public IWatchExpressionDelegate newWatchExpressionDelegate(String debugModel) {
- try {
- IConfigurationElement element= (IConfigurationElement) fWatchExpressionDelegates.get(debugModel);
- if (element != null) {
- return (IWatchExpressionDelegate) element.createExecutableExtension("delegateClass"); //$NON-NLS-1$
- }
- return null;
- } catch (CoreException e) {
- DebugPlugin.log(e);
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IExpressionManager#hasWatchExpressionDelegate(java.lang.String)
- */
- public boolean hasWatchExpressionDelegate(String id) {
- IConfigurationElement element= (IConfigurationElement) fWatchExpressionDelegates.get(id);
- return element != null;
- }
-
- /**
- * Loads any persisted watch expresions from the preferences.
- * NOTE: It's important that no setter methods are called on
- * the watchpoints which will fire change events as this
- * will cause an infinite loop (see Bug 27281).
- */
- private void loadPersistedExpressions() {
- String expressionsString= DebugPlugin.getDefault().getPluginPreferences().getString(PREF_WATCH_EXPRESSIONS);
- if (expressionsString.length() == 0) {
- return;
- }
- Element root;
- try {
- root = DebugPlugin.parseDocument(expressionsString);
- } catch (CoreException e) {
- DebugPlugin.logMessage("An exception occurred while loading watch expressions.", e); //$NON-NLS-1$
- return;
- }
- if (!root.getNodeName().equals(WATCH_EXPRESSIONS_TAG)) {
- DebugPlugin.logMessage("Invalid format encountered while loading watch expressions.", null); //$NON-NLS-1$
- return;
- }
- NodeList list= root.getChildNodes();
- boolean expressionsAdded= false;
- 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(EXPRESSION_TAG)) {
- DebugPlugin.logMessage(MessageFormat.format("Invalid XML element encountered while loading watch expressions: {0}", new String[] {node.getNodeName()}), null); //$NON-NLS-1$
- continue;
- }
- String expressionText= element.getAttribute(TEXT_TAG);
- if (expressionText.length() > 0) {
- boolean enabled= TRUE_VALUE.equals(element.getAttribute(ENABLED_TAG));
- IWatchExpression expression= newWatchExpression(expressionText, enabled);
- if (fExpressions == null) {
- fExpressions= new Vector(list.getLength());
- }
- fExpressions.add(expression);
- expressionsAdded= true;
- } else {
- DebugPlugin.logMessage("Invalid expression entry encountered while loading watch expressions. Expression text is empty.", null); //$NON-NLS-1$
- }
- }
- }
- if (expressionsAdded) {
- DebugPlugin.getDefault().addDebugEventListener(this);
- }
- }
-
- /**
- * Creates a new watch expression with the given expression
- * and the given enablement;
- *
- * @param expressionText the text of the expression to be evaluated
- * @param enabled whether or not the new expression should be enabled
- * @return the new watch expression
- */
- private IWatchExpression newWatchExpression(String expressionText, boolean enabled) {
- return new WatchExpression(expressionText, enabled);
- }
-
- /**
- * @see IExpressionManager#newWatchExpression(String)
- */
- public IWatchExpression newWatchExpression(String expressionText) {
- return new WatchExpression(expressionText);
- }
-
- /**
- * Persists this manager's watch expressions as XML in the
- * preference store.
- */
- public void storeWatchExpressions() {
- Preferences prefs= DebugPlugin.getDefault().getPluginPreferences();
- String expressionString= ""; //$NON-NLS-1$
- try {
- expressionString= getWatchExpressionsAsXML();
- } catch (IOException e) {
- DebugPlugin.log(e);
- } catch (ParserConfigurationException e) {
- DebugPlugin.log(e);
- } catch (TransformerException e) {
- DebugPlugin.log(e);
- }
- prefs.setValue(PREF_WATCH_EXPRESSIONS, expressionString);
- DebugPlugin.getDefault().savePluginPreferences();
- }
-
- /**
- * Returns this manager's watch expressions as XML.
- * @return this manager's watch expressions as XML
- * @throws IOException if an exception occurs while creating
- * the XML document.
- * @throws ParserConfigurationException if an exception occurs while creating
- * the XML document.
- * @throws TransformerException if an exception occurs while creating
- * the XML document.
- */
- private String getWatchExpressionsAsXML() throws IOException, ParserConfigurationException, TransformerException {
- IExpression[] expressions= getExpressions();
- Document document= LaunchManager.getDocument();
- Element rootElement= document.createElement(WATCH_EXPRESSIONS_TAG);
- document.appendChild(rootElement);
- for (int i = 0; i < expressions.length; i++) {
- IExpression expression= expressions[i];
- if (expression instanceof IWatchExpression) {
- Element element= document.createElement(EXPRESSION_TAG);
- element.setAttribute(TEXT_TAG, expression.getExpressionText());
- element.setAttribute(ENABLED_TAG, ((IWatchExpression) expression).isEnabled() ? TRUE_VALUE : FALSE_VALUE);
- rootElement.appendChild(element);
- }
- }
- return LaunchManager.serializeDocument(document);
- }
-
- /**
- * @see IExpressionManager#addExpression(IExpression)
- */
- public void addExpression(IExpression expression) {
- addExpressions(new IExpression[]{expression});
- }
-
- /**
- * @see IExpressionManager#addExpressions(IExpression[])
- */
- public void addExpressions(IExpression[] expressions) {
- if (fExpressions == null) {
- fExpressions = new Vector(expressions.length);
- }
- boolean addedWatchExpression= false;
- boolean wasEmpty = fExpressions.isEmpty();
- List added = new ArrayList(expressions.length);
- for (int i = 0; i < expressions.length; i++) {
- IExpression expression = expressions[i];
- if (fExpressions.indexOf(expression) == -1) {
- added.add(expression);
- fExpressions.add(expression);
- if (expression instanceof IWatchExpression) {
- addedWatchExpression= true;
- }
- }
- }
- if (wasEmpty) {
- DebugPlugin.getDefault().addDebugEventListener(this);
- }
- if (!added.isEmpty()) {
- fireUpdate((IExpression[])added.toArray(new IExpression[added.size()]), ADDED);
- }
- if (addedWatchExpression) {
- storeWatchExpressions();
- }
- }
-
- /**
- * @see IExpressionManager#getExpressions()
- */
- public IExpression[] getExpressions() {
- if (fExpressions == null) {
- return new IExpression[0];
- }
- IExpression[] temp= new IExpression[fExpressions.size()];
- fExpressions.copyInto(temp);
- return temp;
- }
-
- /**
- * @see IExpressionManager#getExpressions(String)
- */
- public IExpression[] getExpressions(String modelIdentifier) {
- if (fExpressions == null) {
- return new IExpression[0];
- }
- ArrayList temp= new ArrayList(fExpressions.size());
- Iterator iter= fExpressions.iterator();
- while (iter.hasNext()) {
- IExpression expression= (IExpression) iter.next();
- String id= expression.getModelIdentifier();
- if (id != null && id.equals(modelIdentifier)) {
- temp.add(expression);
- }
- }
- return (IExpression[]) temp.toArray(new IExpression[temp.size()]);
- }
-
- /**
- * @see IExpressionManager#removeExpression(IExpression)
- */
- public void removeExpression(IExpression expression) {
- removeExpressions(new IExpression[] {expression});
- }
-
- /**
- * @see IExpressionManager#removeExpressions(IExpression[])
- */
- public void removeExpressions(IExpression[] expressions) {
- if (fExpressions == null) {
- return;
- }
- List removed = new ArrayList(expressions.length);
- for (int i = 0; i < expressions.length; i++) {
- IExpression expression = expressions[i];
- if (fExpressions.remove(expression)) {
- removed.add(expression);
- expression.dispose();
- }
- }
- if (fExpressions.isEmpty()) {
- DebugPlugin.getDefault().removeDebugEventListener(this);
- }
- if (!removed.isEmpty()) {
- fireUpdate((IExpression[])removed.toArray(new IExpression[removed.size()]), REMOVED);
- storeWatchExpressions();
- }
- }
-
- /**
- * @see IExpressionManager#addExpressionListener(IExpressionListener)
- */
- public void addExpressionListener(IExpressionListener listener) {
- if (fListeners == null) {
- fListeners = new ListenerList(2);
- }
- fListeners.add(listener);
- }
-
- /**
- * @see IExpressionManager#removeExpressionListener(IExpressionListener)
- */
- public void removeExpressionListener(IExpressionListener listener) {
- if (fListeners == null) {
- return;
- }
- fListeners.remove(listener);
- }
-
- /**
- * @see IDebugEventSetListener#handleDebugEvent(DebugEvent)
- */
- public void handleDebugEvents(DebugEvent[] events) {
- List changed = null;
- for (int i = 0; i < events.length; i++) {
- DebugEvent event = events[i];
- if (event.getSource() instanceof IExpression) {
- switch (event.getKind()) {
- case DebugEvent.CHANGE:
- if (changed == null) {
- changed = new ArrayList(1);
- }
- changed.add(event.getSource());
- break;
- default:
- break;
- }
- }
- }
- if (changed != null) {
- IExpression[] array = (IExpression[])changed.toArray(new IExpression[changed.size()]);
- fireUpdate(array, CHANGED);
- }
- }
-
- /**
- * The given watch expression has changed. Update the persisted
- * expressions to store this change.
- *
- * @param expression the changed expression
- */
- protected void watchExpressionChanged(IWatchExpression expression) {
- if (fExpressions != null && fExpressions.contains(expression)) {
- storeWatchExpressions();
- }
- }
-
- /**
- * Notifies listeners of the adds/removes/changes
- *
- * @param breakpoints associated breakpoints
- * @param deltas or <code>null</code>
- * @param update type of change
- */
- private void fireUpdate(IExpression[] expressions, int update) {
- // single listeners
- getExpressionNotifier().notify(expressions, update);
-
- // multi listeners
- getExpressionsNotifier().notify(expressions, update);
- }
-
- /**
- * @see IExpressionManager#hasExpressions()
- */
- public boolean hasExpressions() {
- return fExpressions != null && !fExpressions.isEmpty();
- }
-
- /**
- * @see org.eclipse.debug.core.IExpressionManager#addExpressionListener(org.eclipse.debug.core.IExpressionsListener)
- */
- public void addExpressionListener(IExpressionsListener listener) {
- if (fExpressionsListeners == null) {
- fExpressionsListeners = new ListenerList(2);
- }
- fExpressionsListeners.add(listener);
- }
-
- /**
- * @see org.eclipse.debug.core.IExpressionManager#removeExpressionListener(org.eclipse.debug.core.IExpressionsListener)
- */
- public void removeExpressionListener(IExpressionsListener listener) {
- if (fExpressionsListeners == null) {
- return;
- }
- fExpressionsListeners.remove(listener);
- }
-
- private ExpressionNotifier getExpressionNotifier() {
- return new ExpressionNotifier();
- }
-
- /**
- * Notifies an expression listener (single expression) in a safe runnable to
- * handle exceptions.
- */
- class ExpressionNotifier implements ISafeRunnable {
-
- private IExpressionListener fListener;
- private int fType;
- private IExpression fExpression;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("ExpressionManager.An_exception_occurred_during_expression_change_notification._1"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.expressionAdded(fExpression);
- break;
- case REMOVED:
- fListener.expressionRemoved(fExpression);
- break;
- case CHANGED:
- fListener.expressionChanged(fExpression);
- break;
- }
- }
-
- /**
- * Notifies listeners of the add/change/remove
- *
- * @param expression the expression that has changed
- * @param update the type of change
- */
- public void notify(IExpression[] expressions, int update) {
- if (fListeners != null) {
- fType = update;
- Object[] copiedListeners= fListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IExpressionListener)copiedListeners[i];
- for (int j = 0; j < expressions.length; j++) {
- fExpression = expressions[j];
- Platform.run(this);
- }
- }
- }
- fListener = null;
- fExpression = null;
- }
- }
-
- private ExpressionsNotifier getExpressionsNotifier() {
- return new ExpressionsNotifier();
- }
-
- /**
- * Notifies an expression listener (multiple expressions) in a safe runnable
- * to handle exceptions.
- */
- class ExpressionsNotifier implements ISafeRunnable {
-
- private IExpressionsListener fListener;
- private int fType;
- private IExpression[] fNotifierExpressions;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("ExpressionManager.An_exception_occurred_during_expression_change_notification._1"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.expressionsAdded(fNotifierExpressions);
- break;
- case REMOVED:
- fListener.expressionsRemoved(fNotifierExpressions);
- break;
- case CHANGED:
- fListener.expressionsChanged(fNotifierExpressions);
- break;
- }
- }
-
- /**
- * Notifies listeners of the adds/changes/removes
- *
- * @param expressions the expressions that changed
- * @param update the type of change
- */
- public void notify(IExpression[] expressions, int update) {
- if (fExpressionsListeners != null) {
- fNotifierExpressions = expressions;
- fType = update;
- Object[] copiedListeners = fExpressionsListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IExpressionsListener)copiedListeners[i];
- Platform.run(this);
- }
- }
- fNotifierExpressions = null;
- fListener = null;
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
deleted file mode 100644
index 3c8da0692..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Vector;
-
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * Writes to the input stream of a system process,
- * queueing output if the stream is blocked.
- *
- * The input stream monitor writes to system in via
- * an output stream.
- */
-public class InputStreamMonitor {
-
- /**
- * The stream which is being written to (connected to system in).
- */
- private OutputStream fStream;
- /**
- * The queue of output.
- */
- private Vector fQueue;
- /**
- * The thread which writes to the stream.
- */
- private Thread fThread;
- /**
- * A lock for ensuring that writes to the queue are contiguous
- */
- private Object fLock;
-
- /**
- * Wether the underlying output stream has been closed
- */
- private boolean fClosed = false;
-
- /**
- * Creates an input stream monitor which writes
- * to system in via the given output stream.
- */
- public InputStreamMonitor(OutputStream stream) {
- fStream= stream;
- fQueue= new Vector();
- fLock= new Object();
- }
-
- /**
- * Appends the given text to the stream, or
- * queues the text to be written at a later time
- * if the stream is blocked.
- */
- public void write(String text) {
- synchronized(fLock) {
- fQueue.add(text);
- fLock.notifyAll();
- }
- }
-
- /**
- * Starts a thread which writes the stream.
- */
- public void startMonitoring() {
- if (fThread == null) {
- fThread= new Thread(new Runnable() {
- public void run() {
- write();
- }
- }, DebugCoreMessages.getString("InputStreamMonitor.label")); //$NON-NLS-1$
- fThread.start();
- }
- }
-
- /**
- * Close all communications between this
- * monitor and the underlying stream.
- */
- public void close() {
- if (fThread != null) {
- Thread thread= fThread;
- fThread= null;
- thread.interrupt();
- }
- }
-
- /**
- * Continuously writes to the stream.
- */
- protected void write() {
- while (fThread != null) {
- writeNext();
- }
- if (!fClosed) {
- try {
- fStream.close();
- } catch (IOException e) {
- DebugPlugin.log(e);
- }
- }
- }
-
- /**
- * Write the text in the queue to the stream.
- */
- protected void writeNext() {
- while (!fQueue.isEmpty() && !fClosed) {
- String text = (String)fQueue.firstElement();
- fQueue.removeElementAt(0);
- try {
- fStream.write(text.getBytes());
- fStream.flush();
- } catch (IOException e) {
- DebugPlugin.log(e);
- }
- }
- try {
- synchronized(fLock) {
- fLock.wait();
- }
- } catch (InterruptedException e) {
- }
- }
-
- /**
- * Closes the output stream attached to the standard input stream of this
- * monitor's process.
- */
- public void closeInputStream() throws IOException {
- if (!fClosed) {
- fClosed = true;
- fStream.close();
- } else {
- throw new IOException();
- }
-
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
deleted file mode 100644
index c1e1a1bca..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
+++ /dev/null
@@ -1,602 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.text.MessageFormat;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-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.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.Launch;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate2;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-import org.eclipse.debug.core.sourcelookup.IPersistableSourceLocator2;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * Launch configuration handle.
- *
- * @see ILaunchConfiguration
- */
-public class LaunchConfiguration extends PlatformObject implements ILaunchConfiguration {
-
- /**
- * Location this configuration is stored in. This
- * is the key for a launch configuration handle.
- */
- private IPath fLocation;
-
- /**
- * Constructs a launch configuration in the given location.
- *
- * @param location path to where this launch configuration's
- * underlying file is located
- */
- protected LaunchConfiguration(IPath location) {
- setLocation(location);
- }
-
- /**
- * Constructs a launch configuration from the given
- * memento.
- *
- * @param memento launch configuration memento
- * @exception CoreException if the memento is invalid or
- * an exception occurs reading the memento
- */
- protected LaunchConfiguration(String memento) throws CoreException {
- Exception ex = null;
- try {
- Element root = null;
- DocumentBuilder parser =
- DocumentBuilderFactory.newInstance().newDocumentBuilder();
- StringReader reader = new StringReader(memento);
- InputSource source = new InputSource(reader);
- root = parser.parse(source).getDocumentElement();
-
- String localString = root.getAttribute("local"); //$NON-NLS-1$
- String path = root.getAttribute("path"); //$NON-NLS-1$
-
- String message = null;
- if (path == null) {
- message = DebugCoreMessages.getString("LaunchConfiguration.Invalid_launch_configuration_memento__missing_path_attribute_3"); //$NON-NLS-1$
- } else if (localString == null) {
- message = DebugCoreMessages.getString("LaunchConfiguration.Invalid_launch_configuration_memento__missing_local_attribute_4"); //$NON-NLS-1$
- }
- if (message != null) {
- IStatus s = newStatus(message, DebugException.INTERNAL_ERROR, null);
- throw new CoreException(s);
- }
-
- IPath location = null;
- boolean local = (Boolean.valueOf(localString)).booleanValue();
- if (local) {
- location = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH.append(path);
- } else {
- location = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path)).getLocation();
- }
- setLocation(location);
- if (location == null) {
- IStatus s = newStatus(MessageFormat.format(DebugCoreMessages.getString("LaunchConfiguration.Unable_to_restore_location_for_launch_configuration_from_memento__{0}_1"), new String[]{path}), DebugPlugin.INTERNAL_ERROR, null); //$NON-NLS-1$
- throw new CoreException(s);
- }
- return;
- } catch (ParserConfigurationException e) {
- ex = e;
- } catch (SAXException e) {
- ex = e;
- } catch (IOException e) {
- ex = e;
- }
- IStatus s = newStatus(DebugCoreMessages.getString("LaunchConfiguration.Exception_occurred_parsing_memento_5"), DebugException.INTERNAL_ERROR, ex); //$NON-NLS-1$
- throw new CoreException(s);
- }
-
- /**
- * Creates and returns a new error status based on
- * the given message, code, and exception.
- *
- * @param message error message
- * @param code error code
- * @param e exception or <code>null</code>
- * @return status
- */
- protected IStatus newStatus(String message, int code, Throwable e) {
- return new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), code, message, e);
- }
-
- /**
- * @see ILaunchConfiguration#launch(String, IProgressMonitor)
- */
- public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException {
- return launch(mode, monitor, false);
- }
-
- /**
- * Set the source locator to use with the launch, if specified
- * by this configuration.
- *
- * @param launch the launch on which to set the source locator
- */
- protected void initializeSourceLocator(ILaunch launch) throws CoreException {
- if (launch.getSourceLocator() == null) {
- String type = getAttribute(ATTR_SOURCE_LOCATOR_ID, (String)null);
- if (type == null) {
- type = getType().getSourceLocatorId();
- }
- if (type != null) {
- IPersistableSourceLocator locator = getLaunchManager().newSourceLocator(type);
- String memento = getAttribute(ATTR_SOURCE_LOCATOR_MEMENTO, (String)null);
- if (memento == null) {
- locator.initializeDefaults(this);
- } else {
- if(locator instanceof IPersistableSourceLocator2)
- ((IPersistableSourceLocator2)locator).initializeFromMemento(memento, this);
- else
- locator.initializeFromMemento(memento);
- }
- launch.setSourceLocator(locator);
- }
- }
- }
-
- /**
- * @see ILaunchConfiguration#supportsMode(String)
- */
- public boolean supportsMode(String mode) throws CoreException {
- return getType().supportsMode(mode);
- }
-
- /**
- * A configuration's name is that of the last segment
- * in it's location (subtract the ".launch" extension).
- *
- * @see ILaunchConfiguration#getName()
- */
- public String getName() {
- return getLastLocationSegment();
- }
-
- private String getLastLocationSegment() {
- String name = getLocation().lastSegment();
- if (name.length() > LAUNCH_CONFIGURATION_FILE_EXTENSION.length()) {
- name = name.substring(0, name.length() - (LAUNCH_CONFIGURATION_FILE_EXTENSION.length() + 1));
- }
- return name;
- }
-
- /**
- * @see ILaunchConfiguration#getLocation()
- */
- public IPath getLocation() {
- return fLocation;
- }
-
- /**
- * Sets the location of this configuration's underlying
- * file.
- *
- * @param location the location of this configuration's underlying
- * file
- */
- private void setLocation(IPath location) {
- fLocation = location;
- }
-
- /**
- * @see ILaunchConfiguration#exists()
- */
- public boolean exists() {
- return getLocation().toFile().exists();
- }
-
- /**
- * @see ILaunchConfiguration#getAttribute(String, int)
- */
- public int getAttribute(String attributeName, int defaultValue) throws CoreException {
- return getInfo().getIntAttribute(attributeName, defaultValue);
- }
-
- /**
- * @see ILaunchConfiguration#getAttribute(String, String)
- */
- public String getAttribute(String attributeName, String defaultValue) throws CoreException {
- return getInfo().getStringAttribute(attributeName, defaultValue);
- }
-
- /**
- * @see ILaunchConfiguration#getAttribute(String, boolean)
- */
- public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException {
- return getInfo().getBooleanAttribute(attributeName, defaultValue);
- }
-
- /**
- * @see ILaunchConfiguration#getAttribute(String, List)
- */
- public List getAttribute(String attributeName, List defaultValue) throws CoreException {
- return getInfo().getListAttribute(attributeName, defaultValue);
- }
-
- /**
- * @see ILaunchConfiguration#getAttribute(String, Map)
- */
- public Map getAttribute(String attributeName, Map defaultValue) throws CoreException {
- return getInfo().getMapAttribute(attributeName, defaultValue);
- }
-
- /**
- * @see ILaunchConfiguration#getType()
- */
- public ILaunchConfigurationType getType() throws CoreException {
- return getInfo().getType();
- }
-
- /**
- * @see ILaunchConfiguration#isLocal()
- */
- public boolean isLocal() {
- IPath localPath = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;
- return localPath.isPrefixOf(getLocation());
- }
-
- /**
- * @see ILaunchConfiguration#getWorkingCopy()
- */
- public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException {
- return new LaunchConfigurationWorkingCopy(this);
- }
-
- /**
- * @see ILaunchConfiguration#copy(String name)
- */
- public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException {
- ILaunchConfigurationWorkingCopy copy = new LaunchConfigurationWorkingCopy(this, name);
- return copy;
- }
-
- /**
- * @see ILaunchConfiguration#isWorkingCopy()
- */
- public boolean isWorkingCopy() {
- return false;
- }
-
- /**
- * @see ILaunchConfiguration#delete()
- */
- public void delete() throws CoreException {
- if (exists()) {
- if (isLocal()) {
- if (!(getLocation().toFile().delete())) {
- throw new DebugException(
- new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfiguration.Failed_to_delete_launch_configuration._1"), null) //$NON-NLS-1$
- );
- }
- // manually update the launch manager cache since there
- // will be no resource delta
- getLaunchManager().launchConfigurationDeleted(this);
- } else {
- // delete the resource using IFile API such that
- // resource deltas are fired.
- IFile file = getFile();
- if (file != null) {
- // validate edit
- if (file.isReadOnly()) {
- IStatus status = ResourcesPlugin.getWorkspace().validateEdit(new IFile[] {file}, null);
- if (!status.isOK()) {
- throw new CoreException(status);
- }
- }
- file.delete(true, null);
- } else {
- // Error - the exists test passed, but could not locate file
- }
- }
- }
- }
-
- /**
- * Returns the info object containing the attributes
- * of this configuration
- *
- * @return info for this handle
- * @exception CoreException if unable to retrieve the
- * info object
- */
- protected LaunchConfigurationInfo getInfo() throws CoreException {
- return getLaunchManager().getInfo(this);
- }
-
- /**
- * Returns the launch configuration delegate for this
- * launch configuration, for the specified launch mode.
- *
- * @param mode launch mode
- * @return launch configuration delegate
- * @exception CoreException if the delegate was unable
- * to be created
- */
- protected ILaunchConfigurationDelegate getDelegate(String mode) throws CoreException {
- return getType().getDelegate(mode);
- }
-
- /**
- * Returns the launch manager
- *
- * @return launch manager
- */
- protected LaunchManager getLaunchManager() {
- return (LaunchManager)DebugPlugin.getDefault().getLaunchManager();
- }
-
- /**
- * @see ILaunchConfiguration#getMemento()
- */
- public String getMemento() throws CoreException {
- IPath relativePath = null;
- if (isLocal()) {
- IPath rootPath = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;
- IPath configPath = getLocation();
- relativePath = configPath.removeFirstSegments(rootPath.segmentCount());
- relativePath = relativePath.setDevice(null);
- } else {
- IFile file = getFile();
- if (file == null) {
- // cannot generate memento - missing file
- IStatus status = newStatus(MessageFormat.format(DebugCoreMessages.getString("LaunchConfiguration.Unable_to_generate_memento_for_{0},_shared_file_does_not_exist._1"), new String[]{getName()}), DebugException.INTERNAL_ERROR, null); //$NON-NLS-1$
- throw new CoreException(status);
- }
- relativePath = getFile().getFullPath();
- }
- Exception e= null;
- try {
- Document doc = LaunchManager.getDocument();
- Element node = doc.createElement("launchConfiguration"); //$NON-NLS-1$
- doc.appendChild(node);
- node.setAttribute("local", (new Boolean(isLocal())).toString()); //$NON-NLS-1$
- node.setAttribute("path", relativePath.toString()); //$NON-NLS-1$
- return LaunchManager.serializeDocument(doc);
- } catch (IOException ioe) {
- e= ioe;
- } catch (ParserConfigurationException pce) {
- e= pce;
- } catch (TransformerException te) {
- e= te;
- }
- if (e != null) {
- IStatus status = newStatus(DebugCoreMessages.getString("LaunchConfiguration.Exception_occurred_creating_launch_configuration_memento_9"), DebugException.INTERNAL_ERROR, e); //$NON-NLS-1$
- throw new CoreException(status);
- }
- //execution will never reach here
- return null;
-
- }
-
- /**
- * @see ILaunchConfiguration#getFile()
- */
- public IFile getFile() {
- if (isLocal()) {
- return null;
- }
- IFile[] files= ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(getLocation());
- if (files.length > 0) {
- return files[0];
- }
- return null;
- }
-
- /**
- * @see ILaunchConfiguration#contentsEqual(ILaunchConfiguration)
- */
- public boolean contentsEqual(ILaunchConfiguration object) {
- try {
- if (object instanceof LaunchConfiguration) {
- LaunchConfiguration otherConfig = (LaunchConfiguration) object;
- return getName().equals(otherConfig.getName())
- && getType().equals(otherConfig.getType())
- && getLocation().equals(otherConfig.getLocation())
- && getInfo().equals(otherConfig.getInfo());
- }
- return false;
- } catch (CoreException ce) {
- return false;
- }
- }
-
- /**
- * Returns whether this configuration is equal to the
- * given configuration. Two configurations are equal if
- * they are stored in the same location (and neither one
- * is a working copy).
- *
- * @return whether this configuration is equal to the
- * given configuration
- * @see Object#equals(Object)
- */
- public boolean equals(Object object) {
- if (object instanceof ILaunchConfiguration) {
- if (isWorkingCopy()) {
- return this == object;
- }
- ILaunchConfiguration config = (ILaunchConfiguration) object;
- if (!config.isWorkingCopy()) {
- return config.getLocation().equals(getLocation());
- }
- }
- return false;
- }
-
- /**
- * @see Object#hashCode()
- */
- public int hashCode() {
- return getLocation().hashCode();
- }
-
- /**
- * Returns the container this launch configuration is
- * stored in, or <code>null</code> if this launch configuration
- * is stored locally.
- *
- * @return the container this launch configuration is
- * stored in, or <code>null</code> if this launch configuration
- * is stored locally
- */
- protected IContainer getContainer() {
- IFile file = getFile();
- if (file != null) {
- return file.getParent();
- }
- return null;
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchConfiguration#getCategory()
- */
- public String getCategory() throws CoreException {
- return getType().getCategory();
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchConfiguration#getAttributes()
- */
- public Map getAttributes() throws CoreException {
- LaunchConfigurationInfo info = getInfo();
- return info.getAttributes();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfiguration#launch(java.lang.String, org.eclipse.core.runtime.IProgressMonitor, boolean)
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build) throws CoreException {
- return launch(mode, monitor, build, true);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfiguration#launch(java.lang.String, org.eclipse.core.runtime.IProgressMonitor, boolean, boolean)
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build, boolean register) throws CoreException {
- // bug 28245 - force the delegate to load in case it is interested in launch notifications
- ILaunchConfigurationDelegate delegate= getDelegate(mode);
- ILaunchConfigurationDelegate2 delegate2 = null;
- if (delegate instanceof ILaunchConfigurationDelegate2) {
- delegate2 = (ILaunchConfigurationDelegate2) delegate;
- }
- // allow the delegate to provide a launch implementation
- ILaunch launch = null;
- if (delegate2 != null) {
- launch = delegate2.getLaunch(this, mode);
- }
- if (launch == null) {
- launch = new Launch(this, mode, null);
- } else {
- // ensure the launch mode is valid
- if (!mode.equals(launch.getLaunchMode())) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR,
- MessageFormat.format(DebugCoreMessages.getString("LaunchConfiguration.13"), new String[]{mode, launch.getLaunchMode()}), null); //$NON-NLS-1$
- throw new CoreException(status);
- }
- }
-
- boolean captureOutput = getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, true);
- if(!captureOutput) {
- launch.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, "false"); //$NON-NLS-1$
- } else {
- launch.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, null);
- }
-
-
- if (monitor == null) {
- monitor= new NullProgressMonitor();
- }
- // perform initial pre-launch sanity checks
- if (delegate2 != null) {
- if (!(delegate2.preLaunchCheck(this, mode, monitor))) {
- // canceled
- monitor.setCanceled(true);
- return launch;
- }
- }
- // preform pre-launch build
- IProgressMonitor subMonitor = monitor;
- if (build) {
- subMonitor = new SubProgressMonitor(monitor, 100);
- if (delegate2 != null) {
- build = delegate2.buildForLaunch(this, mode, subMonitor);
- }
- if (build) {
- ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, subMonitor);
- }
- subMonitor = new SubProgressMonitor(monitor, 100);
- }
- // final validation
- if (delegate2 != null) {
- if (!(delegate2.finalLaunchCheck(this, mode, subMonitor))) {
- // canceled
- monitor.setCanceled(true);
- return launch;
- }
- }
-
- if (register) {
- getLaunchManager().addLaunch(launch);
- }
- try {
- initializeSourceLocator(launch);
- delegate.launch(this, mode, launch, subMonitor);
- } catch (CoreException e) {
- // if there was an exception, and the launch is empty, remove it
- if (!launch.hasChildren()) {
- getLaunchManager().removeLaunch(launch);
- }
- throw e;
- }
- if (monitor.isCanceled()) {
- getLaunchManager().removeLaunch(launch);
- }
- return launch;
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
deleted file mode 100644
index 2032315f5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * Proxy to a runtime classpath entry resolver extension.
- */
-public class LaunchConfigurationComparator implements Comparator {
-
- private IConfigurationElement fConfigurationElement;
-
- private Comparator fDelegate;
-
- /**
- * Constructs a new resolver on the given configuration element
- */
- public LaunchConfigurationComparator(IConfigurationElement element) {
- fConfigurationElement = element;
- }
-
- /**
- * Returns the resolver delegate (and creates if required)
- */
- protected Comparator getComparator() {
- if (fDelegate == null) {
- try {
- fDelegate = (Comparator)fConfigurationElement.createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- return fDelegate;
- }
-
-
- /**
- * @see Comparator#compare(Object, Object)
- */
- public int compare(Object o1, Object o2) {
- return getComparator().compare(o1, o2);
- }
-
- /**
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
- return getComparator().equals(obj);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
deleted file mode 100644
index df35b7e69..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * The information associated with a launch configuration
- * handle.
- */
-public class LaunchConfigurationInfo {
-
- /**
- * This configurations attribute table.
- * Keys are <code>String</code>s and values
- * are one of <code>String</code>, <code>Integer</code>,
- * or <code>Boolean</code>.
- */
- private HashMap fAttributes;
-
- /**
- * This launch configuration's type
- */
- private ILaunchConfigurationType fType;
-
- /**
- * Constructs a new empty info
- */
- protected LaunchConfigurationInfo() {
- setAttributeTable(new HashMap(10));
- }
-
- /**
- * Returns this configuration's attribute table.
- *
- * @return attribute table
- */
- private HashMap getAttributeTable() {
- return fAttributes;
- }
-
- /**
- * Sets this configuration's attribute table.
- *
- * @param table attribute table
- */
- private void setAttributeTable(HashMap table) {
- fAttributes = table;
- }
-
- /**
- * Sets the attributes in this info to those in the given map.
- *
- * @param map
- */
- protected void setAttributes(Map map) {
- if (map == null) {
- setAttributeTable(new HashMap());
- return;
- }
- Set entrySet = map.entrySet();
- HashMap attributes = new HashMap(entrySet.size());
- Iterator iter = entrySet.iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry)iter.next();
- attributes.put(entry.getKey(), entry.getValue());
- }
- setAttributeTable(attributes);
- }
-
- /**
- * Returns the <code>String</code> attribute with the
- * given key or the given default value if undefined.
- *
- * @return attribute specified by given key or the defaultValue
- * if undefined
- * @throws CoreException if the attribute with the given key exists
- * but is not a <code>String</code>
- */
- protected String getStringAttribute(String key, String defaultValue) throws CoreException {
- Object attr = getAttributeTable().get(key);
- if (attr != null) {
- if (attr instanceof String) {
- return (String)attr;
- }
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.lang.String._1"), new String[] {key}), null //$NON-NLS-1$
- )
- );
- }
- return defaultValue;
- }
-
- /**
- * Returns the <code>int</code> attribute with the
- * given key or the given default value if undefined.
- *
- * @return attribute specified by given key or the defaultValue
- * if undefined
- * @throws CoreException if the attribute with the given key exists
- * but is not an <code>int</code>
- */
- protected int getIntAttribute(String key, int defaultValue) throws CoreException {
- Object attr = getAttributeTable().get(key);
- if (attr != null) {
- if (attr instanceof Integer) {
- return ((Integer)attr).intValue();
- }
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_int._2"), new String[] {key}), null //$NON-NLS-1$
- )
- );
- }
- return defaultValue;
- }
-
- /**
- * Returns the <code>boolean</code> attribute with the
- * given key or the given default value if undefined.
- *
- * @return attribute specified by given key or the defaultValue
- * if undefined
- * @throws CoreException if the attribute with the given key exists
- * but is not a <code>boolean</code>
- */
- protected boolean getBooleanAttribute(String key, boolean defaultValue) throws CoreException {
- Object attr = getAttributeTable().get(key);
- if (attr != null) {
- if (attr instanceof Boolean) {
- return ((Boolean)attr).booleanValue();
- }
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_boolean._3"), new String[] {key}), null //$NON-NLS-1$
- )
- );
- }
- return defaultValue;
- }
-
- /**
- * Returns the <code>java.util.List</code> attribute with the
- * given key or the given default value if undefined.
- *
- * @return attribute specified by given key or the defaultValue
- * if undefined
- * @throws CoreException if the attribute with the given key exists
- * but is not a <code>java.util.List</code>
- */
- protected List getListAttribute(String key, List defaultValue) throws CoreException {
- Object attr = getAttributeTable().get(key);
- if (attr != null) {
- if (attr instanceof List) {
- return (List)attr;
- }
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.List._1"), new String[] {key}), null //$NON-NLS-1$
- )
- );
- }
- return defaultValue;
- }
-
- /**
- * Returns the <code>java.util.Map</code> attribute with the
- * given key or the given default value if undefined.
- *
- * @return attribute specified by given key or the defaultValue
- * if undefined
- * @throws CoreException if the attribute with the given key exists
- * but is not a <code>java.util.Map</code>
- */
- protected Map getMapAttribute(String key, Map defaultValue) throws CoreException {
- Object attr = getAttributeTable().get(key);
- if (attr != null) {
- if (attr instanceof Map) {
- return (Map)attr;
- }
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.Map._1"), new String[] {key}), null //$NON-NLS-1$
- )
- );
- }
- return defaultValue;
- }
-
- /**
- * Sets this configuration's type.
- *
- * @param type launch configuration type
- */
- protected void setType(ILaunchConfigurationType type) {
- fType = type;
- }
-
- /**
- * Returns this configuration's type.
- *
- * @return launch configuration type
- */
- protected ILaunchConfigurationType getType() {
- return fType;
- }
-
-
- /**
- * Returns a copy of this info object
- *
- * @return copy of this info
- */
- protected LaunchConfigurationInfo getCopy() {
- LaunchConfigurationInfo copy = new LaunchConfigurationInfo();
- copy.setType(getType());
- copy.setAttributeTable(getAttributes());
- return copy;
- }
-
- /**
- * Returns a copy of this info's attribute map.
- *
- * @return a copy of this info's attribute map
- */
- protected HashMap getAttributes() {
- return (HashMap)getAttributeTable().clone();
- }
-
- /**
- * Sets the given attribute to the given value. Only
- * working copy's should use this API.
- *
- * @param key attribute key
- * @param value attribute value
- */
- protected void setAttribute(String key, Object value) {
- if (value == null) {
- getAttributeTable().remove(key);
- } else {
- getAttributeTable().put(key, value);
- }
- }
-
- /**
- * Returns the content of this info as XML
- *
- * @return the content of this info as XML
- * @throws CoreException if a attribute has been set with a null key
- * @throws IOException if an exception occurs creating the XML
- * @throws ParserConfigurationException if an exception occurs creating the XML
- * @throws TransformerException if an exception occurs creating the XML
- */
- protected String getAsXML() throws CoreException, IOException, ParserConfigurationException, TransformerException {
-
- Document doc = LaunchManager.getDocument();
- Element configRootElement = doc.createElement("launchConfiguration"); //$NON-NLS-1$
- doc.appendChild(configRootElement);
-
- configRootElement.setAttribute("type", getType().getIdentifier()); //$NON-NLS-1$
-
- Iterator keys = getAttributeTable().keySet().iterator();
- while (keys.hasNext()) {
- String key = (String)keys.next();
- if (key == null) {
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationInfo.36"), null //$NON-NLS-1$
- )
- );
- }
- Object value = getAttributeTable().get(key);
- if (value == null) {
- continue;
- }
- Element element = null;
- String valueString = null;
- if (value instanceof String) {
- valueString = (String)value;
- element = createKeyValueElement(doc, "stringAttribute", key, valueString); //$NON-NLS-1$
- } else if (value instanceof Integer) {
- valueString = ((Integer)value).toString();
- element = createKeyValueElement(doc, "intAttribute", key, valueString); //$NON-NLS-1$
- } else if (value instanceof Boolean) {
- valueString = ((Boolean)value).toString();
- element = createKeyValueElement(doc, "booleanAttribute", key, valueString); //$NON-NLS-1$
- } else if (value instanceof List) {
- element = createListElement(doc, "listAttribute", key, (List)value); //$NON-NLS-1$
- } else if (value instanceof Map) {
- element = createMapElement(doc, "mapAttribute", key, (Map)value); //$NON-NLS-1$
- }
- configRootElement.appendChild(element);
- }
-
- return LaunchManager.serializeDocument(doc);
- }
-
- /**
- * Helper method that creates a 'key value' element of the specified type with the
- * specified attribute values.
- */
- protected Element createKeyValueElement(Document doc, String elementType, String key, String value) {
- Element element = doc.createElement(elementType);
- element.setAttribute("key", key); //$NON-NLS-1$
- element.setAttribute("value", value); //$NON-NLS-1$
- return element;
- }
-
- protected Element createListElement(Document doc, String elementType, String listKey, List list) {
- Element listElement = doc.createElement(elementType);
- listElement.setAttribute("key", listKey); //$NON-NLS-1$
- Iterator iterator = list.iterator();
- while (iterator.hasNext()) {
- String value = (String) iterator.next();
- Element element = doc.createElement("listEntry"); //$NON-NLS-1$
- element.setAttribute("value", value); //$NON-NLS-1$
- listElement.appendChild(element);
- }
- return listElement;
- }
-
- protected Element createMapElement(Document doc, String elementType, String mapKey, Map map) {
- Element mapElement = doc.createElement(elementType);
- mapElement.setAttribute("key", mapKey); //$NON-NLS-1$
- Iterator iterator = map.keySet().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- String value = (String) map.get(key);
- Element element = doc.createElement("mapEntry"); //$NON-NLS-1$
- element.setAttribute("key", key); //$NON-NLS-1$
- element.setAttribute("value", value); //$NON-NLS-1$
- mapElement.appendChild(element);
- }
- return mapElement;
- }
-
- protected void initializeFromXML(Element root) throws CoreException {
- if (!root.getNodeName().equalsIgnoreCase("launchConfiguration")) { //$NON-NLS-1$
- throw getInvalidFormatDebugException();
- }
-
- // read type
- String id = root.getAttribute("type"); //$NON-NLS-1$
- if (id == null) {
- throw getInvalidFormatDebugException();
- }
-
- ILaunchConfigurationType type = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(id);
- if (type == null) {
- String message= MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.missing_type"), new Object[]{id}); //$NON-NLS-1$
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.MISSING_LAUNCH_CONFIGURATION_TYPE, message, null)
- );
- }
- setType(type);
-
- NodeList list = root.getChildNodes();
- int length = list.getLength();
- for (int i = 0; i < length; ++i) {
- Node node = list.item(i);
- short nodeType = node.getNodeType();
- if (nodeType == Node.ELEMENT_NODE) {
- Element element = (Element) node;
- String nodeName = element.getNodeName();
-
- if (nodeName.equalsIgnoreCase("stringAttribute")) { //$NON-NLS-1$
- setStringAttribute(element);
- } else if (nodeName.equalsIgnoreCase("intAttribute")) { //$NON-NLS-1$
- setIntegerAttribute(element);
- } else if (nodeName.equalsIgnoreCase("booleanAttribute")) { //$NON-NLS-1$
- setBooleanAttribute(element);
- } else if (nodeName.equalsIgnoreCase("listAttribute")) { //$NON-NLS-1$
- setListAttribute(element);
- } else if (nodeName.equalsIgnoreCase("mapAttribute")) { //$NON-NLS-1$
- setMapAttribute(element);
- }
- }
- }
- }
-
- protected void setStringAttribute(Element element) throws CoreException {
- String key = getKeyAttribute(element);
- String value = getValueAttribute(element);
- setAttribute(key, value);
- }
-
- protected void setIntegerAttribute(Element element) throws CoreException {
- String key = getKeyAttribute(element);
- String value = getValueAttribute(element);
- setAttribute(key, new Integer(value));
- }
-
- protected void setBooleanAttribute(Element element) throws CoreException {
- String key = getKeyAttribute(element);
- String value = getValueAttribute(element);
- setAttribute(key, new Boolean(value));
- }
-
- protected void setListAttribute(Element element) throws CoreException {
- String listKey = element.getAttribute("key"); //$NON-NLS-1$
- NodeList nodeList = element.getChildNodes();
- int entryCount = nodeList.getLength();
- List list = new ArrayList(entryCount);
- for (int i = 0; i < entryCount; i++) {
- Node node = nodeList.item(i);
- short type = node.getNodeType();
- if (type == Node.ELEMENT_NODE) {
- Element subElement = (Element) node;
- String nodeName = subElement.getNodeName();
- if (!nodeName.equalsIgnoreCase("listEntry")) { //$NON-NLS-1$
- throw getInvalidFormatDebugException();
- }
- String value = getValueAttribute(subElement);
- list.add(value);
- }
- }
- setAttribute(listKey, list);
- }
-
- protected void setMapAttribute(Element element) throws CoreException {
- String mapKey = element.getAttribute("key"); //$NON-NLS-1$
- NodeList nodeList = element.getChildNodes();
- int entryCount = nodeList.getLength();
- Map map = new HashMap(entryCount);
- for (int i = 0; i < entryCount; i++) {
- Node node = nodeList.item(i);
- short type = node.getNodeType();
- if (type == Node.ELEMENT_NODE) {
- Element subElement = (Element) node;
- String nodeName = subElement.getNodeName();
- if (!nodeName.equalsIgnoreCase("mapEntry")) { //$NON-NLS-1$
- throw getInvalidFormatDebugException();
- }
- String key = getKeyAttribute(subElement);
- String value = getValueAttribute(subElement);
- map.put(key, value);
- }
- }
- setAttribute(mapKey, map);
- }
-
- protected String getKeyAttribute(Element element) throws CoreException {
- String key = element.getAttribute("key"); //$NON-NLS-1$
- if (key == null) {
- throw getInvalidFormatDebugException();
- }
- return key;
- }
-
- protected String getValueAttribute(Element element) throws CoreException {
- String value = element.getAttribute("value"); //$NON-NLS-1$
- if (value == null) {
- throw getInvalidFormatDebugException();
- }
- return value;
- }
-
- protected DebugException getInvalidFormatDebugException() {
- return
- new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationInfo.Invalid_launch_configuration_XML._10"), null //$NON-NLS-1$
- )
- );
- }
-
- /**
- * Two <code>LaunchConfigurationInfo</code> objects are equal if and only if they have the
- * same type and they have the same set of attributes with the same values.
- *
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
-
- // Make sure it's a LaunchConfigurationInfo object
- if (!(obj instanceof LaunchConfigurationInfo)) {
- return false;
- }
-
- // Make sure the types are the same
- LaunchConfigurationInfo other = (LaunchConfigurationInfo) obj;
- if (!fType.getIdentifier().equals(other.getType().getIdentifier())) {
- return false;
- }
-
- // Make sure the attributes are the same
- return compareAttributes(fAttributes, other.getAttributeTable());
- }
-
- /**
- * Returns whether the two attribute maps are equal, consulting
- * registered comparator extensions.
- *
- * @param map1 attribute map
- * @param map2 attribute map
- * @return whether the two attribute maps are equal
- */
- protected boolean compareAttributes(HashMap map1, HashMap map2) {
- LaunchManager manager = (LaunchManager)DebugPlugin.getDefault().getLaunchManager();
- if (map1.size() == map2.size()) {
- Iterator attributes = map1.keySet().iterator();
- while (attributes.hasNext()) {
- String key = (String)attributes.next();
- Object attr1 = map1.get(key);
- Object attr2 = map2.get(key);
- if (attr2 == null) {
- return false;
- }
- Comparator comp = manager.getComparator(key);
- if (comp == null) {
- if (!attr1.equals(attr2)) {
- return false;
- }
- } else {
- if (comp.compare(attr1, attr2) != 0) {
- return false;
- }
- }
- }
- return true;
- }
- return false;
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return fType.hashCode() + fAttributes.size();
- }
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
deleted file mode 100644
index 7a6873a24..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.text.MessageFormat;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-
-/**
- * A launch configuration type wrappers a configuration
- * element for a <code>launchConfigurationType</code>
- * extension.
- */
-public class LaunchConfigurationType extends PlatformObject implements ILaunchConfigurationType {
-
- /**
- * The configuration element of the extension.
- */
- private IConfigurationElement fElement;
-
- /**
- * Base modes this type supports.
- */
- private Set fBaseModes;
-
- /**
- * Modes that delegates have been contributed for
- */
- private Set fContributedModes;
-
- /**
- * The delegates for launch configurations of this type.
- * Delegates are instantiated lazily as required. There may
- * be different delegates for different modes (since 3.0).
- * Map of mode -> delegate
- */
- private Map fDelegates;
-
- /**
- * Constructs a new launch configuration type on the
- * given configuration element.
- *
- * @param element configuration element
- */
- protected LaunchConfigurationType(IConfigurationElement element) {
- setConfigurationElement(element);
- }
-
- /**
- * Sets this type's configuration element.
- *
- * @param element this type's configuration element
- */
- private void setConfigurationElement(IConfigurationElement element) {
- fElement = element;
- }
-
- /**
- * Returns this type's configuration element.
- *
- * @return this type's configuration element
- */
- protected IConfigurationElement getConfigurationElement() {
- return fElement;
- }
-
-
- /**
- * @see ILaunchConfigurationType#supportsMode(String)
- */
- public boolean supportsMode(String mode) {
- return getBaseModes().contains(mode) || getContributedModes().contains(mode);
- }
-
- /**
- * Returns the set of modes specified in the configuration data.
- *
- * @return the set of modes specified in the configuration data
- */
- protected Set getBaseModes() {
- if (fBaseModes == null) {
- String modes= getConfigurationElement().getAttribute("modes"); //$NON-NLS-1$
- if (modes == null) {
- return new HashSet(0);
- }
- StringTokenizer tokenizer= new StringTokenizer(modes, ","); //$NON-NLS-1$
- fBaseModes = new HashSet(tokenizer.countTokens());
- while (tokenizer.hasMoreTokens()) {
- fBaseModes.add(tokenizer.nextToken().trim());
- }
- }
- return fBaseModes;
- }
-
- /**
- * Returns the set of modes delegates have been contributed for
- *
- * @return the set of modes delegates have been contributed for
- */
- protected Set getContributedModes() {
- if (fContributedModes == null) {
- fContributedModes = new HashSet(0);
- // add modes for contributed delegates
- List delegates = ((LaunchManager)DebugPlugin.getDefault().getLaunchManager()).getContributedDelegates();
- Iterator iterator = delegates.iterator();
- while (iterator.hasNext()) {
- ContributedDelegate delegate = (ContributedDelegate)iterator.next();
- if (delegate.getLaunchConfigurationType().equals(getIdentifier())) {
- fContributedModes.addAll(delegate.getModes());
- }
- }
- }
- return fContributedModes;
- }
-
- /**
- * @see ILaunchConfigurationType#getName()
- */
- public String getName() {
- return getConfigurationElement().getAttribute("name"); //$NON-NLS-1$
- }
-
- /**
- * @see ILaunchConfigurationType#getSourcePathComputer()
- */
- public ISourcePathComputer getSourcePathComputer() {
- String id = getConfigurationElement().getAttribute("sourcePathComputerId"); //$NON-NLS-1$
- if (id != null && id.length() > 0) {
- return DebugPlugin.getDefault().getLaunchManager().getSourcePathComputer(id);
- }
- return null;
- }
-
- /**
- * @see ILaunchConfigurationType#getIdentifier()
- */
- public String getIdentifier() {
- return getConfigurationElement().getAttribute("id"); //$NON-NLS-1$
- }
-
- /**
- * @see ILaunchConfigurationType#getCategory()
- */
- public String getCategory() {
- return getConfigurationElement().getAttribute("category"); //$NON-NLS-1$
- }
-
- /**
- * @see ILaunchConfigurationType#getAttribute(String)
- */
- public String getAttribute(String attributeName) {
- return getConfigurationElement().getAttribute(attributeName);
- }
-
- /**
- * @see ILaunchConfigurationType#isPublic()
- */
- public boolean isPublic() {
- String publicString = getConfigurationElement().getAttribute("public"); //$NON-NLS-1$
- if (publicString != null) {
- if (publicString.equalsIgnoreCase("false")) { //$NON-NLS-1$
- return false;
- }
- }
- return true;
- }
-
- /**
- * @see ILaunchConfigurationType#newInstance(IContainer, String)
- */
- public ILaunchConfigurationWorkingCopy newInstance(IContainer container, String name) {
- return new LaunchConfigurationWorkingCopy(container, name, this);
- }
-
- /**
- * Returns the launch configuration delegate for launch
- * configurations of this type. The first time this method
- * is called, the delegate is instantiated.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationType#getDelegate()
- * @return launch configuration delegate
- * @exception CoreException if unable to instantiate the
- * delegate
- * @deprecated use <code>getDelegate(String)</code> to specify mode
- */
- public ILaunchConfigurationDelegate getDelegate() throws CoreException {
- return getDelegate(ILaunchManager.RUN_MODE);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationType#getDelegate(java.lang.String)
- */
- public ILaunchConfigurationDelegate getDelegate(String mode) throws CoreException {
- if (!supportsMode(mode)) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationType.9"), new String[] {mode, getIdentifier()}), null)); //$NON-NLS-1$
- }
- if (fDelegates == null) {
- // initialize delegate table with base modes
- fDelegates = new Hashtable(3);
- }
- ILaunchConfigurationDelegate delegate = (ILaunchConfigurationDelegate)fDelegates.get(mode);
- if (delegate == null) {
- Set modes = getBaseModes();
- if (modes.contains(mode)) {
- Object object = getConfigurationElement().createExecutableExtension("delegate"); //$NON-NLS-1$
- if (object instanceof ILaunchConfigurationDelegate) {
- Iterator iter = modes.iterator();
- while (iter.hasNext()) {
- fDelegates.put(iter.next(), object);
- }
- return (ILaunchConfigurationDelegate)object;
- }
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationType.Launch_delegate_for_{0}_does_not_implement_required_interface_ILaunchConfigurationDelegate._1"), new String[]{getName()}), null)); //$NON-NLS-1$
- }
- // contributed modes
- List contributed = ((LaunchManager)DebugPlugin.getDefault().getLaunchManager()).getContributedDelegates();
- Iterator iterator = contributed.iterator();
- while (iterator.hasNext()) {
- ContributedDelegate contributedDelegate = (ContributedDelegate)iterator.next();
- if (getIdentifier().equals(contributedDelegate.getLaunchConfigurationType())) {
- modes = contributedDelegate.getModes();
- if (modes.contains(mode)) {
- delegate = contributedDelegate.getDelegate();
- Iterator modesIterator = modes.iterator();
- while (modesIterator.hasNext()) {
- fDelegates.put(modesIterator.next(), delegate);
- }
- return delegate;
- }
- }
- }
- } else {
- return delegate;
- }
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationType.10"), new String[] {getIdentifier(), mode}), null)); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationType#getSourceLocatorId()
- */
- public String getSourceLocatorId() {
- return getAttribute("sourceLocatorId"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationType#getPluginId()
- */
- public String getPluginIdentifier() {
- return fElement.getNamespace();
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
deleted file mode 100644
index 4aa555ce5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
+++ /dev/null
@@ -1,595 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.MultiRule;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-
-/**
- * A working copy launch configuration
- */
-public class LaunchConfigurationWorkingCopy extends LaunchConfiguration implements ILaunchConfigurationWorkingCopy {
-
- /**
- * Handle of original launch configuration this
- * working copy is based on
- */
- private LaunchConfiguration fOriginal;
-
- /**
- * Working copy of attributes.
- */
- private LaunchConfigurationInfo fInfo;
-
- /**
- * Whether this working copy has been modified since
- * it was created
- */
- private boolean fDirty = false;
-
- /**
- * The name for this configuration.
- */
- private String fName;
-
- /**
- * Indicates whether this working copy has been explicitly renamed.
- */
- private boolean fRenamed = false;
-
- /**
- * Suppress change notification until created
- */
- private boolean fSuppressChange = true;
-
- /**
- * The container this working copy will be
- * stored in when saved.
- */
- private IContainer fContainer;
-
- /**
- * Constructs a working copy of the specified launch
- * configuration.
- *
- * @param original launch configuration to make
- * a working copy of
- * @exception CoreException if unable to initialize this
- * working copy's attributes based on the original configuration
- */
- protected LaunchConfigurationWorkingCopy(LaunchConfiguration original) throws CoreException {
- super(original.getLocation());
- setName(original.getName());
- copyFrom(original);
- setOriginal(original);
- fSuppressChange = false;
- }
-
- /**
- * Constructs a copy of the specified launch
- * configuration, with the given (new) name.
- *
- * @param original launch configuration to make
- * a working copy of
- * @param name the new name for the copy of the launch
- * configuration
- * @exception CoreException if unable to initialize this
- * working copy's attributes based on the original configuration
- */
- protected LaunchConfigurationWorkingCopy(LaunchConfiguration original, String name) throws CoreException {
- super(original.getLocation());
- copyFrom(original);
- setName(name);
- fSuppressChange = false;
- }
-
- /**
- * Constructs a new working copy to be created in the specified
- * location.
- *
- * @param container the container that the configuration will be created in
- * or <code>null</code> if to be local
- * @param name the name of the new launch configuration
- * @param type the type of this working copy
- */
- protected LaunchConfigurationWorkingCopy(IContainer container, String name, ILaunchConfigurationType type) {
- super((IPath)null);
- setName(name);
- setInfo(new LaunchConfigurationInfo());
- getInfo().setType(type);
- setContainer(container);
- fSuppressChange = false;
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#isDirty()
- */
- public boolean isDirty() {
- return fDirty;
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#doSave()
- */
- public ILaunchConfiguration doSave() throws CoreException {
- if (isDirty()) {
- boolean useRunnable= true;
- if (isLocal()) {
- if (isMoved()) {
- // If this config was moved from a shared location, saving
- // it will delete the original from the workspace. Use runnable.
- useRunnable= !isNew() && !getOriginal().isLocal();
- } else {
- useRunnable= false;
- }
- }
-
- if (useRunnable) {
- IWorkspaceRunnable wr = new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- doSave0();
- }
- };
-
- ResourcesPlugin.getWorkspace().run(wr, getSchedulingRule(), 0, null);
- } else {
- //file is persisted in the metadata not the workspace
- doSave0();
- }
-
- getLaunchManager().setMovedFromTo(null, null);
- }
-
- return new LaunchConfiguration(getLocation());
- }
-
- /**
- * Returns the scheduling rule to be used when saving this launch configuration.
- * <code>null</code> is a valid scheduling rule.
- *
- * @return the scheduling rule to be used when saving this launch configuration
- */
- private ISchedulingRule getSchedulingRule() {
- List rules= new ArrayList(2);
- IResourceRuleFactory fac = ResourcesPlugin.getWorkspace().getRuleFactory();
- if (!isLocal()) {
- //working copy will be saved to a workspace location - create or modify
- IFile[] files= ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(getLocation());
- if (files.length > 0) {
- IFile file = files[0];
- ISchedulingRule rule = null;
- if (file.exists()) {
- rule = fac.modifyRule(file);
- } else {
- rule = fac.createRule(file);
- }
- rules.add(MultiRule.combine(rule, fac.validateEditRule(files)));
- }
- }
- ILaunchConfiguration original = getOriginal();
- if (!isNew() && isMoved() && !original.isLocal()) {
- IFile[] files= ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(original.getLocation());
- if (files.length > 0) {
- rules.add(MultiRule.combine(fac.deleteRule(files[0]), fac.validateEditRule(files)));
- }
- }
- if (rules.isEmpty()) {
- return null;
- }
- return new MultiRule((ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules.size()]));
- }
-
- private void doSave0() throws CoreException {
- // set up from/to information if this is a move
- boolean moved = (!isNew() && isMoved());
- if (moved) {
- ILaunchConfiguration to = new LaunchConfiguration(getLocation());
- ILaunchConfiguration from = getOriginal();
- getLaunchManager().setMovedFromTo(from, to);
- }
- // delete the old file if this is not a new configuration
- // or the file was renamed/moved
- if (moved) {
- getOriginal().delete();
- }
- // write the new file
- writeNewFile();
- resetDirty();
- }
-
- /**
- * Writes the new configuration information to a file.
- *
- * @exception CoreException if writing the file fails
- */
- protected void writeNewFile() throws CoreException {
- String xml = null;
- Exception e= null;
- try {
- xml = getInfo().getAsXML();
- } catch (IOException ioe) {
- e= ioe;
- } catch (ParserConfigurationException pce) {
- e= pce;
- } catch (TransformerException te) {
- e= te;
- }
- if (e != null) {
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{e.toString()}), null //$NON-NLS-1$
- )
- );
- }
-
- if (isLocal()) {
- // use java.io to update configuration file
- try {
- boolean added = false;
- File file = getLocation().toFile();
- File dir = getLocation().removeLastSegments(1).toFile();
- dir.mkdirs();
- if (!file.exists()) {
- added = true;
- file.createNewFile();
- }
- FileOutputStream stream = new FileOutputStream(file);
- stream.write(xml.getBytes("UTF8")); //$NON-NLS-1$
- stream.close();
- if (added) {
- getLaunchManager().launchConfigurationAdded(new LaunchConfiguration(getLocation()));
- } else {
- getLaunchManager().launchConfigurationChanged(new LaunchConfiguration(getLocation()));
- }
- } catch (IOException ie) {
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{ie.toString()}), null //$NON-NLS-1$
- )
- );
- }
- } else {
- // use resource API to update configuration file
- IFile file = getFile();
- IContainer dir = file.getParent();
- if (!dir.exists()) {
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.Specified_container_for_launch_configuration_does_not_exist_2"), null //$NON-NLS-1$
- )
- );
- }
- ByteArrayInputStream stream = null;
- try {
- stream = new ByteArrayInputStream(xml.getBytes("UTF8")); //$NON-NLS-1$
- } catch (UnsupportedEncodingException ue) {
- throw new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationWorkingCopy.5"), null //$NON-NLS-1$
- ));
- }
- if (!file.exists()) {
- file.create(stream, false, null);
- } else {
- // validate edit
- if (file.isReadOnly()) {
- IStatus status = ResourcesPlugin.getWorkspace().validateEdit(new IFile[] {file}, null);
- if (!status.isOK()) {
- throw new CoreException(status);
- }
- }
- file.setContents(stream, false, false, null);
- }
- }
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setAttribute(String, int)
- */
- public void setAttribute(String attributeName, int value) {
- getInfo().setAttribute(attributeName, new Integer(value));
- setDirty();
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setAttribute(String, String)
- */
- public void setAttribute(String attributeName, String value) {
- getInfo().setAttribute(attributeName, value);
- setDirty();
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setAttribute(String, boolean)
- */
- public void setAttribute(String attributeName, boolean value) {
- getInfo().setAttribute(attributeName, new Boolean(value));
- setDirty();
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setAttribute(String, List)
- */
- public void setAttribute(String attributeName, List value) {
- getInfo().setAttribute(attributeName, value);
- setDirty();
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setAttribute(String, Map)
- */
- public void setAttribute(String attributeName, Map value) {
- getInfo().setAttribute(attributeName, value);
- setDirty();
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#getOriginal()
- */
- public ILaunchConfiguration getOriginal() {
- return fOriginal;
- }
-
- /**
- * Sets the launch configuration this working copy
- * is based on. Initializes the attributes of this
- * working copy to the current values of the given
- * configuration.
- *
- * @param originl the launch configuration this working
- * copy is based on.
- * @exception CoreException if unable to initialize this
- * working copy based on the original's current attribute
- * set
- */
- private void copyFrom(LaunchConfiguration original) throws CoreException {
- LaunchConfigurationInfo info = original.getInfo();
- setInfo(info.getCopy());
- setContainer(original.getContainer());
- resetDirty();
- }
-
- /**
- * Sets the launch configuration this working copy
- * is based on.
- *
- * @param original the launch configuration this working
- * copy is based on.
- */
- private void setOriginal(LaunchConfiguration original) {
- fOriginal = original;
- }
-
- /**
- * Sets the working copy info object for this working copy.
- *
- * @param info a copy of attributes from this working copy's
- * original launch configuration
- */
- protected void setInfo(LaunchConfigurationInfo info) {
- fInfo = info;
- }
-
- /**
- * @see ILaunchConfiguration#isWorkingCopy()
- */
- public boolean isWorkingCopy() {
- return true;
- }
-
- /**
- * A working copy keeps a local info object that is not
- * cached with the launch manager.
- *
- * @see LaunchConfiguration#getInfo()
- */
- protected LaunchConfigurationInfo getInfo() {
- return fInfo;
- }
-
- /**
- * Sets this working copy's state to dirty.
- * Notifies listeners that this working copy has
- * changed.
- */
- private void setDirty() {
- fDirty = true;
- if (!suppressChangeNotification()) {
- getLaunchManager().getConfigurationNotifier().notify(this, LaunchManager.CHANGED);
- }
- }
-
- /**
- * Sets this working copy's state to not dirty.
- */
- private void resetDirty() {
- fDirty = false;
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#rename(String)
- */
- public void rename(String name) {
- if (!getName().equals(name)) {
- setName(name);
- fRenamed = isNew() || !(getOriginal().getName().equals(name));
- }
- }
-
- /**
- * Sets the new name for this configuration.
- *
- * @param name the new name for this configuration
- */
- private void setName(String name) {
- fName = name;
- setDirty();
- }
-
- /**
- * @see ILaunchConfiguration#getName()
- */
- public String getName() {
- return fName;
- }
-
- /**
- * @see ILaunchConfiguration#isLocal()
- */
- public boolean isLocal() {
- return getContainer() == null;
- }
-
- /**
- * Returns the location this launch configuration will reside at
- * when saved.
- *
- * @see ILaunchConfiguration#getLocation()
- */
- public IPath getLocation() {
- if (isMoved()) {
- IPath path = null;
- if (isLocal()) {
- path = LaunchManager.LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;
- } else {
- path = getContainer().getLocation();
- }
- path = path.append(getName() + "." + LAUNCH_CONFIGURATION_FILE_EXTENSION); //$NON-NLS-1$
- return path;
- }
- return getOriginal().getLocation();
- }
-
- /**
- * Returns whether this working copy is new, or is a
- * working copy of another launch configuration.
- *
- * @return whether this working copy is new, or is a
- * working copy of another launch configuration
- */
- protected boolean isNew() {
- return getOriginal() == null;
- }
-
- /**
- * Returns whether this working copy is new or if its
- * location has changed from that of its original.
- *
- * @return whether this working copy is new or if its
- * location has changed from that of its original
- */
- protected boolean isMoved() {
- if (isNew() || fRenamed) {
- return true;
- }
- IContainer newContainer = getContainer();
- IContainer originalContainer = ((LaunchConfiguration)getOriginal()).getContainer();
- if (newContainer == originalContainer) {
- return false;
- }
- if (newContainer == null) {
- return !originalContainer.equals(newContainer);
- }
- return !newContainer.equals(originalContainer);
- }
-
- /**
- * A working copy cannot generate a memento.
- *
- * @see ILaunchConfiguration#getMemento()
- */
- public String getMemento() {
- return null;
- }
-
- /**
- * Returns whether change notification should be
- * suppressed
- */
- protected boolean suppressChangeNotification() {
- return fSuppressChange;
- }
-
- /**
- * @see ILaunchConfigurationWorkingCopy#setContainer(IContainer)
- */
- public void setContainer(IContainer container) {
- if (container == fContainer) {
- return;
- }
- if (container != null) {
- if (container.equals(fContainer)) {
- return;
- }
- } else {
- if (fContainer.equals(container)) {
- return;
- }
- }
- fContainer = container;
- setDirty();
- }
-
- /**
- * Returns the container this working copy will be
- * stored in when saved, or <code>null</code> if
- * this working copy is local.
- *
- * @return the container this working copy will be
- * stored in when saved, or <code>null</code> if
- * this working copy is local
- */
- protected IContainer getContainer() {
- return fContainer;
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchConfigurationWorkingCopy#setAttributes(java.util.Map)
- */
- public void setAttributes(Map attributes) {
- getInfo().setAttributes(attributes);
- }
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
deleted file mode 100644
index 2000721ef..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
+++ /dev/null
@@ -1,1834 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Sebastian Davids - bug 50567 Eclipse native environment support on Win98
- * Pawel Piech - Bug 82001: When shutting down the IDE, the debugger should first
- * attempt to disconnect debug targets before terminating them
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-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.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-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.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationListener;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchListener;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.ILaunchMode;
-import org.eclipse.debug.core.ILaunchesListener;
-import org.eclipse.debug.core.ILaunchesListener2;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IDisconnect;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.SourcePathComputer;
-import org.eclipse.osgi.service.environment.Constants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * Manages launch configurations, launch configuration types, and registered launches.
- *
- * @see ILaunchManager
- */
-/**
- * LaunchManager
- */
-public class LaunchManager extends PlatformObject implements ILaunchManager, IResourceChangeListener {
-
- /**
- * Collection of defined launch configuration type
- * extensions.
- */
- private List fLaunchConfigurationTypes = null;
-
- /**
- * Launch configuration cache. Keys are <code>LaunchConfiguration</code>,
- * values are <code>LaunchConfigurationInfo</code>.
- */
- private Map fLaunchConfigurations = new HashMap(10);
-
- /**
- * A cache of launch configuration names currently in the workspace.
- */
- private String[] fSortedConfigNames = null;
-
- /**
- * Collection of all launch configurations in the workspace.
- * <code>List</code> of <code>ILaunchConfiguration</code>.
- */
- private List fLaunchConfigurationIndex = null;
-
- /**
- * Launch configuration comparator extensions,
- * keyed by attribute name.
- */
- private Map fComparators = null;
-
- /**
- * Registered launch modes, or <code>null</code> if not initialized.
- * Keys are mode identifiers, values are <code>ILaunchMode</code>s.
- */
- private Map fLaunchModes = null;
-
- /**
- * List of contributed launch delegates (delegates contributed for existing
- * launch configuration types).
- */
- private List fContributedDelegates = null;
-
- /**
- * Types of notifications
- */
- public static final int ADDED = 0;
- public static final int REMOVED= 1;
- public static final int CHANGED= 2;
- public static final int TERMINATE= 3;
-
- /**
- * The collection of native environment variables on the user's system. Cached
- * after being computed once as the environment cannot change.
- */
- private static HashMap fgNativeEnv= null;
-
- /**
- * Collection of launches
- */
- private Vector fLaunches= new Vector(10);
-
- /**
- * Set of launches for efficient 'isRegistered()' check
- */
- private Set fLaunchSet = new HashSet(10);
-
- /**
- * Collection of listeners
- */
- private ListenerList fListeners= new ListenerList(5);
-
- /**
- * Collection of "plural" listeners.
- * @since 2.1
- */
- private ListenerList fLaunchesListeners = new ListenerList(5);
-
- /**
- * Visitor used to process resource deltas,
- * to update launch configuration index.
- */
- private LaunchManagerVisitor fgVisitor;
-
- /**
- * Whether this manager is listening for resouce change events
- */
- private boolean fListening = false;
-
- /**
- * Launch configuration listeners
- */
- private ListenerList fLaunchConfigurationListeners = new ListenerList(5);
-
- /**
- * Table of source locator extensions. Keys
- * are identifiers, and values are associated
- * configuration elements.
- */
- private Map fSourceLocators = null;
-
- /**
- * The handles of launch configurations being moved, or <code>null</code>
- */
- private ILaunchConfiguration fFrom;
- private ILaunchConfiguration fTo;
-
- /**
- * Path to the local directory where local launch configurations
- * are stored with the workspace.
- */
- protected static final IPath LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH =
- DebugPlugin.getDefault().getStateLocation().append(".launches"); //$NON-NLS-1$
-
-
- /**
- * Map of source container type extensions. Keys are extension ids
- * and values are associated configuration elements.
- */
- private Map sourceContainerTypes;
-
- /**
- * Map of source path computer extensions. Keys are extension ids
- * and values are associated configuration elements.
- */
- private Map sourcePathComputers;
-
- /**
- * 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
- */
- public static String serializeDocument(Document doc) throws TransformerException, IOException {
- 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$
- }
-
- /**
- * Returns a Document that can be used to build a DOM tree
- * @return the Document
- * @throws ParserConfigurationException if an exception occurs creating the document builder
- * @since 3.0
- */
- public static Document getDocument() throws ParserConfigurationException {
- DocumentBuilderFactory dfactory= DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder= dfactory.newDocumentBuilder();
- Document doc= docBuilder.newDocument();
- return doc;
- }
-
- /**
- * @see ILaunchManager#addLaunchListener(ILaunchListener)
- */
- public void addLaunchListener(ILaunchListener listener) {
- fListeners.add(listener);
- }
-
- /**
- * Returns a collection of all launch configuration handles in
- * the workspace. This collection is initialized lazily.
- *
- * @return all launch configuration handles
- */
- private List getAllLaunchConfigurations() {
- if (fLaunchConfigurationIndex == null) {
- try {
- fLaunchConfigurationIndex = new ArrayList(20);
- List configs = findLocalLaunchConfigurations();
- verifyConfigurations(configs, fLaunchConfigurationIndex);
- configs = findLaunchConfigurations(getWorkspaceRoot());
- verifyConfigurations(configs, fLaunchConfigurationIndex);
- } finally {
- hookResourceChangeListener();
- }
- }
- return fLaunchConfigurationIndex;
- }
-
- /**
- * Starts listening for resource change events
- */
- private synchronized void hookResourceChangeListener() {
- if (!fListening) {
- getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_DELETE);
- fListening = true;
- }
- }
-
- /**
- * Verify basic integrity of launch configurations in the given list,
- * adding valid configs to the collection of all launch configurations.
- * Exceptions are logged for invalid configs.
- *
- * @param verify the list of configs to verify
- * @param valid the list to place valid configrations in
- */
- protected void verifyConfigurations(List verify, List valid) {
- Iterator configs = verify.iterator();
- while (configs.hasNext()) {
- ILaunchConfiguration config = (ILaunchConfiguration)configs.next();
- if (isValid(config)) {
- valid.add(config);
- }
- }
- }
-
- /**
- * Returns whether the given launch configuration passes a basic
- * integritiy test by retrieving its type.
- *
- * @param config the configuration to verify
- * @return whether the config meets basic integrity constraints
- */
- protected boolean isValid(ILaunchConfiguration config) {
- try {
- config.getType();
- } catch (CoreException e) {
- if (e.getStatus().getCode() != DebugException.MISSING_LAUNCH_CONFIGURATION_TYPE) {
- // only log warnings due to something other than a missing
- // launch config type
- DebugPlugin.log(e);
- }
- return false;
- }
- return true;
- }
-
- /**
- * Clears all launch configurations (if any have been accessed)
- */
- private void clearAllLaunchConfigurations() {
- if (fLaunchConfigurationTypes != null) {
- fLaunchConfigurationTypes.clear();
- }
- if (fLaunchConfigurationIndex != null) {
- fLaunchConfigurationIndex.clear();
- }
- }
-
- /**
- * @see ILaunchManager#removeLaunch(ILaunch)
- */
- public void removeLaunch(ILaunch launch) {
- if (internalRemoveLaunch(launch)) {
- fireUpdate(launch, REMOVED);
- fireUpdate(new ILaunch[] {launch}, REMOVED);
- }
- }
-
- /**
- * Removes the given launch object from the collection of registered
- * launches. Returns whether the launch was removed.
- *
- * @param launch the launch to remove
- * @return whether the launch was removed
- */
- protected synchronized boolean internalRemoveLaunch(ILaunch launch) {
- if (launch == null) {
- return false;
- }
- fLaunchSet.remove(launch);
- return fLaunches.remove(launch);
- }
-
- /**
- * Fires notification to (single) listeners that a launch has been
- * added/changed/removed..
- */
- public void fireUpdate(ILaunch launch, int update) {
- getLaunchNotifier().notify(launch, update);
- }
-
- /**
- * Fires notification to (multi) listeners that a launch has been
- * added/changed/removed.
- */
- public void fireUpdate(ILaunch[] launches, int update) {
- getLaunchesNotifier().notify(launches, update);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#isRegistered(org.eclipse.debug.core.ILaunch)
- */
- public synchronized boolean isRegistered(ILaunch launch) {
- return fLaunchSet.contains(launch);
- }
-
- /**
- * @see ILaunchManager#getDebugTargets()
- */
- public IDebugTarget[] getDebugTargets() {
- List allTargets= new ArrayList(fLaunches.size());
- if (fLaunches.size() > 0) {
- Iterator e= fLaunches.iterator();
- while (e.hasNext()) {
- IDebugTarget[] targets= ((ILaunch) e.next()).getDebugTargets();
- for (int i = 0; i < targets.length; i++) {
- allTargets.add(targets[i]);
- }
- }
- }
- return (IDebugTarget[])allTargets.toArray(new IDebugTarget[allTargets.size()]);
- }
-
- /**
- * @see ILaunchManager#getLaunches()
- */
- public ILaunch[] getLaunches() {
- return (ILaunch[])fLaunches.toArray(new ILaunch[fLaunches.size()]);
- }
-
- /**
- * @see ILaunchManager#getProcesses()
- */
- public IProcess[] getProcesses() {
- List allProcesses= new ArrayList(fLaunches.size());
- Iterator e= fLaunches.iterator();
- while (e.hasNext()) {
- IProcess[] processes= ((ILaunch) e.next()).getProcesses();
- for (int i= 0; i < processes.length; i++) {
- allProcesses.add(processes[i]);
- }
- }
- return (IProcess[])allProcesses.toArray(new IProcess[allProcesses.size()]);
- }
-
- /**
- * @see ILaunchManager#addLaunch(ILaunch)
- */
- public void addLaunch(ILaunch launch) {
- if (internalAddLaunch(launch)) {
- fireUpdate(launch, ADDED);
- fireUpdate(new ILaunch[] {launch}, ADDED);
- }
- }
-
- /**
- * Adds the given launch object to the list of registered launches,
- * and returns whether the launch was added.
- *
- * @param launch launch to register
- * @return whether the launch was added
- */
- protected synchronized boolean internalAddLaunch(ILaunch launch) {
- if (fLaunches.contains(launch)) {
- return false;
- }
- fLaunches.add(launch);
- fLaunchSet.add(launch);
- return true;
- }
-
- /**
- * @see ILaunchManager#removeLaunchListener(ILaunchListener)
- */
- public void removeLaunchListener(ILaunchListener listener) {
- fListeners.remove(listener);
- }
-
- /**
- * Return a LaunchConfigurationInfo object initialized from XML contained in
- * the specified stream. Simply pass out any exceptions encountered so that
- * caller can deal with them. This is important since caller may need access to the
- * actual exception.
- */
- protected LaunchConfigurationInfo createInfoFromXML(InputStream stream) throws CoreException,
- ParserConfigurationException,
- IOException,
- SAXException {
- Element root = null;
- DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- root = parser.parse(new InputSource(stream)).getDocumentElement();
- LaunchConfigurationInfo info = new LaunchConfigurationInfo();
- info.initializeFromXML(root);
- return info;
- }
-
- /**
- * Terminates/Disconnects any active debug targets/processes.
- * Clears launch configuration types.
- */
- public void shutdown() {
- fListeners.removeAll();
- ILaunch[] launches = getLaunches();
- for (int i= 0; i < launches.length; i++) {
- ILaunch launch= launches[i];
- try {
- if (launch instanceof IDisconnect) {
- IDisconnect disconnect = (IDisconnect)launch;
- if (disconnect.canDisconnect()) {
- disconnect.disconnect();
- }
- }
- if (launch.canTerminate()) {
- launch.terminate();
- }
- } catch (DebugException e) {
- DebugPlugin.log(e);
- }
- }
-
- clearAllLaunchConfigurations();
-
- getWorkspace().removeResourceChangeListener(this);
- }
-
- /**
- * Returns the info object for the specified launch configuration.
- * If the configuration exists, but is not yet in the cache,
- * an info object is built and added to the cache.
- *
- * @exception CoreException if an exception occurs building
- * the info object
- * @exception DebugException if the config does not exist
- */
- protected LaunchConfigurationInfo getInfo(ILaunchConfiguration config) throws CoreException {
- LaunchConfigurationInfo info = (LaunchConfigurationInfo)fLaunchConfigurations.get(config);
- if (info == null) {
- if (config.exists()) {
- InputStream stream = null;
- try {
- if (config.isLocal()) {
- IPath path = config.getLocation();
- File file = path.toFile();
- stream = new FileInputStream(file);
- } else {
- IFile file = ((LaunchConfiguration) config).getFile();
- if (file == null) {
- throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.30"), new String[] {config.getName()}), null); //$NON-NLS-1$
- }
- stream = file.getContents();
- }
- info = createInfoFromXML(stream);
- fLaunchConfigurations.put(config, info);
- } catch (FileNotFoundException e) {
- throwException(config, e);
- } catch (SAXException e) {
- throwException(config, e);
- } catch (ParserConfigurationException e) {
- throwException(config, e);
- } catch (IOException e) {
- throwException(config, e);
- } finally {
- if (stream != null) {
- try {
- stream.close();
- } catch (IOException e) {
- throwException(config, e);
- }
- }
- }
-
- } else {
- throw createDebugException(
- MessageFormat.format(DebugCoreMessages.getString("LaunchManager.does_not_exist"), new String[]{config.getName(), config.getLocation().toOSString()}), null); //$NON-NLS-1$
- }
- }
- return info;
- }
-
- /**
- * Throws a debug exception with the given throwable that occurred
- * while processing the given configuration.
- */
- private void throwException(ILaunchConfiguration config, Throwable e) throws DebugException {
- IPath path = config.getLocation();
- throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file_{1}._1"), new String[]{e.toString(), path.toOSString()}), e); //$NON-NLS-1$
- }
-
- /**
- * Return an instance of DebugException containing the specified message and Throwable.
- */
- protected DebugException createDebugException(String message, Throwable throwable) {
- return new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, message, throwable
- )
- );
- }
-
- /**
- * Removes the given launch configuration from the cache of configurations.
- * When a local configuration is deleted, this method is called, as there will
- * be no resource delta generated to auto-update the cache.
- *
- * @param configuration the configuration to remove
- */
- private void removeInfo(ILaunchConfiguration configuration) {
- fLaunchConfigurations.remove(configuration);
- }
-
- /**
- * @see ILaunchManager#getLaunchConfigurations()
- */
- public ILaunchConfiguration[] getLaunchConfigurations() {
- List allConfigs = getAllLaunchConfigurations();
- return (ILaunchConfiguration[])allConfigs.toArray(new ILaunchConfiguration[allConfigs.size()]);
- }
-
- /**
- * @see ILaunchManager#getLaunchConfigurations(ILaunchConfigurationType)
- */
- public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException {
- Iterator iter = getAllLaunchConfigurations().iterator();
- List configs = new ArrayList();
- while (iter.hasNext()) {
- ILaunchConfiguration config = (ILaunchConfiguration)iter.next();
- if (config.getType().equals(type)) {
- configs.add(config);
- }
- }
- return (ILaunchConfiguration[])configs.toArray(new ILaunchConfiguration[configs.size()]);
- }
-
- /**
- * Returns all launch configurations that are stored as resources
- * in the given project.
- *
- * @param project a project
- * @return collection of launch configurations that are stored as resources
- * in the given project
- */
- protected List getLaunchConfigurations(IProject project) {
- Iterator iter = getAllLaunchConfigurations().iterator();
- List configs = new ArrayList();
- while (iter.hasNext()) {
- ILaunchConfiguration config = (ILaunchConfiguration)iter.next();
- IFile file = config.getFile();
- if (file != null && file.getProject().equals(project)) {
- configs.add(config);
- }
- }
- return configs;
- }
-
- /**
- * Returns all launch configurations that are stored locally.
- *
- * @return collection of launch configurations stored lcoally
- */
- protected List getLocalLaunchConfigurations() {
- Iterator iter = getAllLaunchConfigurations().iterator();
- List configs = new ArrayList();
- while (iter.hasNext()) {
- ILaunchConfiguration config = (ILaunchConfiguration)iter.next();
- if (config.isLocal()) {
- configs.add(config);
- }
- }
- return configs;
- }
-
- /**
- * @see ILaunchManager#getLaunchConfiguration(IFile)
- */
- public ILaunchConfiguration getLaunchConfiguration(IFile file) {
- hookResourceChangeListener();
- return new LaunchConfiguration(file.getLocation());
- }
-
- /**
- * @see ILaunchManager#getLaunchConfiguration(String)
- */
- public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException {
- hookResourceChangeListener();
- return new LaunchConfiguration(memento);
- }
-
- /**
- * @see ILaunchManager#getLaunchConfigurationTypes()
- */
- public ILaunchConfigurationType[] getLaunchConfigurationTypes() {
- List types= getLaunchConfigurationTypeList();
- return (ILaunchConfigurationType[])types.toArray(new ILaunchConfigurationType[types.size()]);
- }
-
- /**
- * @see ILaunchManager#getLaunchConfigurationType(String)
- */
- public ILaunchConfigurationType getLaunchConfigurationType(String id) {
- Iterator iter = getLaunchConfigurationTypeList().iterator();
- while (iter.hasNext()) {
- ILaunchConfigurationType type = (ILaunchConfigurationType)iter.next();
- if (type.getIdentifier().equals(id)) {
- return type;
- }
- }
- return null;
- }
-
- private List getLaunchConfigurationTypeList() {
- initializeLaunchConfigurationTypes();
- return fLaunchConfigurationTypes;
- }
-
- private synchronized void initializeLaunchConfigurationTypes() {
- if (fLaunchConfigurationTypes == null) {
- hookResourceChangeListener();
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPES);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fLaunchConfigurationTypes= new ArrayList(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- LaunchConfigurationType configType = new LaunchConfigurationType(configurationElement);
- fLaunchConfigurationTypes.add(configType);
- }
- }
- }
-
- /**
- * Initializes contributed launch delegates (i.e. delegates contributed
- * to an existing launch configuration type).
- */
- private synchronized void initializeContributedDelegates() {
- if (fContributedDelegates == null) {
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LAUNCH_DELEGATES);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fContributedDelegates= new ArrayList(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- ContributedDelegate delegate = new ContributedDelegate(configurationElement);
- fContributedDelegates.add(delegate);
- }
- }
- }
-
- /**
- * Returns a list of launch delegates contributed for existing launch configuration
- * types.
- *
- * @return list of ContributedDelegate
- */
- protected List getContributedDelegates() {
- initializeContributedDelegates();
- return fContributedDelegates;
- }
- /**
- * Notifies the launch manager that a launch configuration
- * has been deleted. The configuration is removed from the
- * cache of infos and from the index of configurations by
- * project, and listeners are notified.
- *
- * @param config the launch configuration that was deleted
- */
- protected void launchConfigurationDeleted(ILaunchConfiguration config) {
- removeInfo(config);
- getAllLaunchConfigurations().remove(config);
- getConfigurationNotifier().notify(config, REMOVED);
- clearConfigNameCache();
- }
-
- /**
- * Notifies the launch manager that a launch configuration
- * has been added. The configuration is added to the index of
- * configurations by project, and listeners are notified.
- *
- * @param config the launch configuration that was added
- */
- protected void launchConfigurationAdded(ILaunchConfiguration config) {
- if (config.isWorkingCopy()) {
- return;
- }
- if (isValid(config)) {
- List allConfigs = getAllLaunchConfigurations();
- if (!allConfigs.contains(config)) {
- allConfigs.add(config);
- getConfigurationNotifier().notify(config, ADDED);
- clearConfigNameCache();
- }
- } else {
- launchConfigurationDeleted(config);
- }
- }
-
- /**
- * Notifies the launch manager that a launch configuration
- * has been changed. The configuration is removed from the
- * cache of info objects such that the new attributes will
- * be updated on the next access. Listeners are notified of
- * the change.
- *
- * @param config the launch configuration that was changed
- */
- protected void launchConfigurationChanged(ILaunchConfiguration config) {
- removeInfo(config);
- clearConfigNameCache();
- if (isValid(config)) {
- // in case the config has been refreshed and it was removed from the
- // index due to 'out of synch with local file system' (see bug 36147),
- // add it back (will only add if required)
- launchConfigurationAdded(config);
- getConfigurationNotifier().notify(config, CHANGED);
- } else {
- launchConfigurationDeleted(config);
- }
- }
-
- /**
- * @see ILaunchManager#isExistingLaunchConfigurationName(String)
- */
- public boolean isExistingLaunchConfigurationName(String name) {
- String[] sortedConfigNames = getAllSortedConfigNames();
- int index = Arrays.binarySearch(sortedConfigNames, name);
- if (index < 0) {
- return false;
- }
- return true;
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#generateUniqueLaunchConfigurationNameFrom(String)
- */
- public String generateUniqueLaunchConfigurationNameFrom(String baseName) {
- int index = 1;
- int length= baseName.length();
- int copyIndex = baseName.lastIndexOf(" ("); //$NON-NLS-1$
- if (copyIndex > -1 && length > copyIndex + 2 && baseName.charAt(length - 1) == ')') {
- String trailer = baseName.substring(copyIndex + 2, length -1);
- if (isNumber(trailer)) {
- try {
- index = Integer.parseInt(trailer);
- baseName = baseName.substring(0, copyIndex);
- } catch (NumberFormatException nfe) {
- }
- }
- }
- String newName = baseName;
-
- StringBuffer buffer= null;
- while (isExistingLaunchConfigurationName(newName)) {
- buffer = new StringBuffer(baseName);
- buffer.append(" ("); //$NON-NLS-1$
- buffer.append(String.valueOf(index));
- index++;
- buffer.append(')');
- newName = buffer.toString();
- }
-
- return newName;
- }
-
- /**
- * Returns whether the given String is composed solely of digits
- */
- private boolean isNumber(String string) {
- int numChars= string.length();
- if (numChars == 0) {
- return false;
- }
- for (int i= 0; i < numChars; i++) {
- if (!Character.isDigit(string.charAt(i))) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Return a sorted array of the names of all <code>ILaunchConfiguration</code>s in
- * the workspace. These are cached, and cache is cleared when a new config is added,
- * deleted or changed.
- */
- protected String[] getAllSortedConfigNames() {
- if (fSortedConfigNames == null) {
- ILaunchConfiguration[] configs = getLaunchConfigurations();
- fSortedConfigNames = new String[configs.length];
- for (int i = 0; i < configs.length; i++) {
- fSortedConfigNames[i] = configs[i].getName();
- }
- Arrays.sort(fSortedConfigNames);
- }
- return fSortedConfigNames;
- }
-
- /**
- * The launch config name cache is cleared when a config is added, deleted or changed.
- */
- protected void clearConfigNameCache() {
- fSortedConfigNames = null;
- }
-
- /**
- * Finds and returns all local launch configurations.
- *
- * @return all local launch configurations
- * @exception CoreException if there is a lower level
- * IO exception
- */
- protected List findLocalLaunchConfigurations() {
- IPath containerPath = LOCAL_LAUNCH_CONFIGURATION_CONTAINER_PATH;
- List configs = new ArrayList(10);
- final File directory = containerPath.toFile();
- if (directory.isDirectory()) {
- FilenameFilter filter = new FilenameFilter() {
- public boolean accept(File dir, String name) {
- return dir.equals(directory) &&
- name.endsWith(ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION);
- }
- };
- String[] files = directory.list(filter);
- for (int i = 0; i < files.length; i++) {
- LaunchConfiguration config = new LaunchConfiguration(containerPath.append(files[i]));
- configs.add(config);
- }
- }
- return configs;
- }
-
- /**
- * Finds and returns all launch configurations in the given
- * container (and subcontainers)
- *
- * @param container the container to search
- * @exception CoreException an exception occurs traversing
- * the container.
- * @return all launch configurations in the given container
- */
- protected List findLaunchConfigurations(IContainer container) {
- List list = new ArrayList(10);
- if (container instanceof IProject && !((IProject)container).isOpen()) {
- return list;
- }
- ResourceProxyVisitor visitor= new ResourceProxyVisitor(list);
- try {
- container.accept(visitor, IResource.NONE);
- } catch (CoreException ce) {
- //Closed project...should not be possible with previous check
- }
- Iterator iter = list.iterator();
- List configs = new ArrayList(list.size());
- while (iter.hasNext()) {
- IFile file = (IFile)iter.next();
- configs.add(getLaunchConfiguration(file));
- }
- return configs;
- }
-
- /**
- * Traverses the delta looking for added/removed/changed launch
- * configuration files.
- *
- * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- IResourceDelta delta= event.getDelta();
- if (delta == null) {
- // pre-delete
- LaunchManagerVisitor visitor = getDeltaVisitor();
- IResource resource = event.getResource();
- if (resource instanceof IProject) {
- IProject project = (IProject) resource;
- visitor.preDelete(project);
- }
- } else {
- try {
- LaunchManagerVisitor visitor = getDeltaVisitor();
- delta.accept(visitor);
- visitor.reset();
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- }
-
- /**
- * Returns the resource delta visitor for the launch manager.
- *
- * @return the resource delta visitor for the launch manager
- */
- private LaunchManagerVisitor getDeltaVisitor() {
- if (fgVisitor == null) {
- fgVisitor= new LaunchManagerVisitor();
- }
- return fgVisitor;
- }
-
- /**
- * Returns the launch configurations specified by the given
- * XML document.
- *
- * @param root XML document
- * @return list of launch configurations
- * @exception IOException if an exception occurs reading the XML
- */
- protected List getConfigsFromXML(Element root) throws CoreException {
- DebugException invalidFormat =
- new DebugException(
- new Status(
- IStatus.ERROR, DebugPlugin.getUniqueIdentifier(),
- DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchManager.Invalid_launch_configuration_index._18"), null //$NON-NLS-1$
- )
- );
-
- if (!root.getNodeName().equalsIgnoreCase("launchConfigurations")) { //$NON-NLS-1$
- throw invalidFormat;
- }
-
- // read each launch configuration
- List configs = new ArrayList(4);
- NodeList list = root.getChildNodes();
- int length = list.getLength();
- for (int i = 0; i < length; ++i) {
- Node node = list.item(i);
- short type = node.getNodeType();
- if (type == Node.ELEMENT_NODE) {
- Element entry = (Element) node;
- String nodeName = entry.getNodeName();
- if (!nodeName.equals("launchConfiguration")) { //$NON-NLS-1$
- throw invalidFormat;
- }
- String memento = entry.getAttribute("memento"); //$NON-NLS-1$
- if (memento == null) {
- throw invalidFormat;
- }
- configs.add(getLaunchConfiguration(memento));
- }
- }
- return configs;
- }
-
- /**
- * The specified project has just opened - add all launch
- * configs in the project to the index of all configs.
- *
- * @param project the project that has been opened
- * @exception CoreException if reading the index fails
- */
- protected void projectOpened(IProject project) {
- List configs = findLaunchConfigurations(project);
- if (!configs.isEmpty()) {
- Iterator iterator = configs.iterator();
- while (iterator.hasNext()) {
- ILaunchConfiguration config = (ILaunchConfiguration) iterator.next();
- launchConfigurationAdded(config);
- }
- }
- }
-
- /**
- * The specified project has just closed - remove its
- * launch configurations from the cached index.
- *
- * @param project the project that has been closed
- * @exception CoreException if writing the index fails
- */
- protected void projectClosed(IProject project) {
- List configs = getLaunchConfigurations(project);
- if (!configs.isEmpty()) {
- Iterator iterator = configs.iterator();
- while (iterator.hasNext()) {
- ILaunchConfiguration configuration = (ILaunchConfiguration)iterator.next();
- launchConfigurationDeleted(configuration);
- }
- }
- }
-
- /**
- * Visitor for handling resource deltas.
- */
- class LaunchManagerVisitor implements IResourceDeltaVisitor {
-
- /**
- * Map of files to associated (shared) launch configs in a project
- * that is going to be deleted.
- */
- private Map fFileToConfig = new HashMap();
-
- /**
- * @see IResourceDeltaVisitor#visit(IResourceDelta)
- */
- public boolean visit(IResourceDelta delta) {
- if (delta == null) {
- return false;
- }
- if (0 != (delta.getFlags() & IResourceDelta.OPEN)) {
- if (delta.getResource() instanceof IProject) {
- IProject project = (IProject)delta.getResource();
-
- if (project.isOpen()) {
- LaunchManager.this.projectOpened(project);
- } else {
- LaunchManager.this.projectClosed(project);
- }
- }
- return false;
- }
- IResource resource = delta.getResource();
- if (resource instanceof IFile) {
- IFile file = (IFile)resource;
- if (ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION.equals(file.getFileExtension())) {
- IPath configPath = file.getLocation();
- ILaunchConfiguration handle = null;
- // If the file has already been deleted, reconstruct the handle from our cache
- if (configPath == null) {
- handle = (ILaunchConfiguration) fFileToConfig.get(file);
- } else {
- handle = new LaunchConfiguration(configPath);
- }
- if (handle != null) {
- switch (delta.getKind()) {
- case IResourceDelta.ADDED :
- LaunchManager.this.launchConfigurationAdded(handle);
- break;
- case IResourceDelta.REMOVED :
- LaunchManager.this.launchConfigurationDeleted(handle);
- break;
- case IResourceDelta.CHANGED :
- LaunchManager.this.launchConfigurationChanged(handle);
- break;
- }
- }
- }
- return false;
- } else if (resource instanceof IContainer) {
- return true;
- }
- return true;
- }
-
- /**
- * Builds a cache of configs that will be deleted in the given project
- */
- public void preDelete(IProject project) {
- List list = findLaunchConfigurations(project);
- Iterator configs = list.iterator();
- while (configs.hasNext()) {
- ILaunchConfiguration configuration = (ILaunchConfiguration) configs.next();
- IFile file = configuration.getFile();
- if (file != null) {
- fFileToConfig.put(file, configuration);
- }
- }
- }
-
- /**
- * Resets this resource delta visitor for a new pass.
- */
- public void reset() {
- fFileToConfig.clear();
- }
- }
-
- /**
- * @see ILaunchManager#addLaunchConfigurationListener(ILaunchConfigurationListener)
- */
- public void addLaunchConfigurationListener(ILaunchConfigurationListener listener) {
- fLaunchConfigurationListeners.add(listener);
- }
-
- /**
- * @see ILaunchManager#removeLaunchConfigurationListener(ILaunchConfigurationListener)
- */
- public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener) {
- fLaunchConfigurationListeners.remove(listener);
- }
-
- /**
- * Register source locators.
- *
- * @exception CoreException if an exception occurs reading
- * the extensions
- */
- private synchronized void initializeSourceLocators() {
- if (fSourceLocators == null) {
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_SOURCE_LOCATORS);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fSourceLocators= new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String id = configurationElement.getAttribute("id"); //$NON-NLS-1$
- if (id != null) {
- fSourceLocators.put(id,configurationElement);
- } else {
- // invalid status handler
- IStatus s = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.INTERNAL_ERROR,
- MessageFormat.format(DebugCoreMessages.getString("LaunchManager.Invalid_source_locator_extentsion_defined_by_plug-in___{0}______id___not_specified_12"), new String[] {configurationElement.getNamespace()} ), null); //$NON-NLS-1$
- DebugPlugin.log(s);
- }
- }
- }
- }
-
-
- /**
- * Load comparator extensions.
- */
- private synchronized void initializeComparators() {
- if (fComparators == null) {
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LAUNCH_CONFIGURATION_COMPARATORS);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fComparators = new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String attr = configurationElement.getAttribute("attribute"); //$NON-NLS-1$
- if (attr != null) {
- fComparators.put(attr, new LaunchConfigurationComparator(configurationElement));
- } else {
- // invalid status handler
- IStatus s = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.INTERNAL_ERROR,
- MessageFormat.format(DebugCoreMessages.getString("LaunchManager.Invalid_launch_configuration_comparator_extension_defined_by_plug-in_{0}_-_attribute_not_specified_1"), new String[] {configurationElement.getNamespace()}), null); //$NON-NLS-1$
- DebugPlugin.log(s);
- }
- }
- }
- }
-
- /**
- * @see ILaunchManager#newSourceLocator(String)
- */
- public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException {
- initializeSourceLocators();
- IConfigurationElement config = (IConfigurationElement)fSourceLocators.get(identifier);
- if (config == null) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.INTERNAL_ERROR,
- MessageFormat.format(DebugCoreMessages.getString("LaunchManager.Source_locator_does_not_exist__{0}_13"), new String[] {identifier} ), null)); //$NON-NLS-1$
- }
- IPersistableSourceLocator sourceLocator = (IPersistableSourceLocator)config.createExecutableExtension("class"); //$NON-NLS-1$
- if (sourceLocator instanceof AbstractSourceLookupDirector) {
- ((AbstractSourceLookupDirector)sourceLocator).setId(identifier);
- }
- return sourceLocator;
- }
-
- /**
- * Returns the comparator registered for the given attribute, or
- * <code>null</code> if none.
- *
- * @param attributeName attribute for which a comparator is required
- * @return comparator, or <code>null</code> if none
- */
- protected Comparator getComparator(String attributeName) {
- Map map = getComparators();
- return (Comparator)map.get(attributeName);
- }
-
- /**
- * Returns comparators, loading if required
- */
- protected Map getComparators() {
- initializeComparators();
- return fComparators;
- }
-
- private IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
-
- private IWorkspaceRoot getWorkspaceRoot() {
- return getWorkspace().getRoot();
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#addLaunches(org.eclipse.debug.core.ILaunch)
- */
- public void addLaunches(ILaunch[] launches) {
- List added = new ArrayList(launches.length);
- for (int i = 0; i < launches.length; i++) {
- if (internalAddLaunch(launches[i])) {
- added.add(launches[i]);
- }
- }
- if (!added.isEmpty()) {
- ILaunch[] addedLaunches = (ILaunch[])added.toArray(new ILaunch[added.size()]);
- fireUpdate(addedLaunches, ADDED);
- for (int i = 0; i < addedLaunches.length; i++) {
- fireUpdate(launches[i], ADDED);
- }
- }
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#addLaunchListener(org.eclipse.debug.core.ILaunchesListener)
- */
- public void addLaunchListener(ILaunchesListener listener) {
- fLaunchesListeners.add(listener);
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#removeLaunches(org.eclipse.debug.core.ILaunch)
- */
- public void removeLaunches(ILaunch[] launches) {
- List removed = new ArrayList(launches.length);
- for (int i = 0; i < launches.length; i++) {
- if (internalRemoveLaunch(launches[i])) {
- removed.add(launches[i]);
- }
- }
- if (!removed.isEmpty()) {
- ILaunch[] removedLaunches = (ILaunch[])removed.toArray(new ILaunch[removed.size()]);
- fireUpdate(removedLaunches, REMOVED);
- for (int i = 0; i < removedLaunches.length; i++) {
- fireUpdate(removedLaunches[i], REMOVED);
- }
- }
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#removeLaunchListener(org.eclipse.debug.core.ILaunchesListener)
- */
- public void removeLaunchListener(ILaunchesListener listener) {
- fLaunchesListeners.remove(listener);
- }
-
- /**
- * Indicates the given launch configuration is being moved from the given
- * location to the new location.
- *
- * @param from the location a launch configuration is being moved from, or
- * <code>null</code>
- * @param to the location a launch configuration is being moved to,
- * or <code>null</code>
- */
- protected void setMovedFromTo(ILaunchConfiguration from, ILaunchConfiguration to) {
- fFrom = from;
- fTo = to;
- }
- /**
- * @see org.eclipse.debug.core.ILaunchManager#getMovedFrom(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public ILaunchConfiguration getMovedFrom(ILaunchConfiguration addedConfiguration) {
- if (addedConfiguration.equals(fTo)) {
- return fFrom;
- }
- return null;
- }
-
- /**
- * @see org.eclipse.debug.core.ILaunchManager#getMovedTo(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public ILaunchConfiguration getMovedTo(ILaunchConfiguration removedConfiguration) {
- if (removedConfiguration.equals(fFrom)) {
- return fTo;
- }
- return null;
- }
-
- /**
- * Collects files whose extension matches the launch configuration file
- * extension.
- */
- class ResourceProxyVisitor implements IResourceProxyVisitor {
-
- private List fList;
-
- protected ResourceProxyVisitor(List list) {
- fList= list;
- }
- /**
- * @see org.eclipse.core.resources.IResourceProxyVisitor#visit(org.eclipse.core.resources.IResourceProxy)
- */
- public boolean visit(IResourceProxy proxy) {
- if (proxy.getType() == IResource.FILE) {
- if (ILaunchConfiguration.LAUNCH_CONFIGURATION_FILE_EXTENSION.equalsIgnoreCase(proxy.requestFullPath().getFileExtension())) {
- fList.add(proxy.requestResource());
- }
- return false;
- }
- return true;
- }
- }
-
- private LaunchNotifier getLaunchNotifier() {
- return new LaunchNotifier();
- }
-
- /**
- * Notifies a launch listener (single launch) in a safe runnable to handle
- * exceptions.
- */
- class LaunchNotifier implements ISafeRunnable {
-
- private ILaunchListener fListener;
- private int fType;
- private ILaunch fLaunch;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("LaunchManager.An_exception_occurred_during_launch_change_notification._1"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.launchAdded(fLaunch);
- break;
- case REMOVED:
- fListener.launchRemoved(fLaunch);
- break;
- case CHANGED:
- if (isRegistered(fLaunch)) {
- fListener.launchChanged(fLaunch);
- }
- 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(ILaunch launch, int update) {
- fLaunch = launch;
- fType = update;
- Object[] copiedListeners= fListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (ILaunchListener)copiedListeners[i];
- Platform.run(this);
- }
- fLaunch = null;
- fListener = null;
- }
- }
-
- private LaunchesNotifier getLaunchesNotifier() {
- return new LaunchesNotifier();
- }
-
- /**
- * Notifies a launch listener (multiple launches) in a safe runnable to
- * handle exceptions.
- */
- class LaunchesNotifier implements ISafeRunnable {
-
- private ILaunchesListener fListener;
- private int fType;
- private ILaunch[] fNotifierLaunches;
- private ILaunch[] fRegistered;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("LaunchManager.An_exception_occurred_during_launch_change_notification._1"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.launchesAdded(fNotifierLaunches);
- break;
- case REMOVED:
- fListener.launchesRemoved(fNotifierLaunches);
- break;
- case CHANGED:
- case TERMINATE:
- if (fRegistered == null) {
- List registered = null;
- for (int j = 0; j < fNotifierLaunches.length; j++) {
- if (isRegistered(fNotifierLaunches[j])) {
- if (registered != null) {
- registered.add(fNotifierLaunches[j]);
- }
- } else {
- if (registered == null) {
- registered = new ArrayList(fNotifierLaunches.length);
- for (int k = 0; k < j; k++) {
- registered.add(fNotifierLaunches[k]);
- }
- }
- }
- }
- if (registered == null) {
- fRegistered = fNotifierLaunches;
- } else {
- fRegistered = (ILaunch[])registered.toArray(new ILaunch[registered.size()]);
- }
- }
- if (fRegistered.length > 0) {
- if (fType == CHANGED) {
- fListener.launchesChanged(fRegistered);
- }
- if (fType == TERMINATE && fListener instanceof ILaunchesListener2) {
- ((ILaunchesListener2)fListener).launchesTerminated(fRegistered);
- }
- }
- break;
- }
- }
-
- /**
- * Notifies the given listener of the adds/changes/removes
- *
- * @param launches the launches that changed
- * @param update the type of change
- */
- public void notify(ILaunch[] launches, int update) {
- fNotifierLaunches = launches;
- fType = update;
- fRegistered = null;
- Object[] copiedListeners= fLaunchesListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (ILaunchesListener)copiedListeners[i];
- Platform.run(this);
- }
- fNotifierLaunches = null;
- fRegistered = null;
- fListener = null;
- }
- }
-
- protected ConfigurationNotifier getConfigurationNotifier() {
- return new ConfigurationNotifier();
- }
-
- /**
- * Notifies a launch config listener in a safe runnable to handle
- * exceptions.
- */
- class ConfigurationNotifier implements ISafeRunnable {
-
- private ILaunchConfigurationListener fListener;
- private int fType;
- private ILaunchConfiguration fConfiguration;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("LaunchManager.An_exception_occurred_during_launch_configuration_change_notification._3"), exception); //$NON-NLS-1$
- DebugPlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.launchConfigurationAdded(fConfiguration);
- break;
- case REMOVED:
- fListener.launchConfigurationRemoved(fConfiguration);
- break;
- case CHANGED:
- fListener.launchConfigurationChanged(fConfiguration);
- break;
- }
- }
-
- /**
- * Notifies the given listener of the add/change/remove
- *
- * @param configuration the configuration that has changed
- * @param update the type of change
- */
- public void notify(ILaunchConfiguration configuration, int update) {
- fConfiguration = configuration;
- fType = update;
- if (fLaunchConfigurationListeners.size() > 0) {
- Object[] listeners = fLaunchConfigurationListeners.getListeners();
- for (int i = 0; i < listeners.length; i++) {
- fListener = (ILaunchConfigurationListener)listeners[i];
- Platform.run(this);
- }
- }
- fConfiguration = null;
- fListener = null;
- }
- }
-
- /**
- * Load comparator extensions.
- *
- * @exception CoreException if an exception occurs reading
- * the extensions
- */
- private synchronized void initializeLaunchModes() {
- if (fLaunchModes == null) {
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LAUNCH_MODES);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fLaunchModes = new HashMap();
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- try {
- ILaunchMode mode = new LaunchMode(configurationElement);
- fLaunchModes.put(mode.getIdentifier(), mode);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
-
- }
- }
- }
-
- /**
- * Returns an array of environment variables to be used when
- * launching the given configuration or <code>null</code> if unspecified.
- *
- * @param configuration launch configuration
- * @throws CoreException if unable to access associated attribute or if
- * unable to resolve a variable in an environment variable's value
- */
- public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException {
- Map envMap = configuration.getAttribute(ATTR_ENVIRONMENT_VARIABLES, (Map) null);
- if (envMap == null) {
- return null;
- }
- Map env = null;
- // build base environment
- env= new HashMap();
- boolean append= configuration.getAttribute(ATTR_APPEND_ENVIRONMENT_VARIABLES, true);
- if (append) {
- env.putAll(getNativeEnvironment());
- }
-
- // Add variables from config
- Iterator iter= envMap.entrySet().iterator();
- boolean win32= Platform.getOS().equals(Constants.OS_WIN32);
- while (iter.hasNext()) {
- Map.Entry entry= (Map.Entry) iter.next();
- String key= (String) entry.getKey();
- if (win32) {
- // Win32 vars are case insensitive. Uppercase everything so
- // that (for example) "pAtH" will correctly replace "PATH"
- key= key.toUpperCase();
- }
- String value = (String) entry.getValue();
- // translate any string substitution variables
- String translated = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(value);
- env.put(key, translated);
- }
-
- iter= env.entrySet().iterator();
- List strings= new ArrayList(env.size());
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- StringBuffer buffer= new StringBuffer((String) entry.getKey());
- buffer.append('=').append((String) entry.getValue());
- strings.add(buffer.toString());
- }
- return (String[]) strings.toArray(new String[strings.size()]);
- }
-
-
- /**
- * Returns a copy of the native system environment variables. On WIN32,
- * all keys (variable names) are returned in uppercase. Note
- * that WIN32's environment is not case sensitive.
- *
- * @return the a copy of the native system environment variables
- */
- public Map getNativeEnvironment() {
- if (fgNativeEnv != null) {
- return new HashMap(fgNativeEnv);
- }
- fgNativeEnv= new HashMap();
- try {
- String nativeCommand= null;
- boolean windowsOS= false;
- boolean isWin9xME= false; //see bug 50567
- String fileName= null;
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- windowsOS= true;
- String osName= System.getProperty("os.name"); //$NON-NLS-1$
- isWin9xME= osName != null && (osName.startsWith("Windows 9") || osName.startsWith("Windows ME")); //$NON-NLS-1$ //$NON-NLS-2$
- if (isWin9xME) {
- // Win 95, 98, and ME
- // SET might not return therefore we pipe into a file
- IPath stateLocation= DebugPlugin.getDefault().getStateLocation();
- fileName= stateLocation.toOSString() + File.separator + "env.txt"; //$NON-NLS-1$
- nativeCommand= "command.com /C set > " + fileName; //$NON-NLS-1$
- } else {
- // Win NT, 2K, XP
- nativeCommand= "cmd.exe /C set"; //$NON-NLS-1$
- }
- } else if (!Platform.getOS().equals(Constants.OS_UNKNOWN)){
- nativeCommand= "printenv"; //$NON-NLS-1$
- }
- if (nativeCommand == null) {
- return fgNativeEnv;
- }
- Process process= Runtime.getRuntime().exec(nativeCommand);
- if (isWin9xME) {
- //read piped data on Win 95, 98, and ME
- Properties p= new Properties();
- File file= new File(fileName);
- FileInputStream stream= new FileInputStream(file);
- p.load(stream);
- stream.close();
- if (!file.delete()) {
- file.deleteOnExit(); // if delete() fails try again on VM close
- }
- for (Enumeration enumeration = p.keys(); enumeration.hasMoreElements();) {
- // Win32's environment vars are case insensitive. Put everything
- // to uppercase so that (for example) the "PATH" variable will match
- // "pAtH" correctly on Windows.
- String key= ((String) enumeration.nextElement()).toUpperCase();
- //no need to cast value
- fgNativeEnv.put(key, p.get(key));
- }
- } else {
- //read process directly on other platforms
- BufferedReader reader= new BufferedReader(new InputStreamReader(process.getInputStream()));
- String line= reader.readLine();
- while (line != null) {
- int separator= line.indexOf('=');
- if (separator > 0) {
- String key= line.substring(0, separator);
- if (windowsOS) {
- // Win32's environment vars are case insensitive. Put everything
- // to uppercase so that (for example) the "PATH" variable will match
- // "pAtH" correctly on Windows.
- key= key.toUpperCase();
- }
- String value= line.substring(separator + 1);
- fgNativeEnv.put(key, value);
- }
- line= reader.readLine();
- }
- reader.close();
- }
- } catch (IOException e) {
- // Native environment-fetching code failed.
- // This can easily happen and is not useful to log.
- }
- return new HashMap(fgNativeEnv);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#newSourcePathComputer(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public ISourcePathComputer getSourcePathComputer(ILaunchConfiguration configuration) throws CoreException {
- String id = null;
- id = configuration.getAttribute(ISourcePathComputer.ATTR_SOURCE_PATH_COMPUTER_ID, (String)null);
-
- if (id == null) {
- //use default computer for configuration type, if any
- return configuration.getType().getSourcePathComputer();
- }
- return getSourcePathComputer(id);
- }
-
- /**
- * Initializes source container type and source path computer extensions.
- */
- private synchronized void initializeSourceContainerTypes() {
- if (sourceContainerTypes == null) {
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_SOURCE_CONTAINER_TYPES);
- IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();
- sourceContainerTypes = new HashMap();
- for (int i = 0; i < extensions.length; i++) {
- sourceContainerTypes.put(
- extensions[i].getAttribute("id"), //$NON-NLS-1$
- new SourceContainerType(extensions[i]));
- }
- extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_SOURCE_PATH_COMPUTERS);
- extensions = extensionPoint.getConfigurationElements();
- sourcePathComputers = new HashMap();
- for (int i = 0; i < extensions.length; i++) {
- sourcePathComputers.put(
- extensions[i].getAttribute("id"), //$NON-NLS-1$
- new SourcePathComputer(extensions[i]));
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#getSourceContainerType(java.lang.String)
- */
- public ISourceContainerType getSourceContainerType(String id) {
- initializeSourceContainerTypes();
- return (ISourceContainerType) sourceContainerTypes.get(id);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#getSourceContainerTypes()
- */
- public ISourceContainerType[] getSourceContainerTypes() {
- initializeSourceContainerTypes();
- Collection containers = sourceContainerTypes.values();
- return (ISourceContainerType[]) containers.toArray(new ISourceContainerType[containers.size()]);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#getSourcePathComputer(java.lang.String)
- */
- public ISourcePathComputer getSourcePathComputer(String id) {
- initializeSourceContainerTypes();
- return (ISourcePathComputer) sourcePathComputers.get(id);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#getLaunchModes()
- */
- public ILaunchMode[] getLaunchModes() {
- initializeLaunchModes();
- Collection collection = fLaunchModes.values();
- return (ILaunchMode[]) collection.toArray(new ILaunchMode[collection.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchManager#getLaunchMode(java.lang.String)
- */
- public ILaunchMode getLaunchMode(String mode) {
- initializeLaunchModes();
- return (ILaunchMode) fLaunchModes.get(mode);
- }
-
-
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java
deleted file mode 100644
index 805e4b8b2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.text.MessageFormat;
-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.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchMode;
-
-/**
- * Proxy to a launch mode extension.
- */
-public class LaunchMode implements ILaunchMode {
-
- private IConfigurationElement fConfigurationElement;
-
- /**
- * Constructs a new launch mode.
- *
- * @exception CoreException if required attributes are missing
- */
- public LaunchMode(IConfigurationElement element) throws CoreException {
- fConfigurationElement = element;
- verifyAttributes();
- }
-
- /**
- * Verifies required attributes.
- *
- * @exception CoreException if required attributes are missing
- */
- private void verifyAttributes() throws CoreException {
- verifyAttributeExists("mode"); //$NON-NLS-1$
- verifyAttributeExists("label"); //$NON-NLS-1$
- }
-
- /**
- * Verifies the given attribute exists
- *
- * @exception CoreException if attribute does not exist
- */
- private void verifyAttributeExists(String name) throws CoreException {
- if (fConfigurationElement.getAttribute(name) == null) {
- missingAttribute(name);
- }
- }
-
- private void missingAttribute(String attrName) throws CoreException {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LaunchMode.1"),new String[]{attrName}), null)); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchMode#getIdentifier()
- */
- public String getIdentifier() {
- return fConfigurationElement.getAttribute("mode"); //$NON-NLS-1$;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchMode#getLabel()
- */
- public String getLabel() {
- return fConfigurationElement.getAttribute("label"); //$NON-NLS-1$;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java
deleted file mode 100644
index 39e7635ea..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-/**
- * Local version of org.eclipse.jface.util.ListenerList (modified)s
- */
-public class ListenerList {
- /**
- * The current number of listeners.
- * Maintains invariant: 0 <= fSize <= listeners.length.
- */
- private int fSize;
-
- /**
- * The list of listeners. Initially <code>null</code> but initialized
- * to an array of size capacity the first time a listener is added.
- * Maintains invariant: listeners != null if and only if fSize != 0
- */
- private Object[] fListeners= null;
-
- /**
- * The empty array singleton instance, returned by getListeners()
- * when size == 0.
- */
- private static final Object[] EmptyArray= new Object[0];
-
- /**
- * Creates a listener list with the given initial capacity.
- *
- * @param capacity the number of listeners which this list can initially accept
- * without growing its internal representation; must be at least 1
- */
- public ListenerList(int capacity) {
- if (capacity < 1) {
- throw new IllegalArgumentException();
- }
- fListeners= new Object[capacity];
- fSize= 0;
- }
-
- /**
- * Adds a listener to the list.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener a listener
- */
- public synchronized void add(Object listener) {
- if (listener == null) {
- throw new IllegalArgumentException();
- }
- // check for duplicates using identity
- for (int i= 0; i < fSize; ++i) {
- if (fListeners[i] == listener) {
- return;
- }
- }
- // grow array if necessary
- if (fSize == fListeners.length) {
- Object[] temp= new Object[(fSize * 2) + 1];
- System.arraycopy(fListeners, 0, temp, 0, fSize);
- fListeners= temp;
- }
- fListeners[fSize++]= listener;
- }
-
- /**
- * Returns an array containing all the registered listeners.
- * The resulting array is unaffected by subsequent adds or removes.
- * If there are no listeners registered, the result is an empty array
- * singleton instance (no garbage is created).
- * Use this method when notifying listeners, so that any modifications
- * to the listener list during the notification will have no effect on the
- * notification itself.
- */
- public synchronized Object[] getListeners() {
- if (fSize == 0) {
- return EmptyArray;
- }
- Object[] result= new Object[fSize];
- System.arraycopy(fListeners, 0, result, 0, fSize);
- return result;
- }
-
- /**
- * Removes a listener from the list.
- * Has no effect if an identical listener was not already registered.
- *
- * @param listener a listener
- */
- public synchronized void remove(Object listener) {
- if (listener == null) {
- throw new IllegalArgumentException();
- }
-
- for (int i= 0; i < fSize; ++i) {
- if (fListeners[i] == listener) {
- if (--fSize == 0) {
- fListeners= new Object[1];
- } else {
- if (i < fSize) {
- fListeners[i]= fListeners[fSize];
- }
- fListeners[fSize]= null;
- }
- return;
- }
- }
- }
-
- /**
- * Removes all the listeners from the list.
- */
- public synchronized void removeAll() {
- fListeners= new Object[0];
- fSize= 0;
- }
-
- /**
- * Returns the number of registered listeners
- *
- * @return the number of registered listeners
- */
- public int size() {
- return fSize;
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java
deleted file mode 100644
index 905b3948e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILogicalStructureType;
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Manages logical structure extensions
- *
- * @since 3.0
- */
-public class LogicalStructureManager {
-
- private static LogicalStructureManager fgDefault;
- private List fTypes = null;
- private List fTypeProviders;
-
- public static LogicalStructureManager getDefault() {
- if (fgDefault == null) {
- fgDefault = new LogicalStructureManager();
- }
- return fgDefault;
- }
-
- public ILogicalStructureType[] getLogicalStructureTypes(IValue value) {
- initialize();
- // looks in the logical structure types
- Iterator iterator = fTypes.iterator();
- List select = new ArrayList();
- while (iterator.hasNext()) {
- ILogicalStructureType type = (ILogicalStructureType)iterator.next();
- if (type.providesLogicalStructure(value)) {
- select.add(type);
- }
- }
- // asks the logical structure providers
- for (Iterator iter= fTypeProviders.iterator(); iter.hasNext();) {
- ILogicalStructureType[] logicalStructures= ((LogicalStructureProvider) iter.next()).getLogicalStructures(value);
- for (int i= 0; i < logicalStructures.length; i++) {
- select.add(logicalStructures[i]);
- }
- }
- return (ILogicalStructureType[]) select.toArray(new ILogicalStructureType[select.size()]);
- }
-
- private void initialize() {
- if (fTypes == null) {
- //get the logical structure types from the extension points
- IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LOGICAL_STRUCTURE_TYPES);
- IConfigurationElement[] extensions = point.getConfigurationElements();
- fTypes = new ArrayList(extensions.length);
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement extension = extensions[i];
- LogicalStructureType type;
- try {
- type = new LogicalStructureType(extension);
- fTypes.add(type);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- // get the logical structure providers from the extension point
- point= Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_LOGICAL_STRUCTURE_PROVIDERS);
- extensions= point.getConfigurationElements();
- fTypeProviders= new ArrayList(extensions.length);
- for (int i= 0; i < extensions.length; i++) {
- try {
- fTypeProviders.add(new LogicalStructureProvider(extensions[i]));
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java
deleted file mode 100644
index e7f3dc52d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-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.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILogicalStructureProvider;
-import org.eclipse.debug.core.ILogicalStructureType;
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Manage logical structure provider extensions
- */
-public class LogicalStructureProvider {
-
- private IConfigurationElement fConfigurationElement;
-
- private String fModelIdentifier;
-
- private ILogicalStructureProvider fDelegate;
-
- public LogicalStructureProvider(IConfigurationElement element) throws CoreException {
- fConfigurationElement= element;
- fModelIdentifier= fConfigurationElement.getAttribute("modelIdentifier"); //$NON-NLS-1$
- if (fModelIdentifier == null) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("LogicalStructureProvider.0"), null)); //$NON-NLS-1$
- }
- String className= fConfigurationElement.getAttribute("class"); //$NON-NLS-1$
- if (className == null) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("LogicalStructureProvider.1"), null)); //$NON-NLS-1$
- }
- }
-
- /**
- * Return the logical structure type able to provide a logical structure for
- * the given value.
- */
- public ILogicalStructureType[] getLogicalStructures(IValue value) {
- if (fModelIdentifier.equals(value.getModelIdentifier())) {
- return getDelegate().getLogicalStructureTypes(value);
- }
- return new ILogicalStructureType[0];
- }
-
- /**
- * Return the ILogicalStructureProvider for this extension.
- */
- protected ILogicalStructureProvider getDelegate() {
- if (fDelegate == null) {
- try {
- fDelegate = (ILogicalStructureProvider) fConfigurationElement.createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- return fDelegate;
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java
deleted file mode 100644
index f847446b4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.text.MessageFormat;
-
-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.debug.core.*;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.model.*;
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Proxy to a logical structure type extension.
- */
-public class LogicalStructureType implements ILogicalStructureType {
-
- private IConfigurationElement fConfigurationElement;
- private ILogicalStructureTypeDelegate fDelegate;
- private String fModelId;
- // whether the 'description' attribute has been verified to exist: it is only
- // required when the delegate does *not* implement ILogicalStructureTypeDelegate2.
- private boolean fVerifiedDescription = false;
-
- /**
- * Constructs a new logical structure type, and verifies required attributes.
- *
- * @exception CoreException if required attributes are missing
- */
- public LogicalStructureType(IConfigurationElement element) throws CoreException {
- fConfigurationElement = element;
- verifyAttributes();
- }
-
- /**
- * Verifies required attributes.
- *
- * @exception CoreException if required attributes are missing
- */
- private void verifyAttributes() throws CoreException {
- verifyAttributeExists("id"); //$NON-NLS-1$
- verifyAttributeExists("class"); //$NON-NLS-1$
- fModelId = fConfigurationElement.getAttribute("modelIdentifier"); //$NON-NLS-1$
- if (fModelId == null) {
- missingAttribute("modelIdentifier"); //$NON-NLS-1$
- }
- }
-
- /**
- * Verifies the given attribute exists
- *
- * @exception CoreException if attribute does not exist
- */
- private void verifyAttributeExists(String name) throws CoreException {
- if (fConfigurationElement.getAttribute(name) == null) {
- missingAttribute(name);
- }
- }
-
- private void missingAttribute(String attrName) throws CoreException {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("LogicalStructureType.7"),new String[]{attrName}), null)); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.ILogicalStructureType#getDescription()
- */
- public String getDescription() {
- return fConfigurationElement.getAttribute("description"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.ILogicalStructureType#getId()
- */
- public String getId() {
- return fConfigurationElement.getAttribute("id"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.ILogicalStructureType#getLogicalStructure(org.eclipse.debug.core.model.IValue)
- */
- public IValue getLogicalStructure(IValue value) throws CoreException {
- return getDelegate().getLogicalStructure(value);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.ILogicalStructureType#providesLogicalStructure(org.eclipse.debug.core.model.IValue)
- */
- public boolean providesLogicalStructure(IValue value) {
- if (value.getModelIdentifier().equals(fModelId)) {
- return getDelegate().providesLogicalStructure(value);
- }
- return false;
- }
-
- protected ILogicalStructureTypeDelegate getDelegate() {
- if (fDelegate == null) {
- try {
- fDelegate = (ILogicalStructureTypeDelegate) fConfigurationElement.createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- return fDelegate;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate2#getDescription(org.eclipse.debug.core.model.IValue)
- */
- public String getDescription(IValue value) {
- ILogicalStructureTypeDelegate delegate = getDelegate();
- if (delegate instanceof ILogicalStructureTypeDelegate2) {
- ILogicalStructureTypeDelegate2 d2 = (ILogicalStructureTypeDelegate2) delegate;
- return d2.getDescription(value);
- }
- if (!fVerifiedDescription) {
- fVerifiedDescription = true;
- try {
- verifyAttributeExists("description"); //$NON-NLS-1$
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- }
- String description = getDescription();
- if (description == null) {
- return DebugCoreMessages.getString("LogicalStructureType.0"); //$NON-NLS-1$
- }
- return description;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java
deleted file mode 100644
index 07d9e7c4d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.internal.core;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.IMemoryBlockListener;
-import org.eclipse.debug.core.IMemoryBlockManager;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IMemoryBlockExtension;
-import org.eclipse.debug.core.model.IMemoryBlockRetrieval;
-
-
-/**
- * Implementation of IMemoryBlockManager
- * The manager is responsible to manage all memory blocks in the workbench.
- *
- * @since 3.1
- *
- */
-/**
- * MemoryBlockManager
- */
-/**
- * MemoryBlockManager
- */
-public class MemoryBlockManager implements IMemoryBlockManager, IDebugEventSetListener {
-
- private ArrayList listeners = new ArrayList(); // list of all IMemoryBlockListener
- private ArrayList memoryBlocks = new ArrayList(); // list of all memory blocks
-
- private static final int ADDED = 0;
- private static final int REMOVED = 1;
- /**
- * Notifies a memory block listener in a safe runnable to
- * handle exceptions.
- */
- class MemoryBlockNotifier implements ISafeRunnable {
-
- private IMemoryBlockListener fListener;
- private int fType;
- private IMemoryBlock[] fMemoryBlocks;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- DebugPlugin.log(exception);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.memoryBlocksAdded(fMemoryBlocks);
- break;
- case REMOVED:
- fListener.memoryBlocksRemoved(fMemoryBlocks);
- break;
- }
- }
-
- /**
- * Notify listeners of added/removed memory block events
- */
- public void notify(IMemoryBlock[] memBlocks, int update) {
- if (listeners != null) {
- fType = update;
- Object[] copiedListeners= listeners.toArray(new IMemoryBlockListener[listeners.size()]);
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IMemoryBlockListener)copiedListeners[i];
- fMemoryBlocks = memBlocks;
- Platform.run(this);
- }
- }
- fListener = null;
- fMemoryBlocks = null;
- }
- }
-
- private MemoryBlockNotifier getMemoryBlockNotifier() {
- return new MemoryBlockNotifier();
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#addMemoryBlock(org.eclipse.debug.core.model.IMemoryBlock)
- */
- public void addMemoryBlocks(IMemoryBlock[] mem) {
-
- if (memoryBlocks == null)
- return;
-
- if (mem == null){
- DebugPlugin.logMessage("Null argument passed into IMemoryBlockManager.addMemoryBlock", null); //$NON-NLS-1$
- return;
- }
-
- ArrayList newMemoryBlocks = new ArrayList();
-
- for (int i=0; i<mem.length; i++)
- {
- // do not allow duplicates
- if (!memoryBlocks.contains(mem[i]))
- {
-
- newMemoryBlocks.add(mem[i]);
- memoryBlocks.add(mem[i]);
-
- // add listener for the first memory block added
- if (memoryBlocks.size() == 1)
- {
- DebugPlugin.getDefault().addDebugEventListener(this);
- }
- }
- }
-
- notifyListeners((IMemoryBlock[])newMemoryBlocks.toArray(new IMemoryBlock[newMemoryBlocks.size()]), ADDED);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#removeMemoryBlock(org.eclipse.debug.core.model.IMemoryBlock)
- */
- public void removeMemoryBlocks(IMemoryBlock[] memBlocks) {
-
- if (memoryBlocks == null)
- return;
-
- if (memBlocks == null){
- DebugPlugin.logMessage("Null argument passed into IMemoryBlockManager.removeMemoryBlock", null); //$NON-NLS-1$
- return;
- }
-
- for (int i=0; i<memBlocks.length; i++)
- {
- memoryBlocks.remove(memBlocks[i]);
- // remove listener after the last memory block has been removed
- if (memoryBlocks.size() == 0)
- {
- DebugPlugin.getDefault().removeDebugEventListener(this);
- }
-
- if (memBlocks[i] instanceof IMemoryBlockExtension)
- {
- ((IMemoryBlockExtension)memBlocks[i]).dispose();
- }
- }
-
- notifyListeners(memBlocks, REMOVED);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#addListener(org.eclipse.debug.ui.IMemoryBlockListener)
- */
- public void addListener(IMemoryBlockListener listener) {
-
- if(listeners == null)
- return;
-
- if(listener == null){
- DebugPlugin.logMessage("Null argument passed into IMemoryBlockManager.addListener", null); //$NON-NLS-1$
- return;
- }
-
- if (!listeners.contains(listener))
- listeners.add(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#removeListener(org.eclipse.debug.ui.IMemoryBlockListener)
- */
- public void removeListener(IMemoryBlockListener listener) {
-
- if(listeners == null)
- return;
-
- if(listener == null){
- DebugPlugin.logMessage("Null argument passed into IMemoryBlockManager.removeListener", null); //$NON-NLS-1$
- return;
- }
-
- if (listeners.contains(listener))
- listeners.remove(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IMemoryBlockManager#getMemoryBlocks()
- */
- public IMemoryBlock[] getMemoryBlocks() {
-
- IMemoryBlock[] blocks = (IMemoryBlock[])memoryBlocks.toArray(new IMemoryBlock[memoryBlocks.size()]);
-
- return blocks;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#getMemoryBlocks(org.eclipse.debug.core.model.IDebugTarget)
- */
- public IMemoryBlock[] getMemoryBlocks(IDebugTarget debugTarget) {
-
- IMemoryBlock[] blocks = (IMemoryBlock[])memoryBlocks.toArray(new IMemoryBlock[memoryBlocks.size()]);
-
- ArrayList memoryBlocksList = new ArrayList();
-
- for (int i=0; i<blocks.length; i++)
- {
- if (blocks[i].getDebugTarget() == debugTarget)
- memoryBlocksList.add(blocks[i]);
- }
-
- return (IMemoryBlock[])memoryBlocksList.toArray(new IMemoryBlock[memoryBlocksList.size()]);
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.IMemoryBlockManager#getMemoryBlocks(org.eclipse.debug.core.model.IMemoryBlockRetrieval)
- */
- public IMemoryBlock[] getMemoryBlocks(IMemoryBlockRetrieval retrieve) {
- IMemoryBlock[] blocks = (IMemoryBlock[])memoryBlocks.toArray(new IMemoryBlock[memoryBlocks.size()]);
-
- ArrayList memoryBlocksList = new ArrayList(blocks.length);
-
- for (int i=0; i<blocks.length; i++)
- {
- if (blocks[i] instanceof IMemoryBlockExtension)
- {
-
- if (((IMemoryBlockExtension)blocks[i]).getMemoryBlockRetrieval() == retrieve)
- {
- memoryBlocksList.add(blocks[i]);
- }
- }
- else
- {
- // standard memory block always uses the debug target as the memory block retrieval
- if (blocks[i].getDebugTarget() == retrieve)
- memoryBlocksList.add(blocks[i]);
- }
- }
-
- return (IMemoryBlock[])memoryBlocksList.toArray(new IMemoryBlock[memoryBlocksList.size()]);
- }
-
-
- private void notifyListeners(IMemoryBlock[] memBlocks, int event)
- {
- getMemoryBlockNotifier().notify(memBlocks, event);
- }
-
-
- /* (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++)
- handleDebugEvent(events[i]);
-
- }
-
- public void handleDebugEvent(DebugEvent event) {
- Object obj = event.getSource();
- IDebugTarget dt = null;
-
- if (event.getKind() == DebugEvent.TERMINATE)
- {
- // a terminate event could happen from an IThread or IDebugTarget
- // only handle a debug event from the debug target
- if (obj instanceof IDebugTarget)
- {
- dt = ((IDebugTarget)obj);
-
- // getMemoryBlocks will return an empty array if dt is null
- IMemoryBlock[] deletedMemoryBlocks = getMemoryBlocks(dt);
- removeMemoryBlocks(deletedMemoryBlocks);
- }
- }
- }
-
- /**
- * Clean up when the plugin is shut down
- */
- public void shutdown()
- {
- if (listeners != null)
- {
- listeners.clear();
- listeners = null;
- }
-
- if (memoryBlocks != null)
- {
- memoryBlocks.clear();
- memoryBlocks = null;
- }
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java
deleted file mode 100644
index aa92d10d7..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.debug.core.IStreamListener;
-import org.eclipse.debug.core.model.IStreamMonitor;
-import org.eclipse.debug.core.model.IStreamsProxy2;
-
-public class NullStreamsProxy implements IStreamsProxy2 {
- private NullStreamMonitor outputStreamMonitor;
- private NullStreamMonitor errorStreamMonitor;
-
- public NullStreamsProxy(Process process) {
- outputStreamMonitor = new NullStreamMonitor(process.getInputStream());
- errorStreamMonitor = new NullStreamMonitor(process.getErrorStream());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamsProxy2#closeInputStream()
- */
- public void closeInputStream() throws IOException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamsProxy#getErrorStreamMonitor()
- */
- public IStreamMonitor getErrorStreamMonitor() {
- return errorStreamMonitor;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamsProxy#getOutputStreamMonitor()
- */
- public IStreamMonitor getOutputStreamMonitor() {
- return outputStreamMonitor;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamsProxy#write(java.lang.String)
- */
- public void write(String input) throws IOException {
- }
-
- private class NullStreamMonitor implements IStreamMonitor {
- private InputStream fStream;
-
- public NullStreamMonitor(InputStream stream) {
- fStream = stream;
- startReaderThread();
- }
-
- private void startReaderThread() {
- Thread thread = new Thread(new Runnable() {
- public void run() {
- byte[] bytes = new byte[1024];
- try {
- while(fStream.read(bytes) >= 0) {
- //do nothing
- }
- } catch (IOException e) {
- }
- }
- }, DebugCoreMessages.getString("NullStreamsProxy.0")); //$NON-NLS-1$
- thread.start();
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#addListener(org.eclipse.debug.core.IStreamListener)
- */
- public void addListener(IStreamListener listener) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#getContents()
- */
- public String getContents() {
- return ""; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#removeListener(org.eclipse.debug.core.IStreamListener)
- */
- public void removeListener(IStreamListener listener) {
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
deleted file mode 100644
index 58878c383..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IStreamListener;
-import org.eclipse.debug.core.model.IFlushableStreamMonitor;
-
-/**
- * Monitors the output stream of a system process and notifies
- * listeners of additions to the stream.
- *
- * The output stream monitor reads system out (or err) via
- * and input stream.
- */
-public class OutputStreamMonitor implements IFlushableStreamMonitor {
- /**
- * The stream being monitored (connected system out or err).
- */
- private InputStream fStream;
-
- /**
- * A collection of listeners
- */
- private ListenerList fListeners= new ListenerList(1);
-
- /**
- * Whether content is being buffered
- */
- private boolean fBuffered = true;
-
- /**
- * The local copy of the stream contents
- */
- private StringBuffer fContents;
-
- /**
- * The thread which reads from the stream
- */
- private Thread fThread;
-
- /**
- * The size of the read buffer
- */
- private static final int BUFFER_SIZE= 8192;
-
- /**
- * Whether or not this monitor has been killed.
- * When the monitor is killed, it stops reading
- * from the stream immediately.
- */
- private boolean fKilled= false;
-
- /**
- * Creates an output stream monitor on the
- * given stream (connected to system out or err).
- */
- public OutputStreamMonitor(InputStream stream) {
- fStream= stream;
- fContents= new StringBuffer();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#addListener(org.eclipse.debug.core.IStreamListener)
- */
- public synchronized void addListener(IStreamListener listener) {
- fListeners.add(listener);
- }
-
- /**
- * Causes the monitor to close all
- * communications between it and the
- * underlying stream by waiting for the thread to terminate.
- */
- protected void close() {
- if (fThread != null) {
- Thread thread= fThread;
- fThread= null;
- try {
- thread.join();
- } catch (InterruptedException ie) {
- }
- fListeners.removeAll();
- }
- }
-
- /**
- * Notifies the listeners that text has
- * been appended to the stream.
- */
- private void fireStreamAppended(String text) {
- getNotifier().notifyAppend(text);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#getContents()
- */
- public synchronized String getContents() {
- return fContents.toString();
- }
-
- /**
- * Continually reads from the stream.
- * <p>
- * This method, along with the <code>startReading</code>
- * method is used to allow <code>OutputStreamMonitor</code>
- * to implement <code>Runnable</code> without publicly
- * exposing a <code>run</code> method.
- */
- private void read() {
- byte[] bytes= new byte[BUFFER_SIZE];
- int read = 0;
- int count = 0;
- while (read >= 0) {
- try {
- if (fKilled) {
- break;
- }
- read= fStream.read(bytes);
- if (read > 0) {
- String text= new String(bytes, 0, read);
- synchronized (this) {
- if (isBuffered()) {
- fContents.append(text);
- }
- fireStreamAppended(text);
- }
- if (count == 10) {
- try {
- //allow other threads to do some processing.
- //heavy console output can make this loop busy.
- Thread.sleep(10);
- } catch (InterruptedException e) {
- }
- count = 0;
- } else {
- count++;
- }
- }
- } catch (IOException ioe) {
- DebugPlugin.log(ioe);
- return;
- } catch (NullPointerException e) {
- // killing the stream monitor while reading can cause an NPE
- // when reading from the stream
- if (!fKilled && fThread != null) {
- DebugPlugin.log(e);
- }
- return;
- }
- }
- try {
- fStream.close();
- } catch (IOException e) {
- DebugPlugin.log(e);
- }
- }
-
- protected void kill() {
- fKilled= true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamMonitor#removeListener(org.eclipse.debug.core.IStreamListener)
- */
- public synchronized void removeListener(IStreamListener listener) {
- fListeners.remove(listener);
- }
-
- /**
- * Starts a thread which reads from the stream
- */
- protected void startMonitoring() {
- if (fThread == null) {
- fThread= new Thread(new Runnable() {
- public void run() {
- read();
- }
- }, DebugCoreMessages.getString("OutputStreamMonitor.label")); //$NON-NLS-1$
- fThread.start();
- }
- }
-
- /**
- * @see org.eclipse.debug.core.model.IFlushableStreamMonitor#setBuffered(boolean)
- */
- public synchronized void setBuffered(boolean buffer) {
- fBuffered = buffer;
- }
-
- /**
- * @see org.eclipse.debug.core.model.IFlushableStreamMonitor#flushContents()
- */
- public synchronized void flushContents() {
- fContents.setLength(0);
- }
-
- /**
- * @see IFlushableStreamMonitor#isBuffered()
- */
- public synchronized boolean isBuffered() {
- return fBuffered;
- }
-
- private ContentNotifier getNotifier() {
- return new ContentNotifier();
- }
-
- class ContentNotifier implements ISafeRunnable {
-
- private IStreamListener fListener;
- private String fText;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- DebugPlugin.log(exception);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- fListener.streamAppended(fText, OutputStreamMonitor.this);
- }
-
- public void notifyAppend(String text) {
- if (text == null)
- return;
- fText = text;
- Object[] copiedListeners= fListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IStreamListener) copiedListeners[i];
- Platform.run(this);
- }
- fListener = null;
- fText = null;
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
deleted file mode 100644
index eb785b460..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.io.IOException;
-
-import org.eclipse.debug.core.model.IStreamMonitor;
-import org.eclipse.debug.core.model.IStreamsProxy;
-import org.eclipse.debug.core.model.IStreamsProxy2;
-
-/**
- * Standard implementation of a streams proxy for s
- * StreamsProxy
- */
-
-public class StreamsProxy implements IStreamsProxy, IStreamsProxy2 {
- /**
- * The monitor for the output stream (connected to standard out of the process)
- */
- private OutputStreamMonitor fOutputMonitor;
- /**
- * The monitor for the error stream (connected to standard error of the process)
- */
- private OutputStreamMonitor fErrorMonitor;
- /**
- * The monitor for the input stream (connected to standard in of the process)
- */
- private InputStreamMonitor fInputMonitor;
- /**
- * Records the open/closed state of communications with
- * the underlying streams.
- */
- private boolean fClosed= false;
- /**
- * Creates a <code>StreamsProxy</code> on the streams
- * of the given system process.
- */
- public StreamsProxy(Process process) {
- if (process == null) {
- return;
- }
- fOutputMonitor= new OutputStreamMonitor(process.getInputStream());
- fErrorMonitor= new OutputStreamMonitor(process.getErrorStream());
- fInputMonitor= new InputStreamMonitor(process.getOutputStream());
- fOutputMonitor.startMonitoring();
- fErrorMonitor.startMonitoring();
- fInputMonitor.startMonitoring();
- }
-
- /**
- * Causes the proxy to close all
- * communications between it and the
- * underlying streams after all remaining data
- * in the streams is read.
- */
- public void close() {
- if (!fClosed) {
- fClosed= true;
- fOutputMonitor.close();
- fErrorMonitor.close();
- fInputMonitor.close();
- }
- }
-
- /**
- * Causes the proxy to close all
- * communications between it and the
- * underlying streams immediately.
- * Data remaining in the streams is lost.
- */
- public void kill() {
- fClosed= true;
- fOutputMonitor.kill();
- fErrorMonitor.kill();
- fInputMonitor.close();
- }
-
- /**
- * @see IStreamsProxy#getErrorStreamMonitor()
- */
- public IStreamMonitor getErrorStreamMonitor() {
- return fErrorMonitor;
- }
-
- /**
- * @see IStreamsProxy#getOutputStreamMonitor()
- */
- public IStreamMonitor getOutputStreamMonitor() {
- return fOutputMonitor;
- }
-
- /**
- * @see IStreamsProxy#write(String)
- */
- public void write(String input) throws IOException {
- if (!fClosed) {
- fInputMonitor.write(input);
- } else {
- throw new IOException();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IStreamsProxy2#closeInputStream()
- */
- public void closeInputStream() throws IOException {
- if (!fClosed) {
- fInputMonitor.closeInputStream();
- } else {
- throw new IOException();
- }
-
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java
deleted file mode 100644
index 8a78e134c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.IDynamicVariableResolver;
-
-/**
- * Resolves common system variables. The current set of variables
- * supported (referenced as an argument to this variable) are:
- * <ul>
- * <li>ARCH - value of <code>BootLoader.getOSArch()</code></li>
- * <li>ECLIPSE_HOME - location of the Eclipse installation</li>
- * <li>NL - value of <code>BootLoader.getNL()</code></li>
- * <li>OS - value of <code>BootLoader.getOS()</code></li>
- * <li>WS - value of <code>BootLoader.getWS()</code></li>
- * </ul>
- * @since 3.0
- */
-public class SystemVariableResolver 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 ("ARCH".equals(argument)) { //$NON-NLS-1$
- return Platform.getOSArch();
- } else if ("ECLIPSE_HOME".equals(argument)) { //$NON-NLS-1$
- URL installURL = Platform.getInstallLocation().getURL();
- IPath ppath = new Path(installURL.getFile()).removeTrailingSeparator();
- return getCorrectPath(ppath.toOSString());
- } else if ("NL".equals(argument)) { //$NON-NLS-1$
- return Platform.getNL();
- } else if ("OS".equals(argument)) { //$NON-NLS-1$
- return Platform.getOS();
- } else if ("WS".equals(argument)) { //$NON-NLS-1$
- return Platform.getWS();
- }
- return null;
- }
-
- private static String getCorrectPath(String path) {
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < path.length(); i++) {
- char c = path.charAt(i);
- if (Platform.getOS().equals("win32")) { //$NON-NLS-1$
- if (i == 0 && c == '/')
- continue;
- }
- // Some VMs may return %20 instead of a space
- if (c == '%' && i + 2 < path.length()) {
- char c1 = path.charAt(i + 1);
- char c2 = path.charAt(i + 2);
- if (c1 == '2' && c2 == '0') {
- i += 2;
- buf.append(" "); //$NON-NLS-1$
- continue;
- }
- }
- buf.append(c);
- }
- return buf.toString();
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java
deleted file mode 100644
index ddeb19501..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.IWatchExpression;
-import org.eclipse.debug.core.model.IWatchExpressionDelegate;
-import org.eclipse.debug.core.model.IWatchExpressionListener;
-import org.eclipse.debug.core.model.IWatchExpressionResult;
-
-/**
- * Base watch expression implementation.
- * <p>
- * Clients may extend this class.
- * </p>
- * @since 3.0
- */
-public class WatchExpression implements IWatchExpression {
-
- protected String fExpressionText;
- protected IWatchExpressionResult fResult;
- protected IDebugTarget fDebugTarget;
- protected IDebugElement fCurrentContext;
- private boolean fEnabled= true;
- private boolean fPending= false;
-
- /**
- * Creates a new watch expression with the given expression
- * text.
- * @param expression the text of the expression to be evaluated.
- */
- public WatchExpression(String expression) {
- fExpressionText= expression;
- }
-
- /**
- * Creates a new watch expression with the given expression
- * and the given enablement;
- *
- * @param expressionText the text of the expression to be evaluated
- * @param enabled whether or not the new expression should be enabled
- */
- public WatchExpression(String expressionText, boolean enabled) {
- this(expressionText);
- fEnabled= enabled;
- }
-
- /**
- * @see org.eclipse.debug.core.model.IWatchExpression#evaluate()
- */
- public void evaluate() {
- if (fCurrentContext == null) {
- return;
- }
- IDebugElement context= fCurrentContext;
- fDebugTarget= context.getDebugTarget();
-
- IWatchExpressionListener listener= new IWatchExpressionListener() {
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IWatchExpressionListener#watchEvaluationFinished(org.eclipse.debug.core.model.IWatchExpressionResult)
- */
- public void watchEvaluationFinished(IWatchExpressionResult result) {
- setPending(false);
- setResult(result);
- }
- };
- setPending(true);
- IWatchExpressionDelegate delegate= DebugPlugin.getDefault().getExpressionManager().newWatchExpressionDelegate(context.getModelIdentifier());
- if (delegate != null) {
- delegate.evaluateExpression(getExpressionText(), context, listener);
- } else {
- // No delegate provided
- listener.watchEvaluationFinished(new IWatchExpressionResult() {
- public IValue getValue() {
- return null;
- }
- public boolean hasErrors() {
- return true;
- }
- public String[] getErrorMessages() {
- return new String[] { DebugCoreMessages.getString("WatchExpression.0") }; //$NON-NLS-1$
- }
- public String getExpressionText() {
- return WatchExpression.this.getExpressionText();
- }
- public DebugException getException() {
- return null;
- }
- });
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IWatchExpression#setExpressionContext(org.eclipse.debug.core.model.IDebugElement)
- */
- public void setExpressionContext(IDebugElement context) {
- fCurrentContext= context;
- if (context == null) {
- setResult(null);
- return;
- }
- if (!isEnabled()) {
- return;
- }
-
- evaluate();
- }
-
- /**
- * Sets the result of the last expression and fires notification that
- * this expression's value has changed.
- */
- public void setResult(IWatchExpressionResult result) {
- fResult= result;
- DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {new DebugEvent(this, DebugEvent.CHANGE)});
- }
-
- /**
- * Notifies the expression manager that this watch expression's
- * values have changed so the manager can update the
- * persisted expression.
- */
- private void watchExpressionChanged() {
- ((ExpressionManager)DebugPlugin.getDefault().getExpressionManager()).watchExpressionChanged(this);
- }
-
- /**
- * @see org.eclipse.debug.core.model.IExpression#getExpressionText()
- */
- public String getExpressionText() {
- return fExpressionText;
- }
-
- /**
- * @see org.eclipse.debug.core.model.IExpression#getValue()
- */
- public IValue getValue() {
- if (fResult == null) {
- return null;
- }
- return fResult.getValue();
- }
-
- /**
- * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget()
- */
- public IDebugTarget getDebugTarget() {
- return fDebugTarget;
- }
-
- /**
- * @see org.eclipse.debug.core.model.IExpression#dispose()
- */
- public void dispose() {
- }
-
- /**
- * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
- */
- public String getModelIdentifier() {
- if (fCurrentContext != null) {
- return fCurrentContext.getModelIdentifier();
- }
- return DebugPlugin.getUniqueIdentifier();
- }
-
- /**
- * @see org.eclipse.debug.core.model.IDebugElement#getLaunch()
- */
- public ILaunch getLaunch() {
- IDebugTarget debugTarget = getDebugTarget();
- if (debugTarget != null) {
- return debugTarget.getLaunch();
- }
- return null;
- }
-
- /**
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- return Platform.getAdapterManager().getAdapter(this, adapter);
- }
-
- /**
- * @param enabled
- */
- public void setEnabled(boolean enabled) {
- fEnabled= enabled;
- watchExpressionChanged();
- evaluate();
- }
-
- /**
- * @param expression
- */
- public void setExpressionText(String expression) {
- fExpressionText= expression;
- watchExpressionChanged();
- evaluate();
- }
-
- /**
- * @return Whether or not this watch expression is currently enabled.
- * Enabled watch expressions will continue to update their value
- * automatically. Disabled expressions require a manual update.
- */
- public boolean isEnabled() {
- return fEnabled;
- }
-
- /**
- * @see org.eclipse.debug.core.model.IWatchExpression#isPending()
- */
- public boolean isPending() {
- return fPending;
- }
-
- /**
- * Sets the pending state of this expression.
- *
- * @param pending whether or not this expression should be
- * flagged as pending
- */
- protected void setPending(boolean pending) {
- fPending= pending;
- watchExpressionChanged();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IErrorReportingExpression#hasErrors()
- */
- public boolean hasErrors() {
- return fResult != null && fResult.hasErrors();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IErrorReportingExpression#getErrorMessages()
- */
- public String[] getErrorMessages() {
- if (fResult == null) {
- return new String[0];
- }
- return fResult.getErrorMessages();
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java
deleted file mode 100644
index 8e0ac910d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup;
-
-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.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate;
-
-/**
- * Proxy to contributed source container type extension.
- *
- * @since 3.0
- */
-public class SourceContainerType implements ISourceContainerType {
-
- // lazily instantiated delegate
- private ISourceContainerTypeDelegate fDelegate = null;
-
- // extension definition
- private IConfigurationElement fElement = null;
-
- /**
- * Constructs a source container type on the given extension.
- *
- * @param element extension definition
- */
- public SourceContainerType(IConfigurationElement element) {
- fElement = element;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- return getDelegate().createSourceContainer(memento);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- if (this.equals(container.getType())) {
- return getDelegate().getMemento(container);
- }
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, SourceLookupMessages.getString("SourceContainerType.3"), null); //$NON-NLS-1$
- throw new CoreException(status);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getName()
- */
- public String getName() {
- return fElement.getAttribute("name"); //$NON-NLS-1$
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getId()
- */
- public String getId() {
- return fElement.getAttribute("id"); //$NON-NLS-1$
- }
-
- /**
- * Lazily instantiates and returns the underlying source container type.
- *
- * @exception CoreException if unable to instantiate
- */
- private ISourceContainerTypeDelegate getDelegate() throws CoreException {
- if (fDelegate == null) {
- fDelegate = (ISourceContainerTypeDelegate) fElement.createExecutableExtension("class"); //$NON-NLS-1$
- }
- return fDelegate;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getDescription()
- */
- public String getDescription() {
- return fElement.getAttribute("description"); //$NON-NLS-1$
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java
deleted file mode 100644
index 4c49167ca..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup;
-
-import java.util.Comparator;
-
-/**
- * Comparator for source locator mementors. Ignores whitespace differences.
- *
- * @since 3.0
- */
-public class SourceLocatorMementoComparator implements Comparator {
- /* (non-Javadoc)
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Object o1, Object o2) {
- String m1 = (String)o1;
- String m2 = (String)o2;
- int i1 = 0, i2 = 0;
- while (i1 < m1.length()) {
- i1 = skipWhitespace(m1, i1);
- i2 = skipWhitespace(m2, i2);
- if (i1 < m1.length() && i2 < m2.length()) {
- if (m1.charAt(i1) != m2.charAt(i2)) {
- return -1;
- }
- i1++;
- i2++;
- } else {
- if (i2 < m2.length()) {
- return -1;
- }
- return 0;
- }
- }
- return 0;
- }
-
- private int skipWhitespace(String string, int offset) {
- while (offset < string.length() && Character.isWhitespace(string.charAt(offset))) {
- offset++;
- }
- return offset;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java
deleted file mode 100644
index 59eaf1499..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class SourceLookupMessages {
- private static final String BUNDLE_NAME = "org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages";//$NON-NLS-1$
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private SourceLookupMessages() {
- }
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties
deleted file mode 100644
index 87a6b7cf7..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties
+++ /dev/null
@@ -1,59 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-AbstractSourceLookupDirector.11=Unable to restore source lookup path - expecting typeId attribute.
-AbstractSourceLookupDirector.12=Unable to restore source lookup path - unknown type source container type specified: {0}
-AbstractSourceLookupDirector.13=Unable to restore source lookup path - expecting memento attribute.
-AbstractSourceLookupDirector.14=Unable to read source lookup path - expecting sourceLookupDirector node.
-AbstractSourceLookupDirector.19=Source lookup error
-CompositeSourceContainer.0=Source lookup error
-
-ExternalArchiveSourceContainer.1=Exception occurred while detecting root directory in archive {0}
-ExternalArchiveSourceContainer.2=Unable to access archive {0}
-
-ExternalArchiveSourceContainerType.10=Invalid or missing <path> attribute in archive memento.
-ExternalArchiveSourceContainerType.11=Missing <archive> node in archive memento.
-ExternalArchiveSourceContainerType.12=Invalid archive memento
-
-DefaultSourceContainer.0=Default
-DefaultSourceContainerType.6=Unable to restore default source lookup path - expecting default element.
-DefaultSourceContainerType.7=Unable to restore default source lookup path - invalid memento.
-
-DirectorySourceContainerType.10=Unable to restore directory source lookup entry - missing path attribute.
-DirectorySourceContainerType.11=Unable to restore directory source lookup entry - expecting directory element.
-DirectorySourceContainerType.12=Unable to restore directory source lookup entry - invalid memento.
-
-FolderSourceContainerType.10=Unable to restore source lookup folder - missing path attribute.
-FolderSourceContainerType.11=Unable to restore source lookup folder - expecting folder element.
-FolderSourceContainerType.12=Unable to restore source lookup folder - invalid memento.
-
-LocalFileStorage.0=Exception ocurred retrieving file contents.
-
-ProjectSourceContainerType.10=Unable to restore project source lookup entry - missing name attribute.
-ProjectSourceContainerType.11=Unable to restore project source lookup entry - expecting project element.
-ProjectSourceContainerType.12=Unable to restore project source lookup entry - invalid memento.
-
-SourceLookupUtils.3=Unable to create new XML document.
-SourceLookupUtils.4=Unable to serialize XML document.
-SourceLookupUtils.5=Unable to serialize XML document.
-SourceLookupUtils.6=Unable to parse XML document.
-SourceLookupUtils.7=Unable to parse XML document.
-SourceLookupUtils.8=Unable to parse XML document.
-SourceLookupUtils.9=Unable to parse XML document.
-SourceLookupUtils.10=Unable to parse XML document.
-SourceContainerType.3=Unable to persist source lookup path.
-
-WorkspaceSourceContainer.0=Workspace
-
-WorkspaceSourceContainerType.3=Unable to restore workspace source lookup entry - expecting workspace element.
-WorkspaceSourceContainerType.4=Unable to restore workspace source lookup entry - invalid memento.
-
-ZipEntryStorage.0=Unable to read ZipEntry contents
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java
deleted file mode 100644
index 38f6ad212..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.zip.ZipFile;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchesListener;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IProcess;
-
-/**
- * Utility and supporting methods for source location. Most of these
- * utilities should be migrated to the DebugPlugin and LanuchManager
- * when this facility becomes public API.
- * <p>
- * This class is experimental and temporary.
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector
- * @since 3.0
- */
-public class SourceLookupUtils {
-
- /**
- * Cache of shared zip files. Zip files are closed
- * when this class's plug-in is shutdown, when a project
- * is about to be closed or deleted, when a launch is
- * removed, and when a debug target or process terminates.
- */
- private static HashMap fgZipFileCache = new HashMap(5);
- private static ArchiveCleaner fgCleaner = null;
-
- /**
- * Returns a zip file with the given name
- *
- * @param name zip file name
- * @return The zip file with the given name
- * @exception IOException if unable to create the specified zip
- * file
- */
- public static ZipFile getZipFile(String name) throws IOException {
- synchronized (fgZipFileCache) {
- if (fgCleaner == null) {
- fgCleaner = new ArchiveCleaner();
- DebugPlugin.getDefault().addDebugEventListener(fgCleaner);
- DebugPlugin.getDefault().getLaunchManager().addLaunchListener(fgCleaner);
- ResourcesPlugin.getWorkspace().addResourceChangeListener(fgCleaner, IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE);
- }
- ZipFile zip = (ZipFile)fgZipFileCache.get(name);
- if (zip == null) {
- zip = new ZipFile(name);
- fgZipFileCache.put(name, zip);
- }
- return zip;
- }
- }
-
- /**
- * Closes all zip files that have been opened,
- * and removes them from the zip file cache.
- * This method is only to be called by the debug
- * plug-in.
- */
- public static void closeArchives() {
- synchronized (fgZipFileCache) {
- Iterator iter = fgZipFileCache.values().iterator();
- while (iter.hasNext()) {
- ZipFile file = (ZipFile)iter.next();
- synchronized (file) {
- try {
- file.close();
- } catch (IOException e) {
- DebugPlugin.log(e);
- }
- }
- }
- fgZipFileCache.clear();
- }
- }
-
- /**
- * Called when the debug plug-in shuts down.
- */
- public static void shutdown() {
- closeArchives();
- if (fgCleaner != null) {
- DebugPlugin.getDefault().removeDebugEventListener(fgCleaner);
- DebugPlugin.getDefault().getLaunchManager().removeLaunchListener(fgCleaner);
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(fgCleaner);
- }
- }
-
- /**
- * Clears the cache of open zip files when a debug target or process
- * terminates, when a launch is removed, or when a project is about
- * to be deleted or closed.
- */
- static class ArchiveCleaner implements IDebugEventSetListener, ILaunchesListener, IResourceChangeListener {
-
- /* (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.getKind() == DebugEvent.TERMINATE) {
- Object source = event.getSource();
- if (source instanceof IDebugTarget || source instanceof IProcess) {
- SourceLookupUtils.closeArchives();
- }
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchesListener#launchesRemoved(org.eclipse.debug.core.ILaunch[])
- */
- public void launchesRemoved(ILaunch[] launches) {
- SourceLookupUtils.closeArchives();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchesListener#launchesAdded(org.eclipse.debug.core.ILaunch[])
- */
- public void launchesAdded(ILaunch[] launches) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchesListener#launchesChanged(org.eclipse.debug.core.ILaunch[])
- */
- public void launchesChanged(ILaunch[] launches) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- SourceLookupUtils.closeArchives();
- }
-
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java
deleted file mode 100644
index f861ab451..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.sourcelookup.*;
-
-/**
- * Proxy to contributed source path computer extension.
- */
-public class SourcePathComputer implements ISourcePathComputer {
-
- // lazily instantiated delegate
- private ISourcePathComputerDelegate fDelegate = null;
-
- // extension definition
- private IConfigurationElement fElement = null;
-
- /**
- * Constructs a source path computer on the given extension.
- *
- * @param element extension definition
- */
- public SourcePathComputer(IConfigurationElement element) {
- fElement = element;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getId()
- */
- public String getId() {
- return fElement.getAttribute("id"); //$NON-NLS-1$
- }
-
- /**
- * Lazily instantiates and returns the underlying source container type.
- *
- * @exception CoreException if unable to instantiate
- */
- private ISourcePathComputerDelegate getDelegate() throws CoreException {
- if (fDelegate == null) {
- fDelegate = (ISourcePathComputerDelegate) fElement.createExecutableExtension("class"); //$NON-NLS-1$
- }
- return fDelegate;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourcePathComputer#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.core.runtime.IProgressMonitor)
- */
- public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) {
- try {
- return getDelegate().computeSourceContainers(configuration, monitor);
- } catch (CoreException e) {
- DebugPlugin.log(e);
- }
- return new ISourceContainer[0];
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java
deleted file mode 100644
index 44ea90586..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.ArchiveSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Archive source container type for archives in the workspace.
- *
- * @since 3.0
- */
-public class ArchiveSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("archive".equals(element.getNodeName())) { //$NON-NLS-1$
- String string = element.getAttribute("path"); //$NON-NLS-1$
- if (string == null || string.length() == 0) {
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.10"), null); //$NON-NLS-1$
- }
- String detect = element.getAttribute("detectRoot"); //$NON-NLS-1$
- boolean auto = "true".equals(detect); //$NON-NLS-1$
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(string));
- return new ArchiveSourceContainer(file, auto);
- }
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.11"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.12"), null); //$NON-NLS-1$
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- ArchiveSourceContainer archive = (ArchiveSourceContainer) container;
- Document document = newDocument();
- Element element = document.createElement("archive"); //$NON-NLS-1$
- element.setAttribute("path", archive.getFile().getFullPath().toString()); //$NON-NLS-1$
- String detectRoot = "false"; //$NON-NLS-1$
- if (archive.isDetectRoot()) {
- detectRoot = "true"; //$NON-NLS-1$
- }
- element.setAttribute("detectRoot", detectRoot); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java
deleted file mode 100644
index bc46007eb..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.CompositeSourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.FolderSourceContainer;
-
-/**
- * A container in the workspace. Source elements are searched
- * for within this container and optionally nested containers.
- * <p>
- * Names specified in <code>findSourceElements</code> method can
- * be simple or qualified. When a name is qualified, a file will
- * be searched for relative to this container, and optionally
- * nested containers.
- * </p>
- *
- * @since 3.0
- */
-public abstract class ContainerSourceContainer extends CompositeSourceContainer {
-
- private IContainer fContainer = null;
- private boolean fSubfolders = false;
-
- /**
- * Constructs a source container on the given workspace container.
- *
- * @param container the container to search for source in
- * @param subfolders whether nested folders should be searched
- * for source elements
- */
- public ContainerSourceContainer(IContainer container, boolean subfolders) {
- fContainer = container;
- fSubfolders = subfolders;
- }
-
- /**
- * Returns the workspace container this source container is
- * rooted at.
- *
- * @return the workspace container this source container is
- * rooted at
- */
- public IContainer getContainer() {
- return fContainer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- ArrayList sources = new ArrayList();
- IContainer container = getContainer();
- IPath path = new Path(name);
- IFile file = container.getFile(path);
- if (file.exists()) {
- sources.add(file);
- }
-
- //check subfolders
- if ((isFindDuplicates() && fSubfolders) || (sources.isEmpty() && fSubfolders)) {
- ISourceContainer[] containers = getSourceContainers();
- for (int i=0; i < containers.length; i++) {
- Object[] objects = containers[i].findSourceElements(name);
- if (objects == null || objects.length == 0) {
- continue;
- }
- if (isFindDuplicates()) {
- for(int j=0; j < objects.length; j++)
- sources.add(objects[j]);
- } else {
- sources.add(objects[0]);
- break;
- }
- }
- }
-
- if(sources.isEmpty())
- return EMPTY;
- return sources.toArray();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return getContainer().getName();
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj != null && obj instanceof ContainerSourceContainer) {
- ContainerSourceContainer loc = (ContainerSourceContainer) obj;
- return loc.getContainer().equals(getContainer());
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getContainer().hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return fSubfolders;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- if(fSubfolders) {
- IResource[] resources = getContainer().members();
- List list = new ArrayList(resources.length);
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- if (resource.getType() == IResource.FOLDER) {
- list.add(new FolderSourceContainer((IFolder)resource, fSubfolders));
- }
- }
- ISourceContainer[] containers = (ISourceContainer[]) list.toArray(new ISourceContainer[list.size()]);
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- container.init(getDirector());
- }
- return containers;
- }
- return new ISourceContainer[0];
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java
deleted file mode 100644
index 0be367573..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.DefaultSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * A default source lookup path. The default path is computed by a
- * source path computer.
- *
- * @since 3.0
- */
-public class DefaultSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- Document document = newDocument();
- Element element = document.createElement("default"); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento)throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("default".equals(element.getNodeName())) { //$NON-NLS-1$
- return new DefaultSourceContainer();
- }
- abort(SourceLookupMessages.getString("DefaultSourceContainerType.6"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("DefaultSourceContainerType.7"), null); //$NON-NLS-1$
- return null;
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java
deleted file mode 100644
index cdee83234..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.DirectorySourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * A folder in the local file system.
- *
- * @since 3.0
- */
-public class DirectorySourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("directory".equals(element.getNodeName())) { //$NON-NLS-1$
- String string = element.getAttribute("path"); //$NON-NLS-1$
- if (string == null || string.length() == 0) {
- abort(SourceLookupMessages.getString("DirectorySourceContainerType.10"), null); //$NON-NLS-1$
- }
- String nest = element.getAttribute("nest"); //$NON-NLS-1$
- boolean nested = "true".equals(nest); //$NON-NLS-1$
- return new DirectorySourceContainer(new Path(string), nested);
- }
- abort(SourceLookupMessages.getString("DirectorySourceContainerType.11"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("DirectorySourceContainerType.12"), null); //$NON-NLS-1$
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- DirectorySourceContainer folder = (DirectorySourceContainer) container;
- Document document = newDocument();
- Element element = document.createElement("directory"); //$NON-NLS-1$
- element.setAttribute("path", folder.getDirectory().getAbsolutePath()); //$NON-NLS-1$
- String nest = "false"; //$NON-NLS-1$
- if (folder.isComposite()) {
- nest = "true"; //$NON-NLS-1$
- }
- element.setAttribute("nest", nest); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java
deleted file mode 100644
index 884d71d39..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.ExternalArchiveSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * External archive source container type.
- *
- * @since 3.0
- */
-public class ExternalArchiveSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("archive".equals(element.getNodeName())) { //$NON-NLS-1$
- String string = element.getAttribute("path"); //$NON-NLS-1$
- if (string == null || string.length() == 0) {
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.10"), null); //$NON-NLS-1$
- }
- String detect = element.getAttribute("detectRoot"); //$NON-NLS-1$
- boolean auto = "true".equals(detect); //$NON-NLS-1$
- return new ExternalArchiveSourceContainer(string, auto);
- }
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.11"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("ExternalArchiveSourceContainerType.12"), null); //$NON-NLS-1$
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- ExternalArchiveSourceContainer archive = (ExternalArchiveSourceContainer) container;
- Document document = newDocument();
- Element element = document.createElement("archive"); //$NON-NLS-1$
- element.setAttribute("path", archive.getName()); //$NON-NLS-1$
- String detectRoot = "false"; //$NON-NLS-1$
- if (archive.isDetectRoot()) {
- detectRoot = "true"; //$NON-NLS-1$
- }
- element.setAttribute("detectRoot", detectRoot); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java
deleted file mode 100644
index e4e425877..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.FolderSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * A folder in the workspace.
- *
- * @since 3.0
- */
-public class FolderSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- FolderSourceContainer folderSourceContainer = (FolderSourceContainer)container;
- Document document = newDocument();
- Element element = document.createElement("folder"); //$NON-NLS-1$
- element.setAttribute("path", folderSourceContainer.getContainer().getFullPath().toString()); //$NON-NLS-1$
- String nest = "false"; //$NON-NLS-1$
- if (folderSourceContainer.isComposite()) {
- nest = "true"; //$NON-NLS-1$
- }
- element.setAttribute("nest", nest); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("folder".equals(element.getNodeName())) { //$NON-NLS-1$
- String string = element.getAttribute("path"); //$NON-NLS-1$
- if (string == null || string.length() == 0) {
- abort(SourceLookupMessages.getString("FolderSourceContainerType.10"), null); //$NON-NLS-1$
- }
- String nest = element.getAttribute("nest"); //$NON-NLS-1$
- boolean nested = "true".equals(nest); //$NON-NLS-1$
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IFolder folder = workspace.getRoot().getFolder(new Path(string));
- // TODO: what if folder does not exist
- return new FolderSourceContainer(folder, nested);
- }
- abort(SourceLookupMessages.getString("FolderSourceContainerType.11"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("FolderSourceContainerType.12"), null); //$NON-NLS-1$
- return null;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java
deleted file mode 100644
index 51d1a9f14..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * The type for creating/restoring a project source container.
- *
- * @since 3.0
- */
-public class ProjectSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- ProjectSourceContainer project = (ProjectSourceContainer) container;
- Document document = newDocument();
- Element element = document.createElement("project"); //$NON-NLS-1$
- element.setAttribute("name", project.getContainer().getName()); //$NON-NLS-1$
- String referenced = "false"; //$NON-NLS-1$
- if (project.isSearchReferencedProjects()) {
- referenced = "true"; //$NON-NLS-1$
- }
- element.setAttribute("referencedProjects", referenced); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("project".equals(element.getNodeName())) { //$NON-NLS-1$
- String string = element.getAttribute("name"); //$NON-NLS-1$
- if (string == null || string.length() == 0) {
- abort(SourceLookupMessages.getString("ProjectSourceContainerType.10"), null); //$NON-NLS-1$
- }
- String nest = element.getAttribute("referencedProjects"); //$NON-NLS-1$
- boolean ref = "true".equals(nest); //$NON-NLS-1$
- IWorkspace workspace = ResourcesPlugin.getWorkspace();
- IProject project = workspace.getRoot().getProject(string);
- return new ProjectSourceContainer(project, ref);
- }
- abort(SourceLookupMessages.getString("ProjectSourceContainerType.11"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("ProjectSourceContainerType.12"), null); //$NON-NLS-1$
- return null;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java
deleted file mode 100644
index 053093c1b..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate;
-import org.eclipse.debug.core.sourcelookup.containers.WorkspaceSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * The type for creating/restoring workspace source containers.
- *
- * @since 3.0
- */
-public class WorkspaceSourceContainerType extends AbstractSourceContainerTypeDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#createSourceContainer(java.lang.String)
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException {
- Node node = parseDocument(memento);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)node;
- if ("workspace".equals(element.getNodeName())) { //$NON-NLS-1$
- return new WorkspaceSourceContainer();
- }
- abort(SourceLookupMessages.getString("WorkspaceSourceContainerType.3"), null); //$NON-NLS-1$
- }
- abort(SourceLookupMessages.getString("WorkspaceSourceContainerType.4"), null); //$NON-NLS-1$
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate#getMemento(org.eclipse.debug.internal.core.sourcelookup.ISourceContainer)
- */
- public String getMemento(ISourceContainer container) throws CoreException {
- Document document = newDocument();
- Element element = document.createElement("workspace"); //$NON-NLS-1$
- document.appendChild(element);
- return serializeDocument(document);
- }
-}
diff --git a/org.eclipse.debug.core/doc/.cvsignore b/org.eclipse.debug.core/doc/.cvsignore
deleted file mode 100644
index af3f463c2..000000000
--- a/org.eclipse.debug.core/doc/.cvsignore
+++ /dev/null
@@ -1,15 +0,0 @@
-book.css
-org_eclipse_debug_core_breakpoints.html
-org_eclipse_debug_core_launchConfigurationComparators.html
-org_eclipse_debug_core_launchConfigurationTypes.html
-org_eclipse_debug_core_launchDelegates.html
-org_eclipse_debug_core_launchers.html
-org_eclipse_debug_core_launchModes.html
-org_eclipse_debug_core_logicalStructureTypes.html
-org_eclipse_debug_core_processFactories.html
-org_eclipse_debug_core_sourceContainerTypes.html
-org_eclipse_debug_core_sourceLocators.html
-org_eclipse_debug_core_sourcePathComputers.html
-org_eclipse_debug_core_statusHandlers.html
-org_eclipse_debug_core_watchExpressionDelegates.html
-schema.css
diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html
deleted file mode 100644
index 98981aa52..000000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<!-- default platform documentation stylesheets -->
-<style>@import url("book.css");</style>
-<!-- default schema documentation stylesheets -->
-<style>@import url("schema.css");</style>
-</HEAD>
-<HTML>
-<BODY>
-<H1><CENTER>Source Container Types</CENTER></H1>
-<p></p>
-<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.debug.core.sourceContainerTypes<p></p>
-<h6 class=CaptionFigColumn id=header>Since: </h6>3.0
-<p></p>
-
-<p>
-<h6 class=CaptionFigColumn id=header>Description: </h6>This extension point allows for an extensible set of source container types to be contributed by the debug platform
- source lookup facilities.</p>
-<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
-<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.sourceContainerType">sourceContainerType</a>*)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST extension</p>
-<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
-<p></p>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>point</b> - a fully qualified identifier of the target extension point</li>
-<li><b>id</b> - an optional identifier of the extension instance</li>
-<li><b>name</b> - an optional name of the extension instance</li>
-</ul>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.sourceContainerType">sourceContainerType</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST sourceContainerType</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>class&nbsp;CDATA #REQUIRED&gt;</p>
-<p></p>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - The unique id used to refer to this type</li>
-<li><b>name</b> - The name of this source container type use for presentation purposes.</li>
-<li><b>class</b> - A class that implements ISourceContainerType</li>
-</ul>
-<br><h6 class=CaptionFigColumn id=header>API Information: </h6>Value of the attribute <b>class</b> must be a fully qualified name of a Java class that implements the interface <b>ISourceContainerType</b>.
-<p></p>
-
-<br>
-<p class=note id=copyright>
-<p>
- <a href="hglegal.htm">
- <img SRC="ngibmcpy.gif"
- ALT="Copyright (c) 2003 IBM Corporation and others. All Rights Reserved."
- BORDER=0 height=14 width=324></a>
- </p>
-<p></p>
-
-</p>
-</BODY>
-</HTML>
diff --git a/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html b/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html
deleted file mode 100644
index 930540395..000000000
--- a/org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<!-- default platform documentation stylesheets -->
-<style>@import url("book.css");</style>
-<!-- default schema documentation stylesheets -->
-<style>@import url("schema.css");</style>
-</HEAD>
-<HTML>
-<BODY>
-<H1><CENTER>Source Path Computers</CENTER></H1>
-<p></p>
-<h6 class=CaptionFigColumn id=header>Identifier: </h6>org.eclipse.debug.core.sourcePathComputers<p></p>
-<h6 class=CaptionFigColumn id=header>Since: </h6>3.0
-<p></p>
-
-<p>
-<h6 class=CaptionFigColumn id=header>Description: </h6>Defines an extension point to register a computer that can describe a default source lookup path for
- a launch configuration. Source path computers are associated with launch configuration types via the
- launchConfigurationTypes extension point. As well, a source path computer can be associated with a
- specific launch configuration via the launch configuration attribute ATTR_SOURCE_PATH_COMPUTER_ID.</p>
-<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
-<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.sourcePathComputer">sourcePathComputer</a>*)&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST extension</p>
-<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
-<p></p>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>point</b> - a fully qualified identifier of the target extension point</li>
-<li><b>id</b> - an optional identifier of the extension instance</li>
-<li><b>name</b> - an optional name of the extension instance</li>
-</ul>
-<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.sourcePathComputer">sourcePathComputer</a> EMPTY&gt;</p>
-<p class=code id=dtd>&lt;!ATTLIST sourcePathComputer</p>
-<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class=code id=dtdAttlist>class&nbsp;CDATA #REQUIRED&gt;</p>
-<p></p>
-<p class=ConfigMarkup id=elementDesc>
-Defines an extension point to register a computer that can describe a default source lookup path
- for a launch configuration.</p>
-<br>
-<ul class=ConfigMarkup id=attlistDesc>
-<li><b>id</b> - The unique id used to refer to this computer.</li>
-<li><b>class</b> - A class that implements ISourcePathComputer.</li>
-</ul>
-<br><h6 class=CaptionFigColumn id=header>API Information: </h6>Value of the attribute <b>class</b> must be a fully qualified name of a Java class that implements the interface <b>ISourcePathComputer</b>.
-<p></p>
-
-<br>
-<p class=note id=copyright>
-<p>
- <a href="hglegal.htm">
- <img SRC="ngibmcpy.gif"
- ALT="Copyright (c) 2003 IBM Corporation and others. All Rights Reserved."
- BORDER=0 height=14 width=324></a>
- </p>
-<p></p>
-
-</p>
-</BODY>
-</HTML>
diff --git a/org.eclipse.debug.core/hglegal2003.htm b/org.eclipse.debug.core/hglegal2003.htm
deleted file mode 100644
index 47c8540c8..000000000
--- a/org.eclipse.debug.core/hglegal2003.htm
+++ /dev/null
@@ -1,14 +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">
- <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
- <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/org.eclipse.debug.core/ngibmcpy2003.gif b/org.eclipse.debug.core/ngibmcpy2003.gif
deleted file mode 100644
index c786e43e1..000000000
--- a/org.eclipse.debug.core/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.debug.core/plugin.properties b/org.eclipse.debug.core/plugin.properties
deleted file mode 100644
index 7df1b1c6c..000000000
--- a/org.eclipse.debug.core/plugin.properties
+++ /dev/null
@@ -1,52 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Debug Core
-providerName=Eclipse.org
-launcherExtensionPointName=Launcher
-breakpointExtensionPointName=Breakpoint
-launchConfigurationTypeNameExtensionPointName=Launch Configuration Type
-launchConfigurationComparatorsExtensionPointName=Launch Configuration Comparators
-statusHandlerExtensionPointName=Status Handler
-sourceLocatorsExtensionPointName=Source Locator
-launchModesExtensionPointName=Launch Modes
-launchDelegatesExtensionPointName=Launch Delegates
-valueVariablesExtensionPointName=String Substitution Value Variables
-dynamicVariablesExtensionPointName=String Substitution Dynamic Variables
-refreshLaunchVariablesName=Refresh Launch Variables
-watchExpressionDelegatesName= Watch Expression Delegates
-processFactoriesExtensionPointName=Process Factories
-logicalStructureTypesExtensionPointName=Logical Structure Types
-logicalStructureProvidersExtensionPointName=Logical Structure Providers
-sourceContainerTypesName = Source Container Types
-sourcePathComputersName = Source Path Computers
-
-run=&Run
-debug=&Debug
-profile=&Profile
-
-env_var.description=Returns the value of an environment variable. An environment variable name must be specified as an argument.
-system_var.description=Returns the value of an Eclipse system variable. A variable name must be specified as an argument - one of ARCH, ECLIPSE_HOME, NL, OS, or WS.
-
-containerName.archive = Archive
-containerDescription.archive = A jar or zip in the workspace containing source files
-containerName.externalArchive = External Archive
-containerDescription.externalArchive = A jar or zip in the local file system containing source files
-containerName.project = Project
-containerDescription.project = A project in the workspace
-containerName.folder = Folder
-containerDescription.folder = A folder in the workspace
-containerName.directory = Directory
-containerDescription.directory = A directory in the local file system
-containerName.workspace = Workspace
-containerDescription.workspace = All projects in the workspace
-containerName.default = Default
-containerDescription.default = Default source lookup path \ No newline at end of file
diff --git a/org.eclipse.debug.core/plugin.xml b/org.eclipse.debug.core/plugin.xml
deleted file mode 100644
index bdff8fbf8..000000000
--- a/org.eclipse.debug.core/plugin.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.debug.core"
- name="%pluginName"
- version="3.1.0"
- provider-name="%providerName"
- class="org.eclipse.debug.core.DebugPlugin">
-
- <runtime>
- <library name="dtcore.jar">
- <export name="*"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.core.variables"/>
- <import plugin="org.eclipse.core.runtime"/>
- </requires>
-
-
-<!-- Extension points -->
- <extension-point id="breakpoints" name="%breakpointExtensionPointName" schema="schema/breakpoints.exsd"/>
- <extension-point id="launchConfigurationComparators" name="%launchConfigurationComparatorsExtensionPointName" schema="schema/launchConfigurationComparators.exsd"/>
- <extension-point id="launchConfigurationTypes" name="%launchConfigurationTypeNameExtensionPointName" schema="schema/launchConfigurationTypes.exsd"/>
- <extension-point id="launchModes" name="%launchModesExtensionPointName" schema="schema/launchModes.exsd"/>
- <extension-point id="launchDelegates" name="%launchDelegatesExtensionPointName" schema="schema/launchDelegates.exsd"/>
- <extension-point id="launchers" name="%launcherExtensionPointName" schema="schema/launchers.exsd"/>
- <extension-point id="sourceLocators" name="%sourceLocatorsExtensionPointName" schema="schema/sourceLocators.exsd"/>
- <extension-point id="statusHandlers" name="%statusHandlerExtensionPointName" schema="schema/statusHandlers.exsd"/>
- <extension-point id="watchExpressionDelegates" name="%watchExpressionDelegatesName" schema="schema/watchExpressionDelegates.exsd"/>
- <extension-point id="processFactories" name="%processFactoriesExtensionPointName" schema="schema/processFactories.exsd"/>
- <extension-point id="logicalStructureTypes" name="%logicalStructureTypesExtensionPointName" schema="schema/logicalStructureTypes.exsd"/>
- <extension-point id="sourceContainerTypes" name="%sourceContainerTypesName" schema="schema/sourceContainerTypes.exsd"/>
- <extension-point id="sourcePathComputers" name="%sourcePathComputersName" schema="schema/sourcePathComputers.exsd"/>
- <extension-point id="logicalStructureProviders" name="%logicalStructureProvidersExtensionPointName" schema="schema/logicalStructureProviders.exsd"/>
-
-<!-- Extensions -->
- <extension
- id="breakpointMarker"
- point="org.eclipse.core.resources.markers">
- <super
- type="org.eclipse.core.resources.marker">
- </super>
- <persistent
- value="true">
- </persistent>
- <attribute
- name="org.eclipse.debug.core.modelIdentifier">
- </attribute>
- <attribute
- name="org.eclipse.debug.core.enabled">
- </attribute>
- <attribute
- name="org.eclipse.debug.core.registered">
- </attribute>
- <attribute
- name="org.eclipse.debug.core.persisted">
- </attribute>
- </extension>
- <extension
- id="lineBreakpointMarker"
- point="org.eclipse.core.resources.markers">
- <super
- type="org.eclipse.debug.core.breakpointMarker">
- </super>
- <super
- type="org.eclipse.core.resources.textmarker">
- </super>
- <persistent
- value="true">
- </persistent>
- </extension>
- <extension
- point="org.eclipse.team.core.fileTypes">
- <fileTypes
- type="text"
- extension="launch">
- </fileTypes>
- </extension>
- <extension
- point="org.eclipse.debug.core.launchModes">
- <launchMode
- label="%run"
- mode="run">
- </launchMode>
- <launchMode
- label="%debug"
- mode="debug">
- </launchMode>
- <launchMode
- label="%profile"
- mode="profile">
- </launchMode>
- </extension>
-<!-- Dynamic (String Substitution) Variables -->
- <extension
- point="org.eclipse.core.variables.dynamicVariables">
- <variable
- name="env_var"
- resolver="org.eclipse.debug.internal.core.EnvironmentVariableResolver"
- description="%env_var.description">
- </variable>
- <variable
- name="system"
- resolver="org.eclipse.debug.internal.core.SystemVariableResolver"
- description="%system_var.description">
- </variable>
- </extension>
-
-<!-- ====================== -->
-<!-- source containers -->
-<!-- ====================== -->
- <extension
- point="org.eclipse.debug.core.sourceContainerTypes">
- <sourceContainerType
- name="%containerName.project"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType"
- id="org.eclipse.debug.core.containerType.project"
- description="%containerDescription.project">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.folder"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.FolderSourceContainerType"
- id="org.eclipse.debug.core.containerType.folder"
- description="%containerDescription.folder">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.directory"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.DirectorySourceContainerType"
- id="org.eclipse.debug.core.containerType.directory"
- description="%containerDescription.directory">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.workspace"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.WorkspaceSourceContainerType"
- id="org.eclipse.debug.core.containerType.workspace"
- description="%containerDescription.workspace">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.default"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.DefaultSourceContainerType"
- id="org.eclipse.debug.core.containerType.default"
- description="%containerDescription.default">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.archive"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.ArchiveSourceContainerType"
- id="org.eclipse.debug.core.containerType.archive"
- description="%containerDescription.archive">
- </sourceContainerType>
- <sourceContainerType
- name="%containerName.externalArchive"
- class="org.eclipse.debug.internal.core.sourcelookup.containers.ExternalArchiveSourceContainerType"
- id="org.eclipse.debug.core.containerType.externalArchive"
- description="%containerDescription.externalArchive">
- </sourceContainerType>
- </extension>
-
-<!-- ===================================== -->
-<!-- launch configuration comparators -->
-<!-- ===================================== -->
- <extension
- point="org.eclipse.debug.core.launchConfigurationComparators">
- <launchConfigurationComparator
- attribute="org.eclipse.debug.core.source_locator_memento"
- class="org.eclipse.debug.internal.core.sourcelookup.SourceLocatorMementoComparator"
- id="org.eclipse.debug.core.sourceLocatorMementoComparator">
- </launchConfigurationComparator>
- </extension>
-
-</plugin>
diff --git a/org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html b/org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html
deleted file mode 100644
index 90f26fd52..000000000
--- a/org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html
+++ /dev/null
@@ -1,1102 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="IBM">
- <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
- <title>Platform Debug Release Notes for the 2.0 release</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 20, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20365">20365</a>: Bidi - NPE when closing Eclipse<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 19, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20492">20492</a>: Extra separator in run/debug history menus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19878">19878</a>: Collapse/expand symbol (+/-) dissappears in inspect window<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19998">19998</a>: NullPointerException when launching rsource that has no extension<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20066">20066</a>: TVT2: Hardcoded "None" in debug preferences<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20594">20594</a>: Preference listeners should use equals, not ==<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 12, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19928">19928</a>: Run/Debug menu ordering<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 11, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17462">17462</a>: IllegalArgumentException when printing long stack to console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19375">19375</a>: Duplicate launch config naming problem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19170">19170</a>: LaunchConfigurationDialog etc leakage when last launched is Runtime<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19740">19740</a>: Content assist is now retargetable<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 10, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19613">19613</a>: LaunchConfig marked PRIVATE shows in Console View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19338">19338</a>: Missing copyrights<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 7, 2002
-<h3>
-What's new in this drop</h3>
-<li>API change - a spelling mistake was fixed in the name of a method in IPersistableSourceLocator</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18789">18789</a>: Source editor not given focus on suspend<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19170">19170</a>: LaunchConfigurationDialog etc leakage when last launched is<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18772">18772</a>: Launch Configurations: Table is cut off on motif<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19379">19379</a>: Debug remembers selected state of toolbar entry even if it is no longer enabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19443">19443</a>: IPersistableSourceLocator has misspelled method<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19489">19489</a>: References to IDebugViewAdapter (DOC)<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 1, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18209">18209</a>: Unable to run a program on first attempt<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 31, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15671">15671</a>: Strange behavior of the console view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17017">17017</a>: Not always prompted to find source location<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18334">18334</a>: Launch view holding onto Objects longer than necessary<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18153">18153</a>: launch last and run/debug buttons<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18385">18385</a>: NPE during launching after removing the launch info<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16946">16946</a>: several Eclipse buttons are too short<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18474">18474</a>: Empty group in history menus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16764">16764</a>: Debug Perspective leaks actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10383">10383</a>: Help pass for 2.0<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16152">16152</a>: NLS pass<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16379">16379</a>: Launch configs tree is missing label and is not wide enough<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 30, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17087">17087</a>: Launch view, source lookup and closed projects<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17029">17029</a>: DCR: Please let me specify a launch history size of 20<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16378">16378</a>: Missing icons in launch config creation tabs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18156">18156</a>: Debug/Run As cascade menu should be sorted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16462">16462</a>: Not all tabs visible in Run-time Workbench config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18154">18154</a>: Launch shortcuts menu labels<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16685">16685</a>: Internal error changing launch history preference<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16963">16963</a>: Mneumonic missing on table label for Select Launch Configuration<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16975">16975</a>: Up/down button on launch history page not working correctly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17512">17512</a>: Missing mneumonics in Console Preference page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18222">18222</a>: All XML written using platform line delimiters/UTF8<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16955">16955</a>: NPE opening java perspective.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17633">17633</a>: ActionDelegateHelper should nullify fTextEditor when it does not need it<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17380">17380</a>: Launch history maintains duplicate entries<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14406">14406</a>: Debug menu items becoming disabled inappropriately<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17794">17794</a>: Disabled actions in the context menu of the Launch config dialog viewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17358">17358</a>: Revert button not enabled after changes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17116">17116</a>: Launch related walkbacks in .log<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 29, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18099">18099</a>: Change provider name<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17490">17490</a>: F1 help for launch config tabs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18121">18121</a>: Static menus items should be at the top<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17649">17649</a>: ObjectCollectedException written to console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16838">16838</a>: Over zealous error logging when config has been deleted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17105">17105</a>: Attempt to save shared launch configs in closed projects<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18122">18122</a>: Scrapbook configs show up in list for Launch history pref page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16970">16970</a>: ClassCastException out of Launch history preference page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16492">16492</a>: CommonTab Switch to String<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16956">16956</a>: NPE opening java perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17100">17100</a>: Launch Config name with underscore is truncated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16638">16638</a>: Missing menmonic on Debug Action Groups page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17072">17072</a>: "Show Supported Breakpoints" has just one calorie, not meaningful enough<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17946">17946</a>: Generalize launch shortcuts/convenience actions<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 28, 2002
-<h3>
-What's new in this drop</h3>
-<li>New/replaced extension point. The extension point "org.eclipse.debug.ui.launchConfigurationShortcuts" has
- been replaced with "org.eclipse.debug.ui.launchShortcuts". Please see extension point documentation
- for details.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 27, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16757">16757</a>: Launch.removeDebugTarget does not work<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17534">17534</a>: Two huge bugs in Launch class<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17676">17676</a>: Run menu history menus not updated after organize favorites<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=17069">17069</a>: NPE deleting project with shared config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16655">16655</a>: Streams are not closed when a java program is finished<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 21, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16185">16185</a>: Show/hide package names button in doesn't work in debug view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15964">15964</a>: Updates to preference pages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16476">16476</a>: TextViewerGotoLineAction$NumberValidator<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 19, 2002
-<h3>
-What's new in this drop</h3>
-<li>API change - deprecated method was removed - ILaunchConfigurationTab.isValid()</li>
-<li>New extension point - org.eclipse.debug.core.launchConfigurationComparator. This
- extension point is for launch configuration attributes that require a custom
- equality implementation. See documentation for extension point.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15704">15704</a>: Default "Maximum launch history size" should be at least 10<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15560">15560</a>: Cancel button on edit Configurations is much smaller than others<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15952">15952</a>: Remove deprecated method<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15953">15953</a>: No longer expanding debug target to show threads<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15988">15988</a>: ArrayIndexOutOfBoundsException in config reselection<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16107">16107</a>: NPE opening editor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16063">16063</a>: Preference pages now re-size<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16060">16060</a>: Re-sizable launch config dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15850">15850</a>: LaunchView changes required from platform ui changes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16143">16143</a>: Multiple *.launch filters<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12032">12032</a>: Debug Constants should include value in javadoc<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6485">6485</a>: Extension & Package documentation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16217">16217</a>: launch config "revert" causes flicker<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16325">16325</a>: Content assist action icon<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16356">16356</a>: NPE out of ConsoleDocumentManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16148">16148</a>: IProcess should support an exit value<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14927">14927</a>: Cancel button in progress monitor of launch configuration dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15775">15775</a>: Deleting launch config should select the next config<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16113">16113</a>: Execution arguments gets lost if starting a class file of a jar library<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 14, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13766">13766</a>: Error recovery on failed launch - need to bring up dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11540">11540</a>: Misc Debugger source lookup dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15506">15506</a>: Switching launch configs should show busy cursor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15618">15618</a>: DebugDropDownAction missing resource string<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15375">15375</a>: ClassCastException trying to resume<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15720">15720</a>: Debug perspective should define place holders for standard views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12316">12316</a>: Message (stack trace) silently written to console when trying to run small java example<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=4130">4130</a>: Eclipse Debugger: Setting Breakpoints via keyboard not possilbe (1GITILH)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15449">15449</a>: 'show detail pane' toolbar button behaves differently than other buttons<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12904">12904</a>: Creating shard Launch Configuration fails<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15748">15748</a>: Duplicate action in launch config dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16848">15848</a>: Change Debug Menu id<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15533">15533</a>: DebugAction contains redundant cascade menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14922">14922</a>: Config created by double clicking on launch type; delete not enabled<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 08, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9034">9034</a>: Variables view should scroll to display new variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12001">12001</a>: Plug-in startup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14412">14412</a>: Launch configuration XML should be written to file immediately<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15246">15246</a>: Allow private launch configs to perspective switch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15325">15325</a>: Remove 'Configuration' from debug action labels<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1636">1636</a>: Copy/paste across console docs (1GF61GB)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13457">13457</a>: Should expose launch history length as user preference<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15024">15024</a>: Launch configuration dialog doesn't display "favorite" option<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15180">15180</a>: DND.ERROR_CANNOT_SET_CLIPBOARD must be handled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14657">14657</a>: LaunchDropDownAction and coolbar support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14897">14897</a>: many missing '...' on buttons in launch configs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15362">15362</a>: Standard out not always hooked to console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15446">15446</a>: first click in the debug/launch history preference page results in exception<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11894">11894</a>: Mneumonic collision in the debug menu<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 30, 2002
-<h3>
-What's new in this drop</h3>
-<li>Changes in the launch configuration dialog:
- <ul>
- <li>To free up screen real estate for editing launch configurations, the tree of launch
- configurations has been made more narrow by removing the "copy" button from the
- dialog. The "new" button copies a configuration when a configuration is selected, and
- creates a new configuration (based on the workbench selection) when a configuration
- type is selected.</li>
- <li>The "Cancel" button has been replaced with a "Close" button (closing the dialog
- does not cancel changes). You will be prompted to save unsaved changes.</li>
- <li>A "Revert" button has been added to the edit area to revert changes on the
- currently selected launch configuration (under edit).</li>
- </ul>
-</li>
-<li>Changes to launch behavior
- <ul>
- <li>Pressing the run or debug toolbar buttons launches the configuration that was last launched
- (in the workspace), in the appropriate mode (run or debug).</li>
- <li>To create a new launch configuration, use the cascading menu items on the run or debug
- menu. For example "New Configuration -> Local Java Application" - this will create a new
- configuration based on the selection in the workbench (or active editor).</li>
- <li>"Single-click launching" preference has been removed. It was determined that a preference
- which changes the behavior of a toolbar button is disorienting to the user.</li>
- </ul>
-</li>
-<li>Changes to ILaunchManager
- <ul>
- <li>API for setting default launch configuration types has been removed.</li>
- </ul>
-</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13537">13537</a>: DebugActionGroups: Clearer wording in preference page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13909">13909</a>: Inconsistent margins on preference pages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11889">11889</a>: Buttons too small in the Console and Launch Configuration Preference pages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13513">13513</a>: Running a debug view in a Java perspective has several problems<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13536">13536</a>: DebugActionGroups: Collision on ID wipes out both action groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13317">13317</a>: New Configuration menu empty<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14560">14560</a>: Deleting breakpoint selects another breakpoint in the wrong direction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14143">14143</a>: Breakpoints View appears with "Go to file" button enabled regardless of breakpoints<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9834">9834</a>: Views do not remember package visibility filter settings<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11904">11904</a>: Debug menu mneumonics<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14797">14797</a>: NumberFormatException if cancel Go to line in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13440">13440</a>: menu reorganization<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14550">14550</a>: Need to be able to make launch configuration type invisible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6388">6388</a>: Variables view's static and field buttons are backwards<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14495">14495</a>: clipboards must be disposed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13665">13665</a>: Debug preference page looks cluttered<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14485">14485</a>: Cannot delete a launch config using the Delete key<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14486">14486</a>: Default perspective for Run should not be Debug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11697">11697</a>: Debug Preference Page needs group box<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14540">14540</a>: Relaunch action not enabled correctly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14556">14556</a>: Enable breakpoint action using old selection<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14520">14520</a>: Debug plugins should provide consistent unique identifier access<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12577">12577</a>: Launch configurations wizard - usability<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13555">13555</a>: Edit configuration dialog UI confusing<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12292">12292</a>: Unable to suspend a running thread to see stack frames<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 23, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13836">13836</a>: Missing and duplicated extensions in debug plugin.xml<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12125">12125</a>: NLS debug projects<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14111">14111</a>: Console terminate button not enabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13041">13041</a>: Remove all terminated action incorrectly enabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13372">13372</a>: Strange UI feedback when breakpoint hit during evaluation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13430">13430</a>: Open on Type in console can work better; less beep<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12184">12184</a>: IncompatibleThreadStateException on launchAdded<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14190">14190</a>: Stack dumps noticed in log<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14125">14125</a>: Debug view "Resume" always jumps to source - menu item does not<br>
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12132">12132</a>: Can't launch debugger if proxy set.<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 18, 2002
-<h3>
-What's new in this drop</h3>
-<ul>
-<li>Support for old launchers has been removed (ILauncher, ILauncherDelegate, ILaunchWizard).
- Launch configruations now rule the launching world.</li>
-<li>The extension point "org.eclipse.debug.ui.launchTabs" has been removed and replaced with
- a new extension point "org.eclipse.debug.ui.launchTabGroups".</li>
-<li>The constants IDebugUIConstants.PREF_AUTO_SHOW_DEBUG_VIEW & IDebugUIConstants.PREF_AUTO_SHOW_PROCESS_VIEW
- have been removed. Users can now set a default perspective for each of Run & Debug which may be
- overridden in a launch configuration.</li>
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13385">13385</a>: Showing detail should be disabled when multi-select in var view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12788">12788</a>: Cut, copy, paste actions don't work in details pane<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8590">8590</a>: Allow position of "step debug" in step tools<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12982">12982</a>: Need ability to set initial state of debug view based on AbstractDebugView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13554">13554</a>: Incorrect dependencies: result is NPE in DebugActionGroupsManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13714">13714</a>: Pressing Apply makes tabs disappear<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13307">13307</a>: NPE in launch configs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12382">12382</a>: Action set part association for the launch view?<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13285">13285</a>: Debug/Run With use old launchers when in config mode<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13425">13425</a>: Double click to expand/contract tree in variable and expression views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13864">13864</a>: npe on lanuning (latest after 0412)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12281">12281</a>: Launch configuration tab widgets are private<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13501">13501</a>: hostname cut off when show qualified names is off<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12257">12257</a>: remove single event handling support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12722">12722</a>: Actions for configuration dialogs should appear on Debug menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13324">13324</a>: Change of selection lost in Launch configuration dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11942">11942</a>: Single click launching preference text<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13088">13088</a>: NPE in the log after exiting workspace<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13565">13565</a>: Properties page for process should not contain defaults/apply buttons<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13853">13853</a>: native code error<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13613">13613</a>: Delegating presentation and #setAttribute()...<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12962">12962</a>: Same target shows up twice in drop-downs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13375">13375</a>: Show Detail Pane in popup menu missing mneumonic<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12785">12785</a>: Select all in the details pane selects all variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13383">13383</a>: Copy variables action not enabled correctly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13993">13993</a>: Debug and Run buttons have been accidentally swapped<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12953">12953</a>: Action "type" constants should be moved from AbstractDebugView to IDebugView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14124">14124</a>: Launch configuration classes not in launch configuration package<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 11, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12677">12677</a>: Single click launching and F11, Ctrl-F11<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13214">13214</a>: ArrayOutOfBoundException in launch history pref page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13480">13480</a>: NPE creating Java Project when running Runtime Workbench<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13345">13345</a>: exception in log - after opening/closing projects<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13085">13085</a>: DebugActionGroups cannot handle two actions with same ID in views<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 09, 2002
-<h3>
-What's new in this drop</h3>
-<li>A new extension point exists in the debug ui to control the types of launch configurations that can
- be created from the cascading "New run/debug configuration" menu (off the run/debug dropdown menus).
- A type of configuration can be contributed to mulitple perspectives.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1696">1696</a>: DCR: Perspective specific launcher filtering (1GIYJXH)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11733">11733</a>: duplicate shared config after close & restart<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11899">11899</a>: Launch config name collission<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12658">12658</a>: Single click launching doesn't work if the active editor isn't selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12488">12488</a>: Launch config dialog should allow double-click on config type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11710">11710</a>: Deleting a launch configuration leaves no selection<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12598">12598</a>: Launch config - tab group API inconvenience<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11190">11190</a>: cannot set working directory if it includes a japanese character<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12160">12160</a>: Launch creation/lifecycle<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8772">8772</a>: Infinitely looping stack trace in target pgm locks UI<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12619">12619</a>: Exception during startup.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10282">10282</a>: Rendering of changed variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12310">12310</a>: Need ability to determine if a breakpoint applies to a target<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12981">12981</a>: Launcher - listed name does not match given name<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9825">9825</a>: Action icon inconsistencies<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12891">12891</a>: Several IOExceptions from .log in StreamsProxy.write(StreamsProxy.java:92)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11906">11906</a>: Useless single click launch for classes with no main<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12276">12276</a>: Index out of bounds exception from launch configuration dialog<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 2, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12289">12289</a>: Breakpoint should extend platform object<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12548">12548</a>: Debug event filters should use event sets<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12613">12613</a>: Exception when on target workspace when starting eclipse<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 28, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11756">11756</a>: Launch config dialog: button sizes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11923">11923</a>: Console preference page needs reworking<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11880">11880</a>: Launch ConfigurationType property page missing accelerator<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11925">11925</a>: Up/down buttons for launch history restricted to single select<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11457">11457</a>: Launch Configuration Dialog issues<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11702">11702</a>: Launch configuration defaults are set after widgets are initialized<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11330">11330</a>: JavaEnvironmentTab depends on JavaMainTab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11053">11053</a>: Launch view too optimistic on source lookup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11982">11982</a>: Logging exceptions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12339">12339</a>: NPE when i switch to debug perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7609">7609</a>: Attempting to go to a marker that no longer exists<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11326">11326</a>: Restore instead of rebuild launch config index<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11720">11720</a>: Need replacement for #hasChildren<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 26, 2002
-<h3>
-What's new in this drop</h3>
-<li>Breaking API change: IDebugViewAdapter had been renamed to IDebugView</li>
-<li>Launch configurations are the default launch mechanism.</li>
-<li>Debug events are reported in sets. @see IDebugEventSetListener and IDebugEventListener</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11610">11610</a>: Doc: identifier for launch extension points are incorrect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11401">11401</a>: API on ILaunch.getDebugTarget() <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11303">11303</a>: Deadlock on startup processing breakpoints<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11919">11919</a>: 2 NPEs using Preferences->Debug->Launch Configuration Types<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6212">6212</a>: Debug view toolbar/menu pollution<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11849">11849</a>: Duplicate history items showing up<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10448">10448</a>: IExpressionManager#hasExpression, IBreakpointManager#hasBreakpoints,etc.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10817">10817</a>: configs in java packages get copied to output folder<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11207">11207</a>: IDebugViewAdapter should be named IDebugView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11612">11612</a>: Agressive clearing of instruction pointer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12025">12025</a>: Invalid thread access out of Launch configurations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12229">12229</a>: Set default launching style to configuration based<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9650">9650</a>: Variable change notification bug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12157">12157</a>: Debug event sets<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 18, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11197">11197</a>: Feature request: Delete in breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11212">11212</a>: Debug UI plugin.xml references jdt<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11308">11308</a>: Launch configurations make workspace non-transportable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11346">11346</a>: Registering a launch multiple times is not handled well<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10586">10586</a>: Use new workbench selection service<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11425">11425</a>: ILaunchConfiguration JavaDoc is incorrect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11189">11189</a>: Flicker in the Launch Configurations dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11253">11253</a>: Launch config tab flicker<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11370">11370</a>: Launch view update bug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11462">11462</a>: Launch config metadata change generates parse exception<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10637">10637</a>: "currently active project" should be the "current working directory"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10162">10162</a>: Console View to front on error output only<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8937">8937</a>: Feature Request: Select all in the breakpoints view<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 12, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10775">10775</a>: New, delete copy of Launch configurations remain disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10780">10780</a>: Delete and Copy enabled for Launch configuration type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10778">10778</a>: Launch configuration names should be trimmed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6376">6376</a>: Should be possible to remove entries from the "Run list"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10855">10855</a>: Use new workbench API for show perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10610">10610</a>: Null exception when lauchviewer processing events on remove tree items<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8420">8420</a>: Cannot edit ExpressionView detail area until after inspect.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11076">11076</a>: Delete configs reamin in favorite list<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9922">9922</a>: Null pointer in launch configuration type property page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7605">7605</a>: Feature: Doubleclicking in launch config dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11072">11072</a>: History menu update<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8294">8294</a>: "Debug History" and "Run History" have empty submenus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11133">11133</a>: NPE in LaunchView.initializeSelection()<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11110">11110</a>: NPE in AbstractListenerActionDelegate.pageActivated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10847">10847</a>: API - AbstractLaunchConfiguration tab<br>
-<h3>
-
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 05, 2002
-<h3>
-What's new in this drop</h3>
-<li>Launch Configuration API has changed. The launch configuration tab lifecycle is now similar
- to that of preference and wizard pages.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9680">9680</a>: Launch config: pressing save returns to first tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9660">9660</a>: Launch Config Flicker<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10524">10524</a>: Provide default label provider API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10506">10506</a>: NPE in launch view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10582">10582</a>: SWT Exception closing a Debug Perspective in JUnit test<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7207">7207</a>: Launch configuration bugs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7430">7430</a>: Debug perspective not reused<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10652">10652</a>: Remove action enabled when nothing to be removed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7430">7430</a>: Debug perspective not reused<br>
-<h3>
-Problem Reports Closed</h3>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-February 28, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10243">10243</a>: ClassCastException when removing a breakpoint<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-February 26, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7767">7767</a>: Changing from "Debug View"<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-February 14, 2002
-<h3>
-What's new in this drop</h3>
-<li>As part of the transition to configuration-based launching, early adopters may
-continue to access the launch configuration dialog by Shift-clicking the run and debug
-buttons, but configuration-based launches will NOT appear in the history, and
-CANNOT be relaunched.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9166">9166</a>: NPE in preference page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9167">9167</a>: LaunchConfigurationLabelDecorator should not be on by default<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9483">9483</a>: NPE in LaunchConfigurationTypePropertyPage<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9652">9652</a>: IllegalArgumentException out of Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9704">9704</a>: NPE on shutdown in BreakpointsView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9167">9167</a>: LaunchConfigurationLabelDecorator should not be on by default<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-February 12, 2002
-<h3>
-What's new in this drop</h3>
-<li>Removed deprecated constant IDebugUIConstants.ID_PROCESS_VIEW</li>
-<li>Basic icons and their support has been removed</li>
-<li>Breakpoint property sheet has been replaced with breakpoint properties dialog.
- Choose "Properties..." from the pop-up menu in the breakpoints view.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8230">8230</a>: Console does not show process as <terminated>; better tracking of changes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9194">9194</a>: Attempting to modify locked resource tree in BreakpointManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9200">9200</a>: Editor not opening for suspended stack frame with modified prefs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9218">9218</a>: NPE in LaunchConfigurationLabelDecorator.isLaunchConfigFile<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9280">9280</a>: Debug event handlers performing runnables after dispose<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9057">9057</a>: API - CHANGE event should be better specified<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9111">9111</a>: Invalid thread access running test suite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6370">6370</a>: Breakpoint Properties Dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9327">9327</a>: JavaDebugOptionsManager startup loading breakpoints during resource changed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9200">9200</a>: Editor not opening for suspended stack frame with modified prefs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9178">9178</a>: Remove All Terminated always disabled?<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9065">9065</a>: WID opening editor for breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8296">8296</a>: Debug With menu items have interesting numbering<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9421">9421</a>: NPE out of the LaunchView on shutdown with running target<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7301">7301</a>: no way to switch to custom debug perspective on debug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5311">5311</a>: Missing debug information should be conveyed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1683">1683</a>: Extra Action delegates (1GIGUK0)<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9299">9299</a>: NPE in LaunchView.showMarkerForCurrentSelection<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-February 05, 2002
-<h3>
-What's new in this drop</h3>
-<li>Launch configuration infrastructure and UI is available for early adopters.
-Developers that have contributed launchers should migrate to launch configurations. To
-access launch configurations from the workbench, press the run/debug buttons while holding
-the SHIFT key down.</li>
-<li>The debugger indicates variables that have changed since the last suspend. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1533">1533</a>.</i>
-<li>The debug action set has been renamed from Debug/Run to Debug. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8729">8729</a>.</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8729">8729</a>: Rename Debug action set from "Debug/Run" to "Debug"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8945">8945</a>: Non-Persisted breakpoint can be incorrectly deleted at startup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7965">7965</a>: Debug view refresh flicker<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1533">1533</a>: Feature: notification of changing variables (1G5NRPC)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1721">1721</a>: Small Feature: separate disable/enable breakpoints (1GKKEI5)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8245">8245</a>: Launch preferences page problems<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1621">1621</a>: Debugger doesn't come to front when breakpoint is hit (1GEUZEX)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9102">9102</a>: Remove & Terminate walkback<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6807">6807</a>: launch configurations not crash proof<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-January 29, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7837">7837</a>: Launch configuration page verifier error<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8235">8235</a>: Ctrl-space does not work for code assist in details pane<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7763">7763</a>: (usability) selecting in variables view with details pane causes un-maximize<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7814">7814</a>: API for char range within a line<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8501">8501</a>: "Disable all" breakpoints action<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7864">7864</a>: Need API for selection changes in debug view<br>
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-January 24, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8059">8059</a>: NPE out of ControlActionDelegate<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8005">8005</a>: Terminate & Remove disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8063">8063</a>: NPE in BreakpointsView when closing workbench<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=8318">8318</a>: internal error occured, if open the menu "Debug -> Debug History"<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-January 22, 2002
-<h3>
-What's new in this drop</h3>
-<li>Breakpoint API has been updated to allow selective persistence of breakpoint
-of the same type</li>
-<li>Breakpoint API now allows for "hidden" breakpoints. @see IBreakpoint.isRegistered()</li>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7578">7578</a>: .metadata launch files not in correct location<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7626">7626</a>: Widget is disposed error relaunching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1710">1710</a>: DCR - Launcher should have control over perspective switching (1GJUT9J)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6480">6480</a>: Launch configurations - store with workspace<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7961">7961</a>: updating source twice per suspend event<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7507">7507</a>: debugger keyboard shortcuts do not work in 20020109<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=2990">2990</a>: Internal errors when fast clicking in debug stack (1GLDZVH)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7974">7974</a>: Stack overflow pression "remove all" from Expression View<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1563">1563</a>: Fully qualified rendering of launch element name (1GD7U0Z)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7418">7418</a>: Need the Process view back<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7627">7627</a>: Tooltips not working in debug views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7755">7755</a>: The Breakpoints pane should highlight the breakpoint where the debugger stops<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5141">5141</a>: Breakpoint manager can use new marker API<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-January 15, 2002
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6088">6088</a>: Move "qualified name" rendering to java debug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7420">7420</a>: "Debug UI.xml" references JDT<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7580">7580</a>: NPE out of AbstractDebugEventHandler on shutdown<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7513">7513</a>: Terminate and remove fails to remove when timeouts occur<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7316">7316</a>: Inconsistent casing for Show detail pane<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7370">7370</a>: TimeoutException occurs during stepping<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1714">1714</a>: Confusion of launches from different projects in history (1GJYNLK)<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-January 9, 2002
-<h3>
-What's new in this drop</h3>
-<li>The debugger now uses the workbench editor re-use policy.</li>
-<li>There is no longer a Process view. The Debug view shows all debug
-sessions and processes launched. When a workspace is re-started that
-had a Process view open, an error message will appear explaining that
-the Process view could not be created.</li>
-<li>The debug action set has been split into two groups - debug and launch.
-Existing debug and Java perspectives need to be closed and re-opened to obtain
-run and debug buttons in the toolbar. @see bug 1724.</li>
-<li>There is no longer an Inspector view - it has been replaced with an
-Expressions view. When a workspace is re-started that had an Inspector
-view open, an error message will appear explaining the Inspector view
-could not be created.</li>
-<li>A launch can be annotated with client specific data. @see bug 6481.</li>
-<li>A launch can now contain more than one debug target. API has changed
- in ILaunch, ILaunchListener, and ILaunchManager to suppport this.</li>
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7120">7120</a>: NPE during shutdown of DebugUIPlugin<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6954">6954</a>: Use new workbench API for openning perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6206">6206</a>: Make AbstractDebugView API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7151">7151</a>: Toggling ShowDetailPaneAction sets focus to the launch view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7164">7164</a>: NPE during shutdown to do with DebugSelectionManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1724">1724</a>: Feature: split debug action set in to debug & launch (1GKCQVZ)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7167">7167</a>: NPE shutting down in abstract debug view 'save state'<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6771">6771</a>: DebugEvent constructors changed to take IDebugElement<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1574">1574</a>: Settings in debug views not persisted (1GDTUNW)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6105">6105</a>: Step accelerators should not take focus from editor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1671">1671</a>: Option to autoclear terminated processes (1GHSO3L)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6357">6357</a>: Combine Process/Debug Views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6200">6200</a>: Extensible set of debug elements<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7204">7204</a>: Copy variables action needs icon<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7031">7031</a>: Inspector is missing a toString area<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6213">6213</a>: Breakpoints view improvements<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6213">6481</a>: Feature: Annotate launch with transaction id<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1617">1617</a>: type names not always shown in inspector (1GEULC4)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6484">6484</a>: Ability for "super adaptor"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6783">6783</a>: Console should not steal focus while writing output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7277">7277</a>: Step detail events for into/over/return<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6214">6214</a>: More that one debug target per lanuch<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6482">6482</a>: Ability to group debug targets in one launch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6215">6215</a>: Exception handling in variables view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1688">1688</a>: Object display options (1GIKMIG)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1606">1606</a>: Feature: Source Lookup (1GEPJEN)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1553">1553</a>: Handling of no source is confusing (1GC2TVU)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7166">7166</a>: Remove terminated launches preference does not applied correctly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7169">7169</a>: Debug "F" keys not enabled properly on new editor<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 18, 2001
-<h3>
-What's new in this drop</h3>
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5260">5260</a>: TVT: Properties view for debug process is missing substitution variable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6321">6321</a>: Console IOException<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7003">7003</a>: Debug With menu launches incorrect program (not finding selection)<br>
-
-<h3>
-Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1548">1548</a>: Extensible launch modes (1GBEQYO)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1592">1592</a>: DebugPlugin must allow for null elements in updateHistory() (1GEI3C1)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6886">6886</a>: Request: Keep perspective when running application<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1627">1627</a>: Previous editor's unsaved contents are still visible (1GEX5LS)<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 11, 2001
-<h3>
-What's new in this drop</h3>
- <ul>
- <li>The "relaunch last" action has been remapped to use F9 instead of F10.
- Please see "<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6387">6387</a>: Can't use F10" for details.
- </li></ul>
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6387">6387</a>: Can't use F10 <br>
-<h3>
-Problem Reports Closed</h3>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 6, 2001
-<h3>
-What's new in this drop</h3>
-<ul>
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6521">6521</a>: Variables view stays empty with stack frame selected (1GLE8PW) <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6577">6577</a>: NPE in DebugContentProvider<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6598">6598</a>: Problem using old workspace with new build <br>
-<h3>
-Problem Reports Closed</h3>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 4, 2001
-<h3>
-What's new in this drop</h3>
-<ul>
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6321">6321</a>: Console IOException <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6216">6216</a>: Help for debug views in 1.0 <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6521">6521</a>: Newly added resources cannot be checked out <br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1715">1715</a>: Consider removing state change actions from BreakpointsView (1GKKT90)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1559">1559</a>: Debugger doesn't pop to front when breakpoint hit (1GD7P7D) <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1564">1564</a>: README: printf's in native code only show up in console at the end of execution (1GD80QZ) <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1588">1588</a>: README: System.exit(0) from Scrapbook (1GE8JU3) <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5485">5485</a>: NPE if missing launcher when using launch history <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1770">1770</a>: Last launch not updated upon deletion (1GLEANH) <br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 27, 2001
-<h3>
-What's new in this drop</h3>
-<ul>
-<li>Procedural Debug API - new debug element interfaces have been defined to support the notion of registers,
-register groups, memory blocks, and memory block retrieval:
- <ul>
- <li>IRegister - a register in a register group</li>
- <li>IRegisterGroup - register groups are available from each stack frame (that supports registers)</li>
- <li>IMemoryBlock - a contiguos block of bytes from memory allocated by a running program</li>
- <li>IMemoryBlockRetrieval - support to retrieve arbitrary blocks of memory from a running program</li>
- </ul>
-</li>
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1720">1720</A>: Issue: breakpoint manager breaks lazy plug-in load rule (1GK<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6097">6097</A>: The inspector is not refresh<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 20, 2001
-<h3>
-What's new in this drop</h3>
-<ul>
-<li>API Change - method addition - @see ILaunch.getLaunchConfiguration(). This does
-not break any clients, as the only implementation of ILaunch is org.eclipse.debug.core.Launch,
-which has been updated.</li>
-<li>API Change - method return value - @see ILaunch.getLauncher(). A launch
-is now allowed to return null for #getLauncher() when it was created by a launch
-configuration rather than a launcher. This does not break any clients, as launch configurations
-are not in use yet. The main client that will have to be updated is the Debug UI.</li>
-<li>New debug preference - "Build (if required) before launch"</li>
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=4023">4023</A>: Prompt user for save and build before run (1GGCBO0)<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5818">5818</A>: Debugger Source Lookup page claims project is closed<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5895">5895</A>: NPE out of the Console view on shutdown<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5896">5896</A>: NPE out of LaunchManagerVisitor on shutdown<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1623">1623</A>: StackFrame selected but toolbar actions disable (1GEV0L7)<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5681">5681</A>: Show debug perspective doesn't reuse my perspective<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5909">5909</A>: Should have terminate on Debug menu<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5582">5582</A>: Keyboard shortcut for run/debug<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5789">5789</A>: Console Empty on Hello World Examples<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5951">5951</A>: Console buffer not flushed?<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5946">5946</A>: NPE in LaunchManagerVisitor<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5808">5808</A>: Console output being lost<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5925">5925</A>: DebugView does not survive platform crash<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 13, 2001
-<h3>
-What's new in this drop</h3>
-
-<h3>
-Problem Reports Fixed</h3>
-
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5360">5360</A>: ListenerList#removeAll<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5613">5613</A>: Debugger hangs when it hits breakpoints during self hosting<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=4269">4269</A>: Simplifying debugger perspective (1GKRAWI)<br>
-
-
-<h3>
-Problem Reports Closed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5588">5588</A>: General Protection Fault double clicking on breakpoint in th<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5795">5795</A>: Reached Breakpoint, but no stacktrace<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 12, 2001
-<h3>
-What's new in this drop</h3>
-<ul>
-<li>Draft definition and infrastructure for launch configurations.</li>
-<li>API Change: Presentation of variable value details allows for long running
-computation. @see IDebugModelPresentation.computeDetail(IValue, IValueDetailListener). @see IValueDetailListener.
-</ul>
-
-<h3>
-Problem Reports Fixed</h3>
-
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5686">5686</A>: Launch/Run actions should be available on menubar<br>
-<A HREF="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5579">5579</A>: Would like option to switch to Debug perspective on breakpoi<br>
-
-<h3>
-Problem Reports Closed</h3>
-
-
-</body>
-</html>
diff --git a/org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html b/org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html
deleted file mode 100644
index 3e0da8ca6..000000000
--- a/org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html
+++ /dev/null
@@ -1,410 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="IBM">
- <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
- <title>Platform Debug Release Notes</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 25, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35459">35459</a>: "Run As ..." menu disabled<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 24, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35410">35410</a>: VariableView#fExpandedVariables is not always cleaned<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-March 17, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32335">32335</a>: Eclipse M5, launcher, arguments tab truncated<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-March 13, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34901">34901</a>: Typos(?)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34899">34899</a>: Typos<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34554">34554</a>: console: locking during 6 second clear request on big contents<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-March 6, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33767">33767</a>: Step with filters label<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32335">32335</a>: Eclipse M5, launcher, arguments tab truncated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33993">33993</a>: NPE in launch config getMemento<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33996">33996</a>: Making a shared favorite config does not appear in fav's<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-March 4, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32631">32631</a>: Problem with text input from console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32668">32668</a>: Invalid thread access disposing process drop down menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32706">32706</a>: Can re-enable LCD when disabled for run in foreground<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32621">32621</a>: Console Pref page: punctuation and capitalization<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33289">33289</a>: Console: ShowProcess tooltip should use book capitilization<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29752">29752</a>: Removal of the "launchers" extension point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31519">31519</a>: action set part associations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33579">33579</a>: NPE in launch view event handler on shutdown<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33613">33613</a>: NPE in console line notifier<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32722">32722</a>: Attempting two background builds at same time: lose console document<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33620">33620</a>: NPE attempting to launch from a LCD with no selection area (Run Ant...)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33153">33153</a>: Debug As and Run As actions are ignored if there is no selection<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33185">33185</a>: Activate workbench when breakpoint hit should be on by default<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32775">32775</a>: BadLocationException on file hyperlink from ant build<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Feb 20, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18665">18665</a>: Launch progress message bar is too short<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32191">32191</a>: LaunchManager added too late as resource changed listener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31431">31431</a>: Show In...from the Console to the Debug View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32247">32247</a>: Missing hashCode in org.eclipse.debug.internal.core.LaunchConfigurationInfo<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32176">32176</a>: Hyperlink on wrapped line draws line badly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32275">32275</a>: Debug console selection shows the wrong information<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30513">30513</a>: Step actions should be disabled when debug view closed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31161">31161</a>: Dialogs don't use standard platform spacing for buttons<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31216">31216</a>: Offer Show In...<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31734">31734</a>: Console line trackers not notified of last line<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=11991">11991</a>: Renamed config not updated in history<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31745">31745</a>: No feedback for navigating links in console using keyboard<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30586">30586</a>: NPE opening editor in LaunchView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=32433">32433</a>: ShowProcessAction reference to its process keeps hyperlinks in memory<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Feb 18, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31565">31565</a>: Selecting part of stack trace in console loses focus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29326">29326</a>: Launch configuration with errors can be launched<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29045">29045</a>: StringIndexOutOfBoundsException from Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31394">31394</a>: New console UI does not provide a "Clear History" option<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31898">31898</a>: Error in the status bar without any text selected in the console<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Feb 13, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30901">30901</a>: Dialog flicker when launching a program<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31500">31500</a>: Double click for create a new launch configuration<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Feb 11, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31321">31321</a>: disable/enable breakpoints does not scale<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31502">31502</a>: Refactor LaunchHistoryPreferenceTab<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Feb 5, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30411">30411</a>: Exceptions deleting Launch Configurations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28148">28148</a>: Debug and Run toolbar actions missing mneumonics<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30493">30493</a>: No need for the verify key listener in the VariablesView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22815">22815</a>: Support delete key in viewers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30125">30125</a>: Provide inforpops for launch configuration types<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30332">30332</a>: Not enough IDisconnect support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28827">28827</a>: Run Screen Sizing<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30167">30167</a>: Would like a way to navigate back from debugger to corresponding launch config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30333">30333</a>: Problem when multiple debug events occur at the same time<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30831">30831</a>: Console View: Terminate and Clear are too close<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29503">29503</a>: Debug preference page error messaging<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Jan 28, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29877">29877</a>: Chkpii errors in debug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28295">28295</a>: ConcurrentModificationException during "Run Ant..." build<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18306">18306</a>: Use safe runnables for listeners and "untrusted" code<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30037">30037</a>: Use platform support for breakpoint persistence<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29843">29843</a>: tooltip of the debug and run buttons displays "Debu&g" and "Ru&n"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30307">30307</a>: Apparent mispelled catalog reference in Expressions pane<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30222">30222</a>: External tool builder build command path is fully qualified<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30324">30324</a>: NPE restoring shared launch config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29112">29112</a>: Add key binding to "open link" action in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30180">30180</a>: Stale launch if runtime-workbench launch is canceled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29028">29028</a>: Stack trace hyperlink does not work after clear<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Jan 21, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24154">24154</a>: Add interfaces to debug core for enhanced debug function...<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27782">27782</a>: Improve Debug UI plug-in startup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29660">29660</a>: Only top stack frame icon correct after long step<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29676">29676</a>: Better error reporting when a launch config goes missing<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29720">29720</a>: launch dialog for edit/run of a single config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26157">26157</a>: launch config working sets applied globally<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27989">27989</a>: Provide 'final verification' launch configuration API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29450">29450</a>: LaunchManager.searchForFiles optimization<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24821">24821</a>: [Key Bindings] Provide debug action definitions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29153">29153</a>: Migrate extension point schema ownership<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Java Debug</h1>
-Jan 14, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28969">28969</a>: convenience action to open LCD<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27342">27342</a>: No busy cursor when creating new config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25569">25569</a>: Checkbox in launch config doesn't keep its value<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27164">27164</a>: shared launch configs and "validate edit"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29064">29064</a>: Attached source not recognized<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27830">27830</a>: Use IActionDelegate2<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28033">28033</a>: external tools dialog title shows as "&External Tools"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27403">27403</a>: Should consider using the new font propogation support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27444">27444</a>: [Dialogs] Dialog font should be used by debug components<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22927">22927</a>: Add word-wrap option to Variables display area<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28127">28127</a>: NPE if AbstractDebugView handling exception early<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22230">22230</a>: #setButtonLayoutData addition<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24754">24754</a>: Preferences - should offer font choice for variable details pane<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 07, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28386">28386</a>: Source selection disappears<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28571">28571</a>: Text selection updates on evaluation end<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10016">10016</a>: Flicker of System.err output in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28060">28060</a>: Launch#canTerminate<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24884">24884</a>: Launching progress monitor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28562">28562</a>: details area does not update when BP hit while stepping<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7715">7715</a>: Console does not show output of selected process<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28867">28867</a>: [Console] Navigation between output of hosted/debugged apps<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27172">27172</a>: Hang copying variables with cycle<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29052">29052</a>: ConsolePreferencePage problem<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 17, 2002
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28383">28383</a>: Debug view flashes during stepping<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 16, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28245">28245</a>: No launchAdded notification on first relaunch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28282">28282</a>: Launch view doesn't select stack frame when it is made visible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27011">27011</a>: NPE from LaunchConfigurationTabGroupViewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28317">28317</a>: NPE exiting workbench<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 13, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28050">28050</a>: Extra separator if no history, only favorites.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27881">27881</a>: Remote Debug Connection Configuration<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28088">28088</a>: Console view caused NPE when "becomesVisible"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27092">27092</a>: Only update variables/expressions when visible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28227">28227</a>: NPE painting console document<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28100">28100</a>: Re-factor "isVisible" debug view function<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25437">25437</a>: Console Performance when output alternates between streams<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 10, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27139">27139</a>: Common tab has duplicate accelerator<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23216">23216</a>: Shared launches marked as favorites do not show up after importing existing project<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23951">23951</a>: Flicker when closing launch config dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26333">26333</a>: Improve launch manager startup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24715">24715</a>: Launch dialog open return codes are internal<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14758">14758</a>: ILaunchConfigurationTab#performApply called twice on hitting the Apply button<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26335">26335</a>: Improve debug plug-in startup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27834">27834</a>: LaunchHistory registers unnecessary listener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27607">27607</a>: Better Ant project names<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26503">26503</a>: launch groups/dropdown should support shortcuts<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27877">27877</a>: Don't use a marker for stack frame line highlighting<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27816">27816</a>: Re-work launch actions to use launch group framework<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27952">27952</a>: hyperlink region should not be stored in hyperlink<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 03, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27353">27353</a>: ConsoleContentProvider -> ConsoleColorProvider<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27347">27347</a>: Process types<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27200">27200</a>: "Show console when program writes ..." doesn't work<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19674">19674</a>: LaunchConfigurationDialog is over 3,000 lines (whew!)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27248">27248</a>: Launch config dialog is grotesquely large<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Nov 26, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18814">18814</a>: Cannot 'save changes' and duplicate a Launch configuration at the same time<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25745">25745</a>: NPE if no tab group specified for a configuration type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26996">26996</a>: get/setAttributes on ILaunchConfiguration/WorkingCopy<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26702">26702</a>: Allow single launch config to be edited<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Nov 12, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25701">25701</a>: Instruction pointer disappears<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23477">23477</a>: Most recent launch config lost after each restart<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Nov 05, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1524">1524</a>: Feature: Displaying Instruction pointer (1G3A7CG)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14758">14758</a>: ILaunchConfigurationTab#performApply called twice on hitting the Apply button<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Oct 22, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24738">24738</a>: Launch Config Dialog: Pressing cancel permanently diables 'Apply'<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=16817">16817</a>: DebugException: The resource tree is locked for modifications.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Oct 15, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24364">24364</a>: Investigate opening launch config dialog from inside a delegate's launch() method<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Oct 8, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24270">24270</a>: UI hangs when try to debug with 'bad' VM arguments<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Oct 1, 2002
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24100">24100</a>: LaunchConfigurationWorkingSetPage.setSelection should work without container being set<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Sept 17, 2002
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23124">23124</a>: Presentation of "no source"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23266">23266</a>: NPE exception in VariablesViewContentProvider<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22595">22595</a>: No code assist in details pane<br>
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Aug 27, 2002
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22283">22283</a>: ArrayIndexOutOfBoundsException in launch view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19856">19856</a>: Create a new launch configuration should always be an option in launch configuration wizard<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18877">18877</a>: Flicker in VariablesView when rapid stepping<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 06, 2002
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21585">21585</a>: Evaluating expression switches editors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9687">9687</a>: Should have busy cursor opening editor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21640">21640</a>: Show types action in Variables view is confused<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18787">18787</a>: Slightly off message in details pane of Expressions view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=15847">15847</a>: Disable Run / Debug buttons in toolbar if no contribution is associated with that mode<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 30, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21504">21504</a>: Both "enable" and "disable" breakpoints actions are enabled when multiple breakpoints are selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20431">20431</a>: Run/debug include in favorites setting ineffective<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 16, 2002
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19099">19099</a>: Console in different window keeps name of terminated and removed debug target<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20504">20504</a>: Launch view accelerator update workaround no longer needed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20602">20602</a>: Potential NPE in AbstractDebugView when subclass does not persist state in memento<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20610">20610</a>: [Console] Terminate button disabled on Clear Console, even when app still running<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=20713">20713</a>: 2 requests to change value of variable when enter pressed on invalid value.<br>
-
-</body>
-</html>
diff --git a/org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html b/org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html
deleted file mode 100644
index fb29aedf4..000000000
--- a/org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html
+++ /dev/null
@@ -1,994 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="IBM">
- <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
- <title>Platform Debug Release Notes</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>3.0 - RC4</p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=68181">68181</a>: [doc] Error in IDebugUIConstants javadoc (launchActionSet)<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>3.0 - RC3</p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61992">61992</a>: Slow selection change in debug view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66586">66586</a>: Debug-related views no longer "come to front" in non-debug perspective<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66990">66990</a>: PopupInformationControl does not specify shell for handler<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66330">66330</a>: Remote Debug Connection not disconnected when JDIDebugModel.newDebugTarget(...) fails<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66443">66443</a>: Review LaunchView call to IEditorReference#getEditor(true)<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67522">67522</a>: Views don't open when auto-manage initially activated<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67463">67463</a>: Launch Shortcuts schema is incorrect<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67507">67507</a>: Ampersand ('&') in label when adding directory to source lookup path<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67620">67620</a>: Breakpoints should not be shown in the overview ruler<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65051">65051</a>: string_prompt variable prevents other variables from executing<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67781">67781</a>: color tuning<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>3.0 - RC2</p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64638">64638</a>: Don't use new "Run" icon on Debug objects<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45980">45980</a>: Check calls to IWorkspace.run(...)<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65067">65067</a>: switch perspective when breakpoint hit not honored<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57293">57293</a>: [doc] Beef up contextViewBinding schema<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66033">66033</a>: Move isAutoManageViews() to LaunchViewContextListener<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63340">63340</a>: Remove DebugContextManager<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65814">65814</a>: o.e.debug.core.memoryRenderings extension point<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65581">65581</a>: broken doc link for stringVariablePresentations<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65351">65351</a>: Breakpoint migration from 2.1 to 3.0<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64940">64940</a>: Delay on breakpoint rendering when enable/disable<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66187">66187</a>: Polish patch: support view activation via a keyboard shortcut<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65356">65356</a>: source lookup tab migration from 2.1 to 3.0<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65072">65072</a>: workbench not activated when breakpoint hit<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64984">64984</a>: Inspect doesn't work in Display View<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65039">65039</a>: Launch view should use IPerspectiveListener2<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64666">64666</a>: Run/Debug prompts to continue before compiling [JUnit]<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52336">52336</a>: [Viewers] Internal error at start of debug session<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62677">62677</a>: Adding working set to Source Lookup Tabs causes problems in the tab.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>June 1, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56012">56012</a>: Consistency in space at top of launch configuration tabs<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64188">64188</a>: Classcast exception when trying to resolve non-stackframe object<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63468">63468</a>: ConsoleView should set it's title using setContentDescription()<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64019">64019</a>: IllegalArgumentException when editing ant builder<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63449">63449</a>: Wrong menu path for profile action set.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61117">61117</a>: enable checkbox state after "Show Breakpoints Supported by Selected Target"<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62322">62322</a>: Green triangle for Run is confused with the Resume button<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63951">63951</a>: Wrong window activated when new window is opened<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 25, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63323">63328</a>: Move "show debug action set" to LaunchView<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63493">63493</a>: LaunchView keeps lots of state from last debug session in memory<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63016">63016</a>: Display view always brought to the top<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=64337">64337</a>: unqualified source lookup fails in external archive<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62803">62803</a>: ExternalArchiveSourceContainer needs to handle multiple root paths<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 21, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63348">63348</a>: NPE from popup<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63374">63374</a>: NPE in LaunchView.partClosed<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63575">63575</a>: Invalid button states in EnvironmentTab of Launch Configuration<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 20, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62798">62798</a>: Ok to launch Yes/No should also honor cancel<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62960">62960</a>: NullPointerException when restoring default in Source Lookup Tab<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62677">62677</a>: Adding working set to Source Lookup Tabs causes problems in the tab.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63009">63009</a>: Source Lookup Tab does not properly show icons for Jar files<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63182">63182</a>: Warning about error in pre-requisite wrong<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63090">63090</a>: Console scroll button has its logic reversed.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63053">63053</a>: View Management view menu drop down has no mnemonic<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63249">63249</a>: uneccessary error logging<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63029">63029</a>: Show As for logical structure has no mnemonic<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62564">62564</a>: A runnable may not be run, if the previous one throws an exception<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54407">54407</a>: Make a pass on all the properties files<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62643">62643</a>: [External Tools] Quoted args send quote to process<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63027">63027</a>: View Management "Reset Now" button does not layed out correctly<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56042">56042</a>: [Coolbar] [Workbench] Toolbar flash selecting stack frames<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62592">62592</a>: Debug view can fail to close generic debugging views<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63050">63050</a>: NPE in VariablesViewContentProvider<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62574">62574</a>: Expose Debug view's "view tracking" behavior<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63293">63293</a>: Pressing "Reset Now/Cancel" does not cancel<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=63256">63256</a>: NPE when adding a breakpoint in an external Java file<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62391">62391</a>: View management: Views opened in wrong perspective<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 18, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57519">57519</a>: Console should bold title when new output is available<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53508">53508</a>: Activate debug action set with debug view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61801">61801</a>: A null String object reference becomes the value "null"<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62069">62069</a>: NullPointerException in LaunchViewContextListener#initViewCollection<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61940">61940</a>: Customized perspective opens closed views<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61064">61064</a>: improve string variable descriptions<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61116">61116</a>: Common watch expressions don't work for wrapper adapters<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60024">60024</a>: Memory view code could make use of Debug plugin logging support<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61385">61385</a>: Remove debug action group doc<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47295">47295</a>: Hard to pin down a console<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62236">62236</a>: Debug color settings should NOT be shown in Workbench>Colors and Fonts<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61938">61938</a>: Add source location dialog always selects Java Classpath Variable<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62193">62193</a>: No RunToLine action in context menu<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62488">62488</a>: Default pref settings<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62490">62490</a>: out-of-box experience<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61412">61412</a>: Source lookup tab causes config to need saving<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44632">44632</a>: Debug view need to be error-proof<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61958">61958</a>: dangerous practice of catching Throwable<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60327">60327</a>: Review LaunchViewContextListener multi-window behavior<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56412">56412</a>: Duplicate favorites after rename<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61630">61630</a>: schema for external tools configurationDuplicationMaps ext point<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55400">55400</a>: context menu&gt;watch from the variables view doesn't open/activate the expressions view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62258">62258</a>: No vertical scroll bar on inspect results<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61826">61826</a>: Add file extension filtering for run/debug context menu<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51435">51435</a>: CommonSourceNotFoundEditor#resetEditor<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60016">60016</a>: Accessibility: Run config, Arguments tab: Working directory not read<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61868">61868</a>: Double tree viewer in debug view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61917">61917</a>: use .exsd for extension pt schemas<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62202">62202</a>: Run context menu does not filter actions based on enabled activities<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62269">62269</a>: Uneccessary label computation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61928">61928</a>: Launch Views leaking<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 11, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54598">54598</a>: Launch configuration; wizard buttons New/Delete margins<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57637">57637</a>: turn Remove All Terminated Launches on by default<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60305">60305</a>: Layout problems on the Environment tab<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58384">58384</a>: Profile toolbar launch menu should use "Profile As &gt;"<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51916">51916</a>: Add ability to change source lookup of a running launch<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58725">58725</a>: [Debug] "Switch to assciated perspective when launching" should set to "Prompt" by default<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60286">60286</a>: API Request: Ability to open launch configuration properties dialog on a specific tab<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60838">60838</a>: Support matchesContentType property test<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45656">45656</a>: New Annotation Features<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59319">59319</a>: make scroll lock global to all process consoles<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60927">60927</a>: notifyResult(...) in OpenLaunchDialogAction<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60952">60952</a>: Chkpii errors in I20040504<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60364">60364</a>: debug used deprecated runtime code<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61321">61321</a>: ui.console should not depend on core.resources<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60918">60918</a>: [KeyBindings] Some key bindings not working<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60974">60974</a>: make org.eclipse.debug.internal.ui.views.console.ProcessConsolePage.getConsoleViewer() method public<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61105">61105</a>: Configure view management per perspective<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60010">60010</a>: Auto manage view action move to view menu<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61221">61221</a>: No progress dialog when prompted to wait for build<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57763">57763</a>: NPE running from scrapbook<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61166">61166</a>: source not found<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61120">61120</a>: Should closed projects be skipped?<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55423">55423</a>: don't schedule build if already building<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41376">41376</a>: Incorrect english: doesn't account for case where launch config type starts with vowel<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53722">53722</a>: Run As... menu disabled if selection is empty<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61634">61634</a>: Compile errors in workspace message should be more general<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61336">61336</a>: Compile errors prompt should use a warning dialog<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61291">61291</a>: Breakpoint view is displayed when a breakpoint is hit<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57052">57052</a>: [KeyBindings] F11 (Debug Last Launched) Conflict on MacOS X<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46168">46168</a>: fork() methods should use jobs<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61427">61427</a>: LaunchConfigurationDialog leaked for each use<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54946">54946</a>: Contextual launch contribution should not set adaptable=true<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60051">60051</a>: Launching with Ant buildfile errors <br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61308">61308</a>: Display var/expression shows in unreadable popup<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57333">57333</a>: Provide API to specify whether a substitution variable supports arguments<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57164">57164</a>: Context view activation should maintain view "stack"<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57588">57588</a>: Removing process from launch doesn't remove associated console<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61810">61810</a>: NPE in the log<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>May 4, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60064">60064</a>: Memory preference page is missing mnemonic<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60254">60254</a>: Change required in AbstractMemoryRenderer<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56146">56146</a>: Memory View Contribution to Eclipse<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56827">56827</a>: NPE - ExpressionManager expects a delegate for all debug models<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57862">57862</a>: Ability to configure variables from variable selection dialog<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54726">54726</a>: Fix schema reference in launch shortcut extension<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51503">51503</a>: Add filter button to Expressions view to show expressions by debug target<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59776">59776</a>: Migrate memory view pref page to view setting<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60203">60203</a>: Launch job waiting forever<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60655">60655</a>: Memory Block is not enabled / disabled by the Memory View properly<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59986">59986</a>: Move from ProgressMonitorDialog to IProgressService.busyCursorWhile()<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57272">57272</a>: AlwaysNeverDialog should have "Eclipse standard" look<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60708">60708</a>: Edit String Substitution Variable dialog does not use the dialog font<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58933">58933</a>: Remove activity filtering in Breakpoints view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59330">59330</a>: migrate to new search API<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59183">59183</a>: Cancelling foreground launch waits for build to complete<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59535">59535</a>: Opening launch configuration dialog with "profile" mode.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59356">59356</a>: LaunchConfigurationDelegate needs a way to tell it per instance to not put up status prompts.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=60409">60409</a>: Use of deprecated fontDefinition extension point<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59854">59854</a>: Debug keybindings wrong on Mac<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59990">59990</a>: function keys not working<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58528">58528</a>: User prompted to switch to debug when debug perspective is active<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>April 27, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58957">58957</a>: breakpoints : Remove BreakpointManagerListener on dispose<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57305">57305</a>: flashing breakpoints view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57173">57173</a>: Activity filtering not working for debug<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58684">58684</a>: Installed JRE can't be named "."<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42138">42138</a>: Provide a way to dynamically change the process label shown in the console title and debug view<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47164">47164</a>: Need to be able to disable go to file action for breakpoints.<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57517">57517</a>: eval popup are initially too small<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57735">57735</a>: When including assert tags in private method, breakpoint can't be set<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59483">59483</a>: Predefine some launch conifiguration variables<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59042">59042</a>: Invalid Launch configurations are never cleaned up<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58725">58725</a>: [Debug] "Switch to assciated perspective when launching" should set to "Prompt" by default<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39024">39024</a>: Need better icon for object browsers action<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57999">57999</a>: Breakpoints added to view while breakpoint manager disabled are not greyed<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58516">58516</a>: HandlerSubmission constructor marked as deprecated<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58766">58766</a>: doc/enhance stratum breakpoint<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59002">59002</a>: Do we need marker definitions for instruction pointers<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57642">57642</a>: [ViewMgmt] debug tests failures due to missing selection<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57836">57836</a>: Support to put paths in variable values<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59729">59729</a>: Run-> context menu only enabled for a single selection<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56246">56246</a>: InstructionPointerAnnotation and IDebugEditorPresentation<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58209">58209</a>: Support multi-select for Resume action<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58377">58377</a>: 'Esc' out of change variable dialog doesn't cancel action<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58650">58650</a>: replace debugModelActivityBinding with pattern binding<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59828">59828</a>: Various issues with SelectedResourceManager<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=7552">7552</a>: Keep breakpoints when renaming a resource<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>April 20, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58290">58290</a>: Launch error message spelling<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56850">56850</a>: DebugViewDecoratingLabelProvider.computedText never cleared<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=29890">29890</a>: Debug Platform Source Lookup Facilites<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45877">45887</a>: When selecting "Build before launching", the build is not specific to the project launched, but the whole workspace<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=58754">58754</a>: Wait for build never and prompt preferences reversed<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55419">55419</a>: Generalize compilation error detection for other launchers<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56191">56191</a>: Skip breakpoints in run-to-line<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57306">57306</a>: Improve progress feedback when user wants to wait on build before a launch<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>April 13, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57790">57790</a>: Support multiple debug-model-to-context extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53222">53222</a>: Trigger activities when debug elements selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53640">53640</a>: Registers view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57929">57929</a>: Scope step actions with debuging context<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58052">58052</a>: Launch view can open views in the wrong window<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57788">57788</a>: API changes to IHandler causing compile errors<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>April 6, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56235">56235</a>: Organize Favorites dialog could remember size<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56266">56266</a>: Reorder preference choices for Save dirty editors<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56966">56966</a>: Skip All Breakpoints should have a keyboard shortcut<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30639">30639</a>: Debug preference pages cut of in High Contrast<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57328">57328</a>: NPE from ResourceResolver<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55685">55685</a>: Get rid of MoveResultToViewerAction<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55808">55808</a>: SelectedResourceManager holds onto selections too long<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56192">56192</a>: Remove unused command for close popup<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55612">55612</a>: Rename "Run" keybinding category to "Run/Debug"<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56035">56035</a>: Console text font should be moved to Workbench Appearance<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51901">51901</a>: Breakpoint image specification is on jdt.ui instead of debug.ui<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56214">56214</a>: ProjectSourceContainer#getSourceContainers() and referenced projects<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51084">51084</a>: Launch view should not track view open/close during perspective reset<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52524">52524</a>: Blocked launch dialog should offer cancel as an option<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56013">56013</a>: Remove the use of the deprecated shared icons<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=56070">56070</a>: New and Delete buttons remained disabled after cancelling search<br>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53548">53548</a>: Automatically close views that were opened automatically<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 30, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56677">56677</a>: AssertionFailed from LaunchConfigurationView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56082">56082</a>: no junit test for LaunchConfigurationDelegate.preLaunchCheck()<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55309">55309</a>: Leak: RetargetWatchpointAction hangs onto last activated part<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56672">56672</a>: 'Marker id not found' error in breakpoint view during fast create/delete breakpoint actions<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 25, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55704">55704</a>: Step into selection leads to too many breakpoints being skipped<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56238">56238</a>: Continue Launch when compile errors preference: Never<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 23, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53677">53677</a>: Remove "debug popup" scope when dialogs support key bindings<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52613">52613</a>: [New Look] Duplicate debugger perspective opened while stopping at brk pt<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55124">55124</a>: Warning reported in the builds<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36495">36495</a>: Debugger support for roles and activities<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55040">55040</a>: Don't provide ILaunchListener2 API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54925">54925</a>: want option to not run programs with errors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54631">54631</a>: debug view opens while prompting for perspective change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=6400">6400</a>: DCR - suggestion to improve running vs. debugging<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55183">55183</a>: Preference to switch perspective on suspend is too eager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55442">55442</a>: ClassCastException in LaunchViewEventHandler<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55194">55194</a>: "String" problems with the DebugPreferencePage<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=55430">55430</a>: "[KeyBindings] Migrate Popup keybinding support to new EnabledSubmission API<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 16, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50156">50156</a>: Disable "Use Step Filters" toggle for targets that do not support step filters<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54189">54189</a>: Disable "Use ToggleAutoManageViewsActionDelegate is missing required id<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37485">37485</a>: Icons for launch short-cuts should be optional<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44234">44234</a>: Type names always qualified in expressions view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53223">53223</a>: Expression popup should also show toString()/details<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54073">54073</a>: Chkpii warnings in plugin.xml files<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10302">10302</a>: 'Run to Line' stops at breakpoints<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52809">52809</a>: Evaluating in debugger should not stop on breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38950">38950</a>: Display offset of cursor in variables detail pane<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10078">10078</a>: Feature: Global enable/disable of breakpoints (and leave breakpoints list untouched)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54182">54182</a>: Two prompts when starting a debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44632">44632</a>: Debug view need to be error-proof<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=12746">12746</a>: refactoring support for launch configurations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52017">52017</a>: Add createCheckButton API to AbstractLaunchConfigurationTab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34345">34345</a>: Disabled watch expression label includes "obsolete"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53001">53001</a>: Need a separator between 'Include type inheriting ...' and 'stop in main' in the main Java launch configuration tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54859">54859</a>: Breakpoint are not set as non-registered when deleted from the breakpoint view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54117">54117</a>: Contextual Launch should use XML Expression Language<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52952">52952</a>: show all env vars when replacing environment<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48933">48933</a>: Move to use the Platform UI color support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50384">50384</a>: Debugger perspective: default layout improvements<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37514">37514</a>: global retargettable breakpoint action<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52450">52450</a>: Don't open Expression View by default<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51402">51402</a>: [Generic console] need showConsoleView() method<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51935">51935</a>: Add UI support for variables when specifying environment variable values<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54065">54065</a>: Tooltip text for profile button in toolbar is wrong<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54901">54901</a>: Better error logging when launch configuration blows up<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51568">51568</a>: Numerated accelerators for launch shorts in context menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54924">54924</a>: Variable selection dialog needs mneumonic for Variable Desc<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54619">54619</a>: Doc for breakpoint manager enablement<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 9, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=14414">14414</a>: Use detail pane for variable value setting<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53636">53636</a>: Label changes after display/inspect popup is visible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53665">53665</a>: NPE with "double click"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48313">48313</a>: Message console does not support tab size<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52964">52964</a>: Persist size of debug pop-ups (or size better)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53470">53470</a>: launch waiting for build shows up in context menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53693">53693</a>: Variables view doesn't show variables.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51787">51787</a>: Stepping in Java Perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53554">53554</a>: Default perspective switching preferences are backwards<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53954">53954</a>: "Change variable value" action.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50886">50886</a>: Update debug markerAnnotationSpecification<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44135">44135</a>: ability to prompt for arguments in run/debug profiles<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>March 2, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52607">52607</a>: console: no action when drop down is pressed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51387">51387</a>: API for retreiving console associated with a process<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52867">52867</a>: New look - console no longer has a view title<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53225">53225</a>: Display keybinding for default close action in debug popup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51386">51386</a>: Variables view does not persist size of details area<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13933">13933</a>: Terminating launch does not send launchChanged event<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53313">53313</a>: StringIndexOutOfBoundsException from LaunchConfiguration<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52330">52330</a>: Logical Structure should have a single value<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52974">52974</a>: NPE in launch dialog when creating a new config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53409">53409</a>: Launch view doesn't persist "views to not close"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49877">49887</a>: Expose the exit value of IProcess<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Feb 24, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29953">29953</a>: Launch configuration not found, many stacktraces in the .log<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=13449">13449</a>: Better description when launch configuration type is selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52397">52397</a>: NPE from AddFavoritesAction and others when rename launch config<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52763">52763</a>: Edit String Substitution Variable dialog clears value on name change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52170">52170</a>: Improve debug context inheritance<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Feb 17, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51998">51998</a>: Bad label for a menu item<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51465">51465</a>: Variable subranges<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51635">51635</a>: Debug view is not brought to the front when a breakpoint is hit<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37942">37942</a>: Launch config dialog should have some way to determine the full location of JARs that are listed on the classpath<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Feb 12, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51803">51803</a>: ClassCastException importing preferences<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Feb 10, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=18338">18338</a>: Run/Debug in the context menu<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51388">51388</a>: Show "Selection Not Applicable"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51422">51422</a>: NPE on hitting breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49934">49934</a>: Promote views with debugging contexts<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Feb 3, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50155">50155</a>: New Job#schedule() behavior<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50203">50203</a>: Exception in error log + blank rendered in sessions view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50543">50543</a>: Cannot override PATH environment variable<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Jan 27, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49972">49972</a>: Nothing happens when launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50232">50232</a>: Missing localizations for extension point names<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49891">49891</a>: Problems launching a program, when using linked resources in CLASSPATH, which are not set<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50407">50407</a>: NPE in selected text resolver<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50223">50223</a>: Missing localizations for extension point names<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Jan 20, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46781">46781</a>: Console buffer size limit<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46869">46869</a>: Message console does not buffer output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49288">49288</a>: Set Variable dialog not sized properly or resizable.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47601">47601</a>: external tools: add ${selection} as a variable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48320">48320</a>: Adapt to annotation deprecations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49977">49977</a>: Less invasive background labels<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41510">41510</a>: Step with Filters: unify function across languages by allowing filters to be enabled/disabled on the 3 basic step functions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50232">50232</a>: Missing localizations for extension point names<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Jan 13, 2004 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45603">45603</a>: Cycles in string substitutions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46363">46363</a>: Lazy label provider for variables view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49884">49884</a>: ProcessConsolePage does not deregister hyperlink action<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Dec 15, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48608">48608</a>: Handle null for IProcess#getStreamsProxy()<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46868">46868</a>: Changing text color via a MessageStream doesn't update colors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46797">46797</a>: Possible NPE when writing launch configurations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48226">48226</a>: Tooltip text for "External Tools" toolbar button not updated.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47668">47668</a>: Exclude exception location<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37506">37506</a>: RefreshTab makes use of WorkbenchPlugin<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45991">45991</a>: need package.html in "variables" plug-in<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47848">47848</a>: IDebugEditorPresentation methods called in different order<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47855">47855</a>: Review VariableViewToggleAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48224">48224</a>: Target execution order hidden<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47268">47268</a>: Selected launch configuration incorrect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48190">48190</a>: Variables context menu actions need eclipses [...]<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40541">40541</a>: NPE in launch configuration dialog<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Dec 9, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37918">37918</a>: Console uses Date format that is not appropriate for Japanese<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47949">47949</a>: Nothing added to launch history<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47924">47924</a>: Thread label flicker<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47834">47834</a>: No feedback that launch got queued/postponed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47377">47377</a>: Console: order of local toolbar items should remain stable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42272">42272</a>: Resize problem in Launch Config dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41609">41609</a>: invalid tab size (rendering) in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48315">48315</a>: LaunchView thread timer runs too long<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47389">47389</a>: Use of deprecated API from IActivityManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38419">38419</a>: Variable "filters" is a misnomer<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Dec 2, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47478">47478</a>: Switching to use JRE Library container<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47107">47107</a>: Open Resource not available in Debug perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45981">45981</a>: Move debug projects to use PDE dynamic classpath support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46811">46811</a>: Deadlock saving working copied<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 25, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47248">47248</a>: NPE starting run-time workspace<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38979">38979</a>: Should not be able to remove contributed variables<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 21, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47100">47100</a>: TitleAreaDialog image has been disposed<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 20, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47071">47071</a>: Set instruction point layer to 6 in code<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 19, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46858">46858</a>: FileLink needs to resolve an editorId<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 18, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45524">45524</a>: Artwork for array partitions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46728">46728</a>: org.eclipse.ui.console should be tagged as 3.0 plug-in<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44479">44479</a>: Exception when trying to start RuntimeWorkbench while workspace is building<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 11, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43388">43388</a>: Possible problem with DebugPlugin$AsynchJob<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36942">36942</a>: [plan item] Present logical view of Java objects in debugger<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45903">45903</a>: Breakpoint incorrectly enabled after activity filtering<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43387">43387</a>: Refresh tab and specific resources<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44566">44566</a>: Refresh tab does not enable "Apply" when changing selection<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Nov 4, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45849">45849</a>: ConcurrentModificationException in Expression manager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43332">43332</a>: String Substitution Support - org.eclipse.core.variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43952">43952</a>: Improve launch tab interface/notification<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44100">44100</a>: UI blocked removing breakpoints from breakpoints view with other jobs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46152">46152</a>: Revise usage of IWorkspace.run<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46035">46035</a>: NPE in Run... pages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45858">45858</a>: User gets prompted multiple times to save the same resources<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Oct 28, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43388">43388</a>: Possible problem with DebugPlugin$AsynchJob<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45195">45195</a>: Debug View: Copy Stack only copies <pending...><br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44856">44856</a>: errors in label update<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44723">44723</a>: Redundant launching job message<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36735">36735</a>: Would like automatic partitioning of large arrays<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44099">44099</a>: organize favorites...<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44577">44577</a>: Suspended debug target not given "suspended" overlay<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Oct 21, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44934">44934</a>: Remove dependancies on Xerces plugin<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Oct 15, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44660">44660</a>: MessageConsole.appendToDocument(...)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44040">44040</a>: IConsoleLineTrackerExtension and after consoleClosed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44012">44012</a>: missing closed notification for console line tracker<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Oct 07, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40609">40609</a>: Launch configuration dialog re-initializes all of the tabs on close<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43226">43226</a>: Deadlock using 0916<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44048">44048</a>: Cannot create New String Substitutions<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Sep 30, 2003 </p>
-<h3>API Changes</h3>
-<ul>
- <li>Support for variables that support string substitution has been changed.
- The previously experimental extension points for simpleLaunchVariables, contextLaunchVariables,
- and refreshLaunchVariables have been replaced with new (and yet experimental)
- extension points valueVariables and contextVariables. The new support is purely
- string based and is currently implemented in internal packages. It is percieved
- that the new support could be moved to a new plug-in such that more clients
- could leverage the support, as the current implementation is not tied to the
- debug plug-in. </li>
- <li>A console line tracker (IConsoleLineTracker) can be notified when its associated
- console is closed (i.e. all of its streams are closed), by implementing the
- new interface IConsoleLineTrackerExtension. The notification indicates that
- no more output will be appended to the console.</li>
-</ul>
-
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31734">31734</a>: Console line trackers not notified of last line<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43608">43608</a>: NPE removing an existing program in the external tools launching configuration<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43477">43477</a>: Console plug-in needs package.html<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43704">43704</a>: LaunchConfiguration.getFile does not handle linked resources: NPE<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41579">41579</a>: Move selection to next suspended thread after resuming<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43197">43197</a>: Race condition between console line tracker and debug terminate event<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Sep 23, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43225">43225</a>: No prompt to save dirty editors <br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43353">43353</a>: Environment variable names all lowercased when appending to native environment<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43331">43331</a>: Rework Refresh Tab to avoid use of "refresh variables"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43334">43334</a>: Refresh Tab always needs "apply" when working set specified<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33866">33866</a>: Move to using the PDE generated build.xml for exporting plugins<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37263">37263</a>: Support for generic console<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Sep 16, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42570">42570</a>: Promote RuntimeProcess to API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42779">42779</a>: Duplicate entry in expression view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42814">42814</a>: Ability of "override" environment<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42877">42877</a>: Clean up Launch in Background / Run in Background<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19292">19292</a>: Icons for enable/disable breakpoints very confusing<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37091">37091</a>: Need icon for environment tab and variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=10668">10668</a>: Variable view - should reselect selected variable name<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42177">42177</a>: Installed JRE's preference page is huge<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40863">40863</a>: Env var usability<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37784">37784</a>: Rename "Debug" preference page to "Run/Debug"<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Sep 09, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42020">42020</a>: Move "Run in background" to builders only<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41866">41866</a>: Reference to IConsoleDocumentContentProvider in error message<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42179">42179</a>: Reevaluate watch expression enabled with no active targets<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41633">41633</a>: ILaunchManager#getLaunchConfigurations returns private configs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41352">41352</a>: Incorrect lineAppended notification from ConsoleLineNotifier<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1562">1562</a>: Suspending on a breakpoint...select that breakpoint (1GD5P0D)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42184">42184</a>: Edit->Find action for the console is only enabled after some text is selected<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Sep 2, 2003 </p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41758">41758</a>: "Profile Last Launched" menu item is at the bottom, should be at the top<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42218">42218</a>: LAUNCH_CONFIGURATION_DIALOG_LAUNCH_LAST no longer used<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41947">41947</a>: LaunchConfigurationDialog and cancellation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42064">42064</a>: "New Launch Variable" and "Edit Launch Variable" dialogs do not use dialog font<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42189">42189</a>: NPE during shutdown<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-<p>Aug 27, 2003 </p>
-<h3>New Features in Milestone 3 (release 3.0)</h3>
-<h4>Extensible Watch Expressions</h4>
-<p>In release 3.0, the debug platform provides an implementation of watch expressions.
- Debug models can contribute watch expression delegates if they support watch
- expressions. When a stack frame is selected, the associated delegate is queried
- to provide a value for a watch expression in the given (stack frame) context.
- The debug platform provides persistence, enabling, disabling, entering, and
- editing of watch expressions. See the new extension point <code>org.eclipse.debug.core.watchExpressionDelegates</code>
- for more details.</p>
-<h3>API Changes</h3>
-<h4>Launch Tabs &amp; Tab Groups</h4>
-<p>Launch tab groups and launch tabs are no longer notified when a launch completes.
- The method <code>launched(ILaunch)</code> in the interfaces <code>ILaunchConfigurationTab</code>
- and <code>ILaunchConfigurationTabGroup</code> has been deprecated and is no
- longer called. Relying on this method for launch function was always problematic,
- since tabs only exist when launching is performed from the launch dialog. Also,
- with the introduction of background launching, this method can no longer be
- called, as the launch dialog is be closed before the resulting launch object
- exists.</p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41675">41675</a>: breakpoints no longer visible in overview ruler<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38842">38842</a>: Make enabling and disabling expressions part of the debug framework.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27493">27493</a>: Re-use "watch list" actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41940">41940</a>: watch item not updated when enabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41941">41941</a>: API method should be internal<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41550">41550</a>: launch in the background<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41977">41977</a>: watch items will not disappear<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42013">42013</a>: Launching should not be UIJob<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42037">42037</a>: Breakpoint not shown as checked when enabled.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Aug 19, 2003
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41499">41499</a>: Update doc for watchExpressionDelegates extension point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41448">41448</a>: launch shortcuts should be sorted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41506">41506</a>: NPE attempting to create watch expression<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27281">27281</a>: The watch expressions don't persist across workbench invocations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41575">41575</a>: Can't open breakpoint view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41585">41585</a>: shared launch configurations are not being encoded with UTF-8<br>
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Aug 12, 2003
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41290">41290</a>: Typo: "persepctive" in launch configurations window<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41276">41276</a>: Clarify ILaunchConfiguration#getLocation()<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41384">41384</a>: Chkpii errors in debug<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Aug 5, 2003
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40964">40964</a>: Got DebugException when stepping and removing a breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38365">38365</a>: current instruction pointer annotation only added for ITextEditor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40961">40961</a>: Refresh tab indicates working set error when no refresh<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40962">40962</a>: Refresh tab revert enabled incorrectly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=19581">19581</a>: Single launch config error logged many time<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 29, 2003
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40576">40576</a>: NPE with pinned console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40844">40844</a>: NPE using debug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35453">35453</a>: Process output causes switch to wrong console view.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35573">35573</a>: Console output on new run or debug<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 22, 2003
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40235">40235</a>: preference page 'launch variables' uses borderless table, which looks suboptimal<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40275">40275</a>: Superfluous semicolons in the generated jdt eval tests<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 15, 2003
-<h3>New Features in Milestone 2 (release 3.0)</h3>
-<h4>Extensible Debug Events</h4>
-<p>The debug platform supports an extensible set of debug events. A debug event
- kind of <code>MODEL_SPECIFIC</code> has been added in the 3.0 release to indicate
- an application specific debug event. When a debug event of kind <code>MODEL_SPECIFIC</code>
- is created, the detail code in the event is client defined. The source of the
- event (debug element that generated the event) identifies the debug model from
- which the event was generated. The debug platform and user interface ignores
- model specific debug events.</p>
-<p>A data field has been added to debug events to allow clients to store application
- specific data in debug events.</p>
-<h4>Extensible Instruction Pointer Images</h4>
-<p>When a stack frame is selected in the debug view, the debugger opens a corresponding
- editor and displays an image in the editor ruler on the line that corresponds
- to the selected stack frame. In releases prior to 3.0, the images were provided
- by the debug plug-in and could not be overridden by a debug model. In release
- 3.0, a debug model presentation (<code>IDebugModelPresentation</code>) can provide
- specialized images by implementing the debug editor presentation interface (<code>IDebugEditorPresentation</code>).</p>
-<h4>Editor Positioning and Custom Decorations</h4>
-<p>In release 3.0, debug model presentations can control the positioning of editors
- opened by the debugger for a stack frame, and may add extra decorations to the
- editor for a stack frame (for example, custom background coloring, etc.). This
- can be acheived by having a debug model presentation implement the new interface
- <code>IDebugEditorPresentation</code>, and implementing the appropriate methods
- - <code>selectAndReveal</code>,<code> decorateEditor</code>, and <code>removeDecorations</code>.</p>
-<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=33598">33598</a>: Need to dynamically set icon for current line<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38976">38976</a>: Cancelling on launch var pref page does not work<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38980">38980</a>: var descriptions not persisted.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37793">37793</a>: When moving folders and/or files in the navigator window UI hangs<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36147">36147</a>: Launch framework doesn't handle out of sync launch files<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37092">37092</a>: Environment tab variables should be sorted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38534">38534</a>: Duplicate environment variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39979">39979</a>: Edit button should be disabled for multiselect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36597">36597</a>: Would like to say what text attributes to use when selecting the executing statement<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35208">35208</a>: IAE in JavaMainTab when entering project name with path seperator<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39980">39980</a>: Selection of launch variables in the Launch Variable pref page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38324">38324</a>: Double dialog for launch variable is unnecessary<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=40122">40122</a>: NPE in TextEditorSelection.remove<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 9, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39058">39058</a>: Would like "collapse all" action in variable view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38577">38577</a>: Setting detail pane to be visible can hide selected variable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39482">39482</a>: NPE adding Java Watch expressions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39709">39709</a>: Duplicated entries in the debugger<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 1, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38584">38584</a>: Book Capitilization for the tooltip for Toggle Variable Filters<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38508">38508</a>: [Dialog] [Font] Remote Java Application/Connect Page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38302">38302</a>: An IProcess that returns null for getStreamsProxy generates 2 null pointer exceptions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39397">39397</a>: Consolidate variables & general debug preference page<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39208">39208</a>: Context menu "Copy" should show Icon from ISharedImages [Console]<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39344">39344</a>: Convert ProcessMonitor to be a Job<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39258">39258</a>: Launch Configuration dialog: Screen cheese when switching between nodes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39394">39394</a>: Extensible debug events<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23432">23432</a>: Some exceptions should not be logged.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 17, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38676">38676</a>: can't debug into class if file/class name identifier has _$$_<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38722">38722</a>: Need restoration of preference store for those actions that are enabled only<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38532">38532</a>: Variables view orientation actions should more closely mimic the type hierarchy<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22941">22941</a>: Details area orientation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37241">37241</a>: Support for core variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38837">38837</a>: CHKPII errors with launch variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38972">38972</a>: variable values only persisted when added/removed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38967">38967</a>: simple launch variables & lazy init of plug-in<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38725">38725</a>: Debug context variables missing descriptions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38727">38727</a>: IVariableComponent#setEnabled(boolean)<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 10, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38671">38671</a>: NPE from LaunchVariableManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38649">38649</a>: Plugin.xml and schema validation<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 5, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38423">38423</a>: NPE during creation of varibles view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38529">38529</a>: UI locks up toggline on the variable filters<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38420">38420</a>: Details pane does not populate when first opened<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-June 3, 2003
-
-<h3> Extensible Launch Modes</h3>
-<p>The debug platform supports an extensible set of launch modes. Releases prior
- to 3.0 only supported two launch modes - run and debug. The debug platform now
- provides an extension point for contributing new launch modes - <code>org.eclipse.debug.core.launchModes</code>.
- The debug platform now defines (contributes) three basic launch modes - run,
- debug, and profile. Other clients may contribute new launch modes. The launch
- manager (<code>ILaunchManager</code>) has additional API to retrieve all launch
- modes, and a human readable label for each launch mode.</p>
-<p>The debug platform has a new extension point to support the contribution of
- a launch delegate for a specific launch configuration type and launch mode -
- <code>org.eclipse.debug.core.launchDelegates</code>. This allows launch configurations
- to be extended by third parties, to support new launch modes. For example, a
- client could contribute a launch delegate that launches a Java Application in
- profile mode (currently, the SDK does not provide a profiler).</p>
-<p>The debug platform has added an optional element (<code>launchMode</code>),
- to the definition of a launch tab group extension - <code>(org.eclipse.debug.ui.launchConfigurationTabGroup</code>),
- to support the contribution of a set of tabs for a specific launch configuration
- type and launch mode. This allows third parties to extend an existing lauch
- configuration user interface. For example, a client contributing a launch delegate
- to profile a Java Application would also contribute a set of tabs to configure
- the profiler. The launchMode element defines a perpsective attribute to specify
- the default perspective associated with the launch configuration type and mode.
- This controls the perspective that is switched to/opened, by default, when a
- configuration is launched in the associated mode. For example, a client contributing
- a profiler may also contribute a profiling perspective that should be displayed
- when an application is profiled.</p>
-
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38083">38083</a>: [Viewers] Debug exception when double-clicking on hashtable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38249">38249</a>: NPE trying to create project builder<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37141">37141</a>: Common tab icon should not be a bug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38283">38283</a>: Remove the setting of the target perspective on working copies<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38102">38102</a>: [Debug] [Preferences] Launch Variables Page; Table Columns truncated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38330">38330</a>: No double click to edit for launch variable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38325">38325</a>: Launch variable not removed from table on remove<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38336">38336</a>: Support delete key in launch variable table<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38328">38328</a>: Launch variable table needs to be sorted alphabetically<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 27, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38070">38070</a>: AbstractLaunchConfigurationTabGroup#launched() javadoc typo<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-May 06, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37090">37090</a>: Apply/Revert incorrectly enabled for Environment tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36930">36930</a>: Support variables in launch configurations<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 29, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27243">27243</a>: Environment for external tools<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-April 22, 2003
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35740">35740</a>: Disable edit launch config popup action for private launch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36390">36390</a>: Doc error in schema for consoleColorProviders and consoleLineTrackers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36152">36152</a>: Workbench Help set on wrong Composite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36035">36035</a>: Request a variant on DebugPlugin.exec that takes an environment pointer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36409">36409</a>: TODO marker for help context for OpenLaunchDialogAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27444">27444</a>: [Dialogs] Dialog font should be used by debug components<br>
-
-</body>
-</html>
diff --git a/org.eclipse.debug.core/r3_0_changes.html b/org.eclipse.debug.core/r3_0_changes.html
deleted file mode 100644
index 1e584cbbe..000000000
--- a/org.eclipse.debug.core/r3_0_changes.html
+++ /dev/null
@@ -1,260 +0,0 @@
-<html>
-<head>
-<title>3.0 Debug Platform Change Notes</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<h1>3.0 Debug Platform Change Notes</h1>
-<p>This document describes important changes in the 3.0 debug platform, relative
- to the 2.1 release.</p>
-
-<h2>New Features</h2>
-
-<h3> Extensible Launch Modes</h3>
-<p>The debug platform supports an extensible set of launch modes. Releases prior
- to 3.0 only supported two launch modes - run and debug. The debug platform now
- provides an extension point for contributing new launch modes - <code>org.eclipse.debug.core.launchModes</code>.
- The debug platform now defines (contributes) three basic launch modes - run,
- debug, and profile. Other clients may contribute new launch modes. The launch
- manager (<code>ILaunchManager</code>) has additional API to retrieve all launch
- modes, and a human readable label for each launch mode.</p>
-<p>The debug platform has a new extension point to support the contribution of
- a launch delegate for a specific launch configuration type and launch mode -
- <code>org.eclipse.debug.core.launchDelegates</code>. This allows launch configurations
- to be extended by third parties, to support new launch modes. For example, a
- client could contribute a launch delegate that launches a Java Application in
- profile mode (currently, the SDK does not provide a profiler).</p>
-<p>For backwards compatibility, the launch delegate supplied by a launch configuration
- type extension is used for the launch modes specified by the launch configuration
- type. A launch delegate supplied for a specific mode, is used only for that
- mode. </p>
-<p>The debug platform has added an optional element (<code>launchMode</code>),
- to the definition of a launch tab group extension - <code>(org.eclipse.debug.ui.launchConfigurationTabGroup</code>),
- to support the contribution of a set of tabs for a specific launch configuration
- type and launch mode. This allows third parties to extend an existing launch
- configuration user interface. For example, a client contributing a launch delegate
- to profile a Java Application would also contribute a set of tabs to configure
- the profiler. The <code>launchMode</code> element defines a <code>perspective</code>
- attribute to specify the default perspective associated with the launch configuration
- type and mode. This controls the perspective that is switched to/opened, by
- default, when a configuration is launched in the associated mode. For example,
- a client contributing a profiler may also contribute a profiling perspective
- that should be displayed when an application is profiled.</p>
-<p>For backwards compatibility, the tab group contributed for a launch configuration
- type (specifying no launch mode), is used for all launch modes for which a specific
- launch tab group is not contributed. Thus, when a mode is not specified by a
- tab group, the tab group effectively becomes the default tab group.</p>
-
-<h3>Extensible Debug Events</h3>
-<p>The debug platform supports an extensible set of debug events. A debug event
- kind of <code>MODEL_SPECIFIC</code> has been added in the 3.0 release to indicate
- an application specific debug event. When a debug event of kind <code>MODEL_SPECIFIC</code>
- is created, the detail code in the event is client defined. The source of the
- event (debug element that generated the event) identifies the debug model from
- which the event was generated. The debug platform and user interface ignores
- model specific debug events.</p>
-<p>A data field has been added to debug events to allow clients to store application
- specific data in debug events.</p>
-
-<h3>Editor Positioning and Custom Annotations</h3>
-<p>In release 3.0, a debug model presentation can position and annotate editors
- opened by the debugger for stack frames. This is done by implementing the new
- interface <code>IDebugEditorPresentation</code> on the applicable debug model
- presentation. When implemented, the model presentation is used as a delegate
- to position editors, add annotations, and remove annotations for stack frames.</p>
-
-<h3>Extensible Watch Expressions</h3>
-<p>In release 3.0, the debug platform provides an implementation of watch expressions.
- Debug models can contribute watch expression delegates if they support watch
- expressions. When a stack frame is selected, the associated delegate is queried
- to provide a value for a watch expression in the given (stack frame) context.
- The debug platform provides persistence, enabling, disabling, entering, and
- editing of watch expressions.</p>
-
-<h3>Process Factories</h3>
-<p>The debug platform provides an extension point (<code>org.eclipse.debug.core.processFactories</code>)
- for contributing process factories. A process factory can be used to override
- default process creation for a launch configuration when the debug plug-in (i.e.<code>
- org.eclipse.debug.core.DebugPlugin</code>) is consulted to create a new process.
- A launch configuration can reference a process factory to use when creating
- a process, via the launch configuration attribute <code>DebugPlugin.ATTR_PROCESS_FACTORY_ID</code>.</p>
-
-<h3>Automatic Array Partitioning</h3>
-<p>The debug plug-in now supports automatic array partitioning in the variables,
- which partitions large arrays into sub-ranges in the variables view. This is
- supported with the introduction of a new interface in the debug model representing
- an indexed value - <code>org.eclipse.core.debug.model.IIndexedValue</code>.
- If a value implements this interface, the variables view will automatically
- partition its elements as required, into sub-ranges</p>
-
-<h3>Logical Structure Types</h3>
-<p>Often, it is convenient to navigate complex data structures in terms of a logical
- structure, rather than an implementation structure. For example, no matter how
- a list is implemented (i.e. linked list, collection of arrays, etc.), it is
- often convenient to be able to view the list as an ordered collection. To facilitate
- the display of logical structures in the variables view, an extension point
- has been added (<code>org.eclipse.debug.core.logicalStructureTypes</code>) allowing
- debug models to contribute logical structures of its values, where applicable.
- Debug models may contribute delegates to translate raw implementation values
- into logical values. The variables view will display the logical values, when
- the option to display logical structures is turned on. More than one logical
- structure can be provided for a single value - the user can choose which structure
- to display.</p>
-
-<h3>Step Filters</h3>
-<p>To support step filters on all stepping functions (into, over, return), a new
- interface has been added to the debug platform - <code>IStepFilters</code> -
- which can be implemented by debug targets. This interface replaces <code>IFilteredStep</code>,
- which is now deprecated. The debugger provides a global toggle that turns step
- filters on/off for all stepping functions. Toggle actions are provided in the
- Run menu, Debug View context menu, and Debug View toolbar, which replaces the
- 'Step with Filters' action in previous releases. As well, an API is provided
- on <code>DebugUITools</code> to modify step filter enablement. It is up to debug
- targets to implement this new interface and to honor the step filter enablement
- setting when stepping. See javadoc for <code>IStepFilters</code> for more details.</p>
-<p>This change maintains binary compatibility with previous releases. However,
- targets wishing to leverage the new function must implement the new interface.</p>
-
-<h3>Launch Termination Notification</h3>
-<p>A new interface has been introduced to provide a mechanism for launch listeners
- to be notified when a launch terminates. A launch is simply a container of processes
- and debug targets. When all of the contained targets and processes terminate,
- a terminate notification is now sent to those listeners that implement
- <code>ILaunchesListener2</code>.</p>
-
-
-<h3>Launch Delegate Enhancements</h3>
-<p>Lanuch delegates can optionally implement the new interface <code>ILaunchConfigurationDelegate2</code>.
- This allows launch delegates to provide a launch object to be used for a launch.
- For example, when debugging on a server a delegate could create a new launch
- object or may reuse an existing launch object if the server is already running
- in debug mode.</p>
-
-<h3>Retargettable Actions</h3>
-<p>The debug platform now provides retargettable actions for the following actions.</p>
-<ul>
- <li>Run to Line</li>
- <li>Toggle Line Breakpoint</li>
- <li>Toggle Method Breakpoint</li>
- <li>Toggle Watchpoint</li>
-</ul>
-<p>Debug implementations can plug into the retargettable actions by providing
- appropriate adapters for relevant editors and model objects that perform the
- actual operations (<code>IRunToLineTarget</code> and <code>IToggleBreakpointsTarget</code>,
- defined in the <code>org.eclipse.debug.ui.actions</code> package). A retargettable
- action works on the active part. First the part is asked for a target adapter.
- If the part does not provide an adapter, the selected objects within the part
- are consulted for adapters.</p>
-<p>As well, action delegates actions are provided by the debug platform such that
- debug implementations can contribute appropriate actions to context menus. An
- editor actions delegate is provided for the run to line action, and an object
- action delegate is provided for toggling method breakpoints and watchpoints.
- See the following classes: <code>RunToLineActionDelegate</code>, <code>ToggleMethodBreakpointActionDelegate</code>,
- and <code>ToggleWatchpointActionDelegate</code> in the <code>org.eclipse.debug.ui.actions</code>
- package.</p>
-
-<h2>API Changes</h2>
-
-<h3>Debug Action Groups removed</h3>
-<p>The Debug Action Groups extension point (org.eclipse.debug.ui.debugActionGroups) has been
- removed. In Eclipse 3.0, the workbench introduced support for Activities via the
- org.eclipse.platform.ui.activities extension point. This support provides everything
- that Debug Action Groups provided and is also easier to use (it supports patterns instead of
- specifying all actions exhaustively) and has a programmatic API to support it.</p>
-<p>Failing to remove references to the old extension point won't cause any failures.
- References to the extension point will simply be ignored. Product vendors are encouraged to
- use the workbench Activities support to associate language-specific debugger actions with
- language-specific activities (for example, C++ debugging actions might be associated with
- an activity called "Developing C++").</p>
-
-<h3>Extensible Launch Modes</h3>
-<p>With the introduction of extensible launch modes, more than one launch delegate
- can exist for a launch configuration type. Releases prior to 3.0 only supported
- one launch delegate per launch configuration type. The method <code>ILaunchConfigurationType.getDelegate()</code>
- is now deprecated. The method <code>getDelegate(String mode)</code> should be
- used in its place to retrieve the launch delegate for a specific launch mode.
- The deprecated method has been changed to return the launch delegate for the
- <code>run</code> mode.</p>
-
-<h3>Launch Tabs &amp; Tab Groups</h3>
-<p>Launch tab groups and launch tabs are no longer notified when a launch completes.
- The method <code>launched(ILaunch)</code> in the interfaces <code>ILaunchConfigurationTab</code>
- and <code>ILaunchConfigurationTabGroup</code> has been deprecated and is no
- longer called. Relying on this method for launch function was always problematic,
- since tabs only exist when launching is performed from the launch dialog. Also,
- with the introduction of background launching, this method can no longer be
- called, as the launch dialog is be closed before the resulting launch object
- exists.</p>
-
-<h3>Perspective Switching</h3>
-<p>In prior releases, perspective switching was specified on a launch configuration,
- via the launch configuration attributes <code>ATTR_TARGET_DEBUG_PERSPECTIVE</code>
- and <code>ATTR_TARGET_RUN_PERSPECTIVE</code>. With the addition of extensible
- launch modes in 3.0, this approach no longer scales. Perspective switching is
- now specified on launch configuration type basis, per launch mode that a launch
- configuration type supports. API has been added to <code>DebugUITools</code>
- to set and get the perspective associated with a launch configuration type for
- a specific launch mode.</p>
-<p>An additional, optional, <code>launchMode</code> element has been added to
- the <code>launchConfigurationTabGroup</code> extension point, allowing a contributed
- tab group to specify a default perspective for a launch configuration type and
- mode.</p>
-<p>From the Eclipse user interface, users can edit the perspective associated
- with a launch configuration type by opening the launch configuration dialog,
- and selecting a launch configuration type node in the tree (rather than an individual
- configuration). A tab is displayed allowing the user to set a perspective with
- each supported launch mode.</p>
-
-<h3>Generic Console</h3>
-<p>With the work for the generic console support <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37263">
- (Bug 37263)</a>, the view id for the Eclipse (formerly debug) console has changed.
- This results in problems at startup such as "Could not restore workbench layout"
- with details that "Could not create view: org.eclipse.debug.ui.ConsoleView"
- for the particular perspective that contained reference to the old view id.
- The equivalent view id is now: "org.eclipse.ui.console.ConsoleView".<br>
- The generic console is available via the Window>Show View>Basic>Console and
- is used by the Eclipse debug and Ant integration. </p>
-
-<h3>Console Line Tracker Extension</h3>
-<p>A console line tracker (<code>IConsoleLineTracker</code>) can be notified when
- its associated console is closed (i.e. all of its streams are closed), by implementing
- the new interface <code>IConsoleLineTrackerExtension</code>. The notification
- indicates that no more output will be appended to the console.</p>
-
-<h3>Launch Configuration Tab Enhancements</h3>
-<p>Two methods have been added to the <code>ILaunchConfigurationTab</code> interface
- - activated and deactivated. These new life cycle methods are called when a
- tab is entered and exited respectively. Existing implementations of <code>ILaunchConfigurationTab</code>
- that subclass the abstract class provided by the debug plug-in (<code>AbstractLaunchConfigurationTab</code>)
- will maintain binary compatibility, as the methods have been added in the abstract
- class.</p>
-<p>In prior releases, a tab was sent the message <code>initializeFrom</code> when
- it was activated, and <code>performApply</code> when it was deactivated. In
- this way, the launch configuration tab framework provided inter-tab communication
- via a launch configuration (by updating the configuration with current attribute
- values when a tab is exited, and updating the newly entered tab). However, since
- many tabs do not perform inter-tab communication, this can be inefficient. As
- well, there was no way to distinguish between a tab being activated, and a tab
- displaying a selected launch configuration for the first time. The newly added
- methods allow tabs to distinguish between activation and initialization, and
- deactivation and saving current values. </p>
-<p>To avoid breaking the behavior of current tab implementations, the default
- implementation of <code>activated</code>, provided by the abstract tab, calls
- <code>initializeFrom</code>. And, the default implementation of <code>deactivated</code>
- calls <code>performApply</code>. Tabs wishing to take advantage of the new API
- should override these methods as required. Generally, for tabs that do not perform
- inter-tab communication, a correct implementation of these methods is to do
- nothing.</p>
-
-<h3>BreakpointManager Can Be Disabled</h3>
-<p>IBreakpointManager now defines the methods setEnabled(boolean) and isEnabled().
- When the breakpoint manager is disabled, debuggers should ignore all registered breakpoints.
- The debug platform also provides a new listener mechanism, IBreakpointManagerListener
- which allows clients to register with the breakpoint manager to be notified when its
- enablement changes.</p>
-<p>The Breakpoints view calls this API from a new toggle action that allows the user to
- "Skip All Breakpoints." Debuggers which do not honor the breakpoint manager's enablement
- will thus appear somewhat broken if the user tries to use this feature.</p>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/r3_1_changes.html b/org.eclipse.debug.core/r3_1_changes.html
deleted file mode 100644
index 428d3a4d7..000000000
--- a/org.eclipse.debug.core/r3_1_changes.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head>
-<title>3.0 Debug Platform Change Notes</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<h1>3.1 Debug Platform Change Notes</h1>
-<p>This document describes important changes in the 3.1 debug platform, relative
- to the 3.0 release.</p>
-
-<h2>New Features</h2>
-
-<h3> Breakpoint Groups</h3>
-<h3>Run To Line Handler</h3>
-<h2>Behavioral Changes</h2>
-<h3>Debug Event Dispatch</h3>
-<p>Debug event set listeners are notified of fired debug events asychronously
- in a different thread than the event is reported in.</p>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/schema/breakpoints.exsd b/org.eclipse.debug.core/schema/breakpoints.exsd
deleted file mode 100644
index 4b8205dc9..000000000
--- a/org.eclipse.debug.core/schema/breakpoints.exsd
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="breakpoints" name="Breakpoints"/>
- </appInfo>
- <documentation>
- This extension point defines a mechanism for defining new types of breakpoints.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="breakpoint" 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="breakpoint">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this breakpoint type.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="markerType" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified identifier (id) of the corresponding marker definition for breakpoints of this type.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;IBreakpoint&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.Breakpoint"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- specifies a user-presentable name for this breakpoint type. For example, &quot;Java Line Breakpoint&quot;. This attribute was added in 3.1 to support automatic grouping of breakpoints by breakpoint type. When this attribute is unspecified, breakpoints of this type cannot be automatically grouped by type.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a launch configuration type extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.breakpoints&quot;&gt;
- &lt;breakpoint
- id=&quot;com.example.ExampleBreakpoint&quot;
- markerType=&quot;com.example.ExampleBreakpointMarker&quot;
- class=&quot;com.example.ExampleBreakpointImpl&quot;&gt;
- &lt;/breakpoint&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified type of breakpoint is implemented by the class &quot;com.example.BreakpointImpl&quot;.
-There is an associated marker definition for &quot;com.example.ExampleBreakpointMarker&quot;, defining the attributes of this breakpoint.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.IBreakpoint&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/launchConfigurationComparators.exsd b/org.eclipse.debug.core/schema/launchConfigurationComparators.exsd
deleted file mode 100644
index 23a5a526b..000000000
--- a/org.eclipse.debug.core/schema/launchConfigurationComparators.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="launchConfigurationComparators" name="Launch Configuration Comparators"/>
- </appInfo>
- <documentation>
- This extension point provides a configurable mechanism for comparing specific attributes of a launch configuration.
-In general, launch configuration attributes can be compared for equality via the default implementation of &lt;samp&gt;java.lang.Object.equals(Object)&lt;/samp&gt;.
-However, attributes that require special handling should implement this extension point.
-For example, when an attribute is stored as XML, it is possible that two strings representing an equivalent attribute have different whitespace formatting.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="launchConfigurationComparator" 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="launchConfigurationComparator">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this extension.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="attribute" type="string" use="required">
- <annotation>
- <documentation>
- specifies the launch configuration attribute name that this comparator compares.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies a fully-qualified name of a class that implements &lt;code&gt;java.util.Comparator&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="java.util.Comparator"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a launch configuration comparator extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.launchConfigurationComparators&quot;&gt;
- &lt;launchConfigurationComparator
- id=&quot;com.example.ExampleIdentifier&quot;
- attribute=&quot;com.example.ExampleAttributeName&quot;
- class=&quot;com.example.ComparatorImplementation&quot;&gt;
- &lt;/launchConfigurationComparator&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified type of launch configuration comparator will be consulted when comparing the equality of attributes keyed with name &lt;samp&gt;com.example.ExampleAttributeName&lt;/samp&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully-qualified name of a Java class that implements the interface &lt;b&gt;java.util.Comparator&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/launchConfigurationTypes.exsd b/org.eclipse.debug.core/schema/launchConfigurationTypes.exsd
deleted file mode 100644
index 5a9314970..000000000
--- a/org.eclipse.debug.core/schema/launchConfigurationTypes.exsd
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="launchConfigurationTypes" name="Launch Configuration Types"/>
- </appInfo>
- <documentation>
- This extension point provides a configurable mechanism for launching applications.
-Each launch configuration type has a name, supports one or more modes (run and/or debug), and specifies a delegate
-responsible for the implementation of launching an application.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="launchConfigurationType" 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="launchConfigurationType">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="fileExtension" minOccurs="1" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this launch configuration type.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="delegate" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;ILaunchConfigurationDelegate&lt;/code&gt;.
-Launch configuration instances of this type will delegate to instances of this class to perform launching.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILaunchConfigurationDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="modes" type="string" use="required">
- <annotation>
- <documentation>
- specifies a comma-separated list of the modes this type of lauch configuration supports - &quot;run&quot; and/or &quot;debug&quot;.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- specifies a human-readable name for this type of launch configuration.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="public" type="boolean">
- <annotation>
- <documentation>
- specifies whether this launch configuration type is accessible by users. Defaults to &lt;code&gt;true&lt;/code&gt; if not specified.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="category" type="string">
- <annotation>
- <documentation>
- an optional attribute that specifies this launch configuration type&apos;s category. The default value is unspecified (&lt;code&gt;null&lt;/code&gt;). Categories are client defined. This attribute was added in the 2.1 release.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="sourcePathComputerId" type="string">
- <annotation>
- <documentation>
- The unique identifier of a sourcePathComputers extension that is used to compute a default source lookup path for launch configurations of this type
- </documentation>
- </annotation>
- </attribute>
- <attribute name="sourceLocatorId" type="string">
- <annotation>
- <documentation>
- The unique identifier of a sourceLocators extension that is used to create the source locator for sessions launched using launch configurations of this type
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="fileExtension">
- <complexType>
- <attribute name="extension" type="string" use="required">
- <annotation>
- <documentation>
- specifies a file extension that this launch configuration type can be used for.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="default" type="boolean">
- <annotation>
- <documentation>
- specifies whether this launch configuration type should be the default launch configuration type for the specified file extension. Defaults to &lt;code&gt;false&lt;/code&gt; if not specified.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a launch configuration type extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.launchConfigurationTypes&quot;&gt;
- &lt;launchConfigurationType
- id=&quot;com.example.ExampleIdentifier&quot;
- delegate=&quot;com.example.ExampleLaunchConfigurationDelegate&quot;
- modes=&quot;run,debug&quot;
- name=&quot;Example Application&quot;&gt;
- &lt;fileExtension extension=&quot;txt&quot; default=&quot;true&quot;/&gt;
- &lt;fileExtension extension=&quot;gif&quot; default=&quot;false&quot;/&gt;
- &lt;/launchConfigurationType&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified type of launch configuration supports both run and debug modes.
-The launch configuration is applicable to .txt and .gif files, and is the default launch configuration for .txt files.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;delegate&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.ILaunchConfigurationDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/launchDelegates.exsd b/org.eclipse.debug.core/schema/launchDelegates.exsd
deleted file mode 100644
index e7ec343f5..000000000
--- a/org.eclipse.debug.core/schema/launchDelegates.exsd
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="launchDelegates" name="Launch Delegates"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for contributing a launch delegate to an existing launch configuration type for one or more launch modes. Since launch modes are extensisble, it may be neccessary to contribute additional launch delegates to an existing launch configuration type. Each launch delegate is contributed for a specific launch configuration type. A launch delegate supports one or more launch modes, and specifies a delegate responsible for the implementation of launching.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="launchDelegate" 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="launchDelegate">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- </sequence>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this launch delegate.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="delegate" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;ILaunchConfigurationDelegate&lt;/code&gt;.
-Launch configuration instances of this delegate&apos;s type will delegate to instances of this class to perform launching.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILaunchConfigurationDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="modes" type="string" use="required">
- <annotation>
- <documentation>
- specifies a comma-separated list of the modes this lauch delegate supports.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="type" type="string" use="required">
- <annotation>
- <documentation>
- identifier of an existing launch configuration type that this launch delegate is capable of launching.
- </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 an example of a launch delegate extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.launchDelegates&quot;&gt;
- &lt;launchDelegate
- id=&quot;com.example.ExampleProfileDelegate&quot;
- delegate=&quot;com.example.ExampleProfileDelegate&quot;
- type=&quot;org.eclipse.jdt.launching.localJavaApplication&quot;
- modes=&quot;profile&quot;&gt;
- &lt;/launchDelegate&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified launch delegate is contributed to launch Java applications in profile mode.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;delegate&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.ILaunchConfigurationDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/launchModes.exsd b/org.eclipse.debug.core/schema/launchModes.exsd
deleted file mode 100644
index 96936b64e..000000000
--- a/org.eclipse.debug.core/schema/launchModes.exsd
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="launchModes" name="Launch Modes"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for contributing launch modes to the debug platform. The debug platform defines modes for &quot;run&quot;, &quot;debug&quot;, and &quot;profile&quot;.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="launchMode" 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="launchMode">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- </sequence>
- <attribute name="mode" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this launch mode. The launch modes contributed by the debug plaform are &quot;run&quot;, &quot;debug&quot;, and &quot;profile&quot;.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="label" type="string" use="required">
- <annotation>
- <documentation>
- A human-readable label that describes the launch mode
- </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 launch delegate extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.launchModes&quot;&gt;
- &lt;launchMode
- mode=&quot;profile&quot;
- label=&quot;Profile&quot;&gt;
- &lt;/launchMode&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the profile launch mode is contributed.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/launchers.exsd b/org.eclipse.debug.core/schema/launchers.exsd
deleted file mode 100644
index 2e21b120b..000000000
--- a/org.eclipse.debug.core/schema/launchers.exsd
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="launchers" name="Launcher (Obsolete)"/>
- </appInfo>
- <documentation>
- This extension point has been replaced by the launchConfigurationTypes extension point. Extensions of this type are obsolete as of release 2.0 and are ignored. This extension point was used to contribute launchers.
-A launcher was responsible for initiating a debug session
-or running a program and registering the result with the
-launch manager.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="launcher" 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="launcher">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="label" icon="icon"/>
- </appInfo>
- </annotation>
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- a unique identifier that can be used to reference
-this launcher.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- fully qualified name of the Java class that implements
-&lt;code&gt;org.eclipse.debug.core.model.ILauncherDelegate&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILauncherDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="modes" type="string" use="required">
- <annotation>
- <documentation>
- A comma separated list of modes this launcher supports.
-The two supported modes are &quot;run&quot; and &quot;debug&quot; -
-as defined in &lt;code&gt;org.eclipse.debug.core.ILaunchManager&lt;/code&gt;.
-A launcher may be capable of launching in one or both modes.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="label" type="string" use="required">
- <annotation>
- <documentation>
- a label to use for the launcher. This attribute is used by the debug UI.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="wizard" type="string">
- <annotation>
- <documentation>
- fully qualified name of the class that implements
-&lt;code&gt;org.eclipse.debug.ui.ILaunchWizard&lt;/code&gt;.
-This attribute is used by the debug UI. A launcher
-may contribute a wizard that allows users to configure
-and launch specific attributes.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.Wizard:org.eclipse.debug.ui.ILaunchWizard"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="public" type="boolean">
- <annotation>
- <documentation>
- whether a launcher is publically visible in the debug UI.
-If &lt;code&gt;true&lt;/code&gt;, the launcher will be available from the
-debug UI - the launcher will appear as a choice
-for a default launcher, launches created by this
-launcher will appear in the launch history, and the
-launcher will be available from the drop-down run/debug
-toolbar actions.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- a description of the launcher. Currently only used
-if the wizard attribute is specified.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="perspective" type="string">
- <annotation>
- <documentation>
- the identifier of the perspective that will be switched
-to on a successful launch. Default value is the
-identifier for the debug perspective. This attribute
-is used by the debug UI.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
- a relative path of an icon that will represent the launcher
-in the UI if specified.
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a launcher extension point:
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension
- point = &quot;org.eclipse.debug.core.launchers&quot;&gt;
- &lt;launcher
- id = &quot;com.example.ExampleLauncher&quot;
- class = &quot;com.example.launchers.ExampleLauncher&quot;
- modes = &quot;run, debug&quot;
- label = &quot;Example Launcher&quot;
- wizard = &quot;com.example.launchers.ui.ExampleLaunchWizard&quot;
- public = &quot;true&quot;
- description = &quot;Launches example programs&quot;
- perspective= &quot;com.example.JavaPerspective&quot;&gt;
- &lt;/launcher&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-In the example above, the specified launcher supports
-both run and debug modes. Following a successful launch,
-the debug UI will change to the Java perspective. When
-the debug UI presents the user with a list of launchers
-to choose from, &quot;Example Launcher&quot; will appear as one of
-the choices with the &quot;Launches example programs&quot; as the
-description, and the wizard specified by
-&lt;samp&gt;com.example.launchers.ui.ExampleLaunchWizard&lt;/samp&gt;
-will be used to configure any launch specific details.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;samp&gt;class&lt;/samp&gt; must be a fully
-qualified class name of a Java class that implements
-the interface
-&lt;samp&gt;org.eclipse.debug.core.ILauncherDelegate&lt;/samp&gt;.
-Value of the attribute &lt;samp&gt;wizard&lt;/samp&gt; must be a
-fully qualified class name of a Java class that
-implements &lt;samp&gt;org.eclipse.debug.ui.ILaunchWizard&lt;/samp&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/logicalStructureProviders.exsd b/org.eclipse.debug.core/schema/logicalStructureProviders.exsd
deleted file mode 100644
index b5861c68f..000000000
--- a/org.eclipse.debug.core/schema/logicalStructureProviders.exsd
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="logicalStructureTypeProviders" name="%logicalStructureTypeProvidersExtensionPointName"/>
- </appInfo>
- <documentation>
- This extension point allows contributors to provide multiple logical structure types for a value.
-This is an extension of the logical structure support provided by the extension point &lt;code&gt;org.eclipse.debug.core.logicalStructureTypes&lt;/code&gt;, which allows one logical structure type per value.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="logicalStructureProvider" 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>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="logicalStructureProvider">
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- fully qualified name of a Java class that implements &lt;code&gt;ILogicalStructureProvider&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.internal.core.ILogicalStructureProvider"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="modelIdentifier" type="string" use="required">
- <annotation>
- <documentation>
- identifier of the debug model this logical structure provider is associated with
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a logical structure type extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.logicalStructureProviders&quot;&gt;
- &lt;logicalStructureProvider
- class=&quot;com.example.ExampleLogicalStructureProvider&quot;
- modelIdentifier=&quot;com.example.debug.model&quot;&gt;
- &lt;/logicalStructureProvider&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified logical structure provider will be consulted for alternative logical structures for values from the &lt;code&gt;com.example.debug.model&lt;/code&gt; debug model as they are displayed in the variables view.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.ILogicalStructureProvider&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/logicalStructureTypes.exsd b/org.eclipse.debug.core/schema/logicalStructureTypes.exsd
deleted file mode 100644
index 62ada8180..000000000
--- a/org.eclipse.debug.core/schema/logicalStructureTypes.exsd
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="logicalStructureTypes" name="Logical Structure Types"/>
- </appInfo>
- <documentation>
- This extension point allows debuggers to present alternative logical structures of values. Often, complex data structures are more convenient to navigate in terms of their logical structure, rather than in terms of their implementation. For example, no matter how a list is implemented (linked, array, etc.), a user may simply want to see the elements in the list in terms of an ordered collection. This extension point allows the contribution of logical structure types, to provide translations from a raw implementation value to a logical value.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="logicalStructureType" 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="logicalStructureType">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- a unique identifier for this logical structure type
- </documentation>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- a description of this logical structure. Since 3.1, this attribute is optional. When unspecified, a logical structure type delegate must also implement &lt;code&gt;ILogicalStructureTypeDelegate2&lt;/code&gt; to provide descriptions for values that logical structures are provided for.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- fully qualified name of a Java class that implements &lt;code&gt;ILogicalStructureTypeDelegate&lt;/code&gt;. The class may optionally implement &lt;code&gt;ILogicalStructureTypeDelegate2&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.ILogicalStructureTypeDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="modelIdentifier" type="string" use="required">
- <annotation>
- <documentation>
- identifier of the debug model this logical structure type is associated with
- </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 an example of a logical structure type extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.logicalStructureTypes&quot;&gt;
- &lt;logicalStructureType
- id=&quot;com.example.ExampleLogicalStructure&quot;
- class=&quot;com.example.ExampleLogicalStructureDelegate&quot;
- modelIdentifier=&quot;com.example.debug.model&quot;
- description=&quot;Ordered Collection&quot;&gt;
- &lt;/logicalStructureType&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified logical structure type will be consulted for alternative logical values for values from the &lt;code&gt;com.example.debug.model&lt;/code&gt; debug model as they are displayed in the variables view.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.ILogicalStructureTypeDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/processFactories.exsd b/org.eclipse.debug.core/schema/processFactories.exsd
deleted file mode 100644
index 6ffe3b8c3..000000000
--- a/org.eclipse.debug.core/schema/processFactories.exsd
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="processFactories" name="Process Factories"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for specifying a process factory to be used with a launch configuration to create the appropriate instance of &lt;b&gt;IProcess&lt;/b&gt;.
- The launch configuration will require the &lt;b&gt;DebugPlugin.ATTR_PROCESS_FACTORY_ID&lt;/b&gt; attribute set to the appropriate process factory ID that will be
- used to create the &lt;b&gt;IProcess&lt;/b&gt;
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="processFactory" 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="processFactory">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- </annotation>
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this process factory.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;IProcessFactory&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.IProcessFactory"/>
- </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 process factory extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.processFactories&quot;&gt;
- &lt;processFactory
- id=&quot;com.example.ExampleIdentifier&quot;
- class=&quot;com.example.ExampleProcessFactory&quot;&gt;
- &lt;/processFactory&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.IProcessFactory&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/sourceContainerTypes.exsd b/org.eclipse.debug.core/schema/sourceContainerTypes.exsd
deleted file mode 100644
index 5631df75a..000000000
--- a/org.eclipse.debug.core/schema/sourceContainerTypes.exsd
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="sourceContainerTypes" name="Source Container Types"/>
- </appInfo>
- <documentation>
- This extension point allows for an extensible set of source container types to be contributed by the debug platform
- source lookup facilities.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="sourceContainerType" 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="sourceContainerType">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- The unique id used to refer to this type
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- The name of this source container type used for presentation purposes.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- A class that implements &lt;code&gt;ISourceContainerTypeDelegate&lt;/code&gt;
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.internal.core.sourcelookup.ISourceContainerTypeDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- A short description of this source container for presentation purposes.
- </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="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a source container type definition:
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.debug.core.sourceContainerTypes&quot;&gt;
- &lt;sourceContainerType
- name=&quot;Project&quot;
- class=&quot;org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType&quot;
- id=&quot;org.eclipse.debug.core.containerType.project&quot;
- description=&quot;A project in the workspace&quot;&gt;
- &lt;/sourceContainerType&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;ISourceContainerType&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2003, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/sourceLocators.exsd b/org.eclipse.debug.core/schema/sourceLocators.exsd
deleted file mode 100644
index b3bb057f5..000000000
--- a/org.eclipse.debug.core/schema/sourceLocators.exsd
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="sourceLocators" name="Source Locators"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism specifying a source locator to be used with a launch configuration.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="sourceLocator" 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="sourceLocator">
- <annotation>
- <appInfo>
- <meta.element labelAttribute="name"/>
- </appInfo>
- </annotation>
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this source locator.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;IPersistableSourceLocator&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.IPersistableSourceLocator"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- a human-readable name, describing the type of this source locator.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a source locator extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.sourceLocators&quot;&gt;
- &lt;sourceLocator
- id=&quot;com.example.ExampleIdentifier&quot;
- class=&quot;com.example.ExampleSourceLocator&quot;
- name=&quot;Example Source Locator&quot;&gt;
- &lt;/sourceLocator&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.IPersistableSourceLocator&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/sourcePathComputers.exsd b/org.eclipse.debug.core/schema/sourcePathComputers.exsd
deleted file mode 100644
index 2df990a8d..000000000
--- a/org.eclipse.debug.core/schema/sourcePathComputers.exsd
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="sourcePathComputers" name="Source Path Computers"/>
- </appInfo>
- <documentation>
- Defines an extension point to register a computer that can describe a default source lookup path for
- a launch configuration. Source path computers are associated with launch configuration types via the
- launchConfigurationTypes extension point. As well, a source path computer can be associated with a
- specific launch configuration via the launch configuration attribute ATTR_SOURCE_PATH_COMPUTER_ID.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="sourcePathComputer" 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="sourcePathComputer">
- <annotation>
- <documentation>
- Defines an extension point to register a computer that can describe a default source lookup path
- for a launch configuration.
- </documentation>
- </annotation>
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- The unique id used to refer to this computer.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- A class that implements &lt;code&gt;ISourcePathComputerDelegate&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.internal.core.sourcelookup.ISourcePathComputerDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- Following is an example source path computer definition:
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.sourcePathComputers&quot;&gt;
- &lt;sourcePathComputer
- id=&quot;org.eclipse.example.exampleSourcePathComputer&quot;
- class=&quot;org.eclipse.example.SourcePathComputer&quot;&gt;
- &lt;/sourcePathComputer&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;ISourcePathComputer&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2003, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/statusHandlers.exsd b/org.eclipse.debug.core/schema/statusHandlers.exsd
deleted file mode 100644
index a3415daa4..000000000
--- a/org.eclipse.debug.core/schema/statusHandlers.exsd
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="statusHandlers" name="Status Handlers"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for separating the generation and resolution of an error.
-The interaction between the source of the error and the resolution is client-defined.
-It is a client responsibility to look up and delegate to status handlers when an error condition occurs.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="statusHandler" 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="statusHandler">
- <complexType>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this status handler.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements &lt;code&gt;IStatusHandler&lt;/code&gt;.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.IStatusHandler"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="plugin" type="string" use="required">
- <annotation>
- <documentation>
- Plug-in identifier that corresponds to the plug-in of the status this handler is registered for. (i.e. &lt;code&gt;IStatus.getPlugin()&lt;/code&gt;).
- </documentation>
- </annotation>
- </attribute>
- <attribute name="code" type="string" use="required">
- <annotation>
- <documentation>
- specifies the status code this handler is registered for.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a status handler extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.debug.core.statusHandlers&quot;&gt;
- &lt;statusHandler
- id=&quot;com.example.ExampleIdentifier&quot;
- class=&quot;com.example.ExampleStatusHandler&quot;
- plugin=&quot;com.example.ExamplePluginId&quot;
- code=&quot;123&quot;&gt;
- &lt;/statusHandler&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-
-In the example above, the specified status handler will be registered for to handle status objects with a plug-in identifier of
-&lt;samp&gt;com.example.ExamplePluginId&lt;/samp&gt; and a status code of &lt;samp&gt;123&lt;/samp&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.IStatusHandler&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/schema/watchExpressionDelegates.exsd b/org.eclipse.debug.core/schema/watchExpressionDelegates.exsd
deleted file mode 100644
index fa14bfa45..000000000
--- a/org.eclipse.debug.core/schema/watchExpressionDelegates.exsd
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.debug.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.debug.core" id="watchExpressionDelegates" name="watchExpressionDelegates"/>
- </appInfo>
- <documentation>
- This extension provides a mechanism for providing delegates to evaluate watch expressions on a per debug model basis. Watch expression delegates perform evaluations for watch expressions and report the results asynchronously.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="watchExpressionDelegate" 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="watchExpressionDelegate">
- <complexType>
- <attribute name="debugModel" type="string" use="required">
- <annotation>
- <documentation>
- specifies the id of the debug model that this delegate provides evaluations for
- </documentation>
- </annotation>
- </attribute>
- <attribute name="delegateClass" type="string" use="required">
- <annotation>
- <documentation>
- specifies a Java class which implements &lt;code&gt;org.eclipse.debug.core.model.IWatchExpressionDelegate&lt;/code&gt;, which is used to evaluate the value of an expression.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.debug.core.model.IWatchExpressionDelegate"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- &lt;pre&gt;
-The following is the definition of a watch expression delegate for the com.example.foo plug-in:
- &lt;extension point=&quot;org.eclipse.debug.core.watchExpressionDelegates&quot;&gt;
- &lt;watchExpressionDelegate
- debugModel=&quot;org.eclipse.jdt.debug&quot;
- delegateClass=&quot;org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate&quot;/&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;delegateClass&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.core.model.IWatchExpressionDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2003 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.debug.core/scripts/exportplugin.xml b/org.eclipse.debug.core/scripts/exportplugin.xml
deleted file mode 100644
index c29eada53..000000000
--- a/org.eclipse.debug.core/scripts/exportplugin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.debug.core Eclipse plugin
- along with other important plugin files to the "plugin-export" subdirectory
- of the target Eclipse installation -->
-<project name="Export debug.core" default="export" basedir="..">
-
- <!-- Set the timestamp and important properties -->
- <target name="init">
- <tstamp/>
- <property name="destdir" value="../../plugin-export" />
- <property name="dest" value="${destdir}/org.eclipse.debug.core_3.0.0" />
- </target>
-
- <!-- Create the jar of .class files, and copy other important files to export dir -->
- <target name="export" depends="init">
- <mkdir dir="${destdir}" />
- <delete dir="${dest}" />
- <mkdir dir="${dest}" />
- <jar
- jarfile="${dest}/dtcore.jar"
- basedir="bin"
- />
- <!-- Create the source zip -->
- <zip zipfile="${dest}/dtcoresrc.zip">
- <fileset dir="core"/>
- </zip>
- <copy file="plugin.xml" todir="${dest}"/>
- <copy file="plugin.properties" todir="${dest}"/>
- <copy file=".classpath" todir="${dest}"/>
- <copy file=".options" todir="${dest}"/>
- </target>
-
-</project>
diff --git a/org.eclipse.ui.console/.classpath b/org.eclipse.ui.console/.classpath
deleted file mode 100644
index 065ac06e1..000000000
--- a/org.eclipse.ui.console/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.ui.console/.cvsignore b/org.eclipse.ui.console/.cvsignore
deleted file mode 100644
index ba077a403..000000000
--- a/org.eclipse.ui.console/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.ui.console/.options b/org.eclipse.ui.console/.options
deleted file mode 100644
index d7752adbc..000000000
--- a/org.eclipse.ui.console/.options
+++ /dev/null
@@ -1 +0,0 @@
-# Debugging options for the org.eclipse.ui.console plugin.
diff --git a/org.eclipse.ui.console/.project b/org.eclipse.ui.console/.project
deleted file mode 100644
index aa92a70c1..000000000
--- a/org.eclipse.ui.console/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ui.console</name>
- <comment></comment>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e488162ed..000000000
--- a/org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 01 18:52:47 GMT-08:00 2004
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-eclipse.preferences.version=1
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
diff --git a/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs b/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index de0a1d23a..000000000
--- a/org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:35:45 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.console/about.html b/org.eclipse.ui.console/about.html
deleted file mode 100644
index 6b68e1890..000000000
--- a/org.eclipse.ui.console/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>8th September, 2003</p>
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;). A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.ui.console/build.properties b/org.eclipse.ui.console/build.properties
deleted file mode 100644
index d166e5892..000000000
--- a/org.eclipse.ui.console/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = icons/,\
- .options,\
- plugin.xml,\
- plugin.properties,\
- *.jar,\
- about.html
-
-source.console.jar src/
-src.includes=about.html
diff --git a/org.eclipse.ui.console/hglegal2003.htm b/org.eclipse.ui.console/hglegal2003.htm
deleted file mode 100644
index 47c8540c8..000000000
--- a/org.eclipse.ui.console/hglegal2003.htm
+++ /dev/null
@@ -1,14 +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">
- <LINK REL="stylesheet" HREF="book.css" CHARSET="ISO-8859-1" TYPE="text/css">
- <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
deleted file mode 100644
index 6bc10f9d0..000000000
--- a/org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
deleted file mode 100644
index 68fd6cf39..000000000
--- a/org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/clcl16/pin.gif b/org.eclipse.ui.console/icons/full/clcl16/pin.gif
deleted file mode 100644
index ec50b70fa..000000000
--- a/org.eclipse.ui.console/icons/full/clcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/cview16/console_view.gif b/org.eclipse.ui.console/icons/full/cview16/console_view.gif
deleted file mode 100644
index a598f6082..000000000
--- a/org.eclipse.ui.console/icons/full/cview16/console_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
deleted file mode 100644
index 9ff641606..000000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
deleted file mode 100644
index b77647893..000000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/pin.gif b/org.eclipse.ui.console/icons/full/dlcl16/pin.gif
deleted file mode 100644
index 61615d57d..000000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif b/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
deleted file mode 100644
index 559e46298..000000000
--- a/org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif b/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
deleted file mode 100644
index 6bc10f9d0..000000000
--- a/org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif b/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
deleted file mode 100644
index 68fd6cf39..000000000
--- a/org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/new_con.gif b/org.eclipse.ui.console/icons/full/elcl16/new_con.gif
deleted file mode 100644
index 7aea894d0..000000000
--- a/org.eclipse.ui.console/icons/full/elcl16/new_con.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/pin.gif b/org.eclipse.ui.console/icons/full/elcl16/pin.gif
deleted file mode 100644
index ec50b70fa..000000000
--- a/org.eclipse.ui.console/icons/full/elcl16/pin.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif b/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
deleted file mode 100644
index 2cd9c5444..000000000
--- a/org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/icons/full/eview16/console_view.gif b/org.eclipse.ui.console/icons/full/eview16/console_view.gif
deleted file mode 100644
index a598f6082..000000000
--- a/org.eclipse.ui.console/icons/full/eview16/console_view.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/ngibmcpy2003.gif b/org.eclipse.ui.console/ngibmcpy2003.gif
deleted file mode 100644
index c786e43e1..000000000
--- a/org.eclipse.ui.console/ngibmcpy2003.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.console/plugin.properties b/org.eclipse.ui.console/plugin.properties
deleted file mode 100644
index 1c77c1e9e..000000000
--- a/org.eclipse.ui.console/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Console
-providerName=Eclipse.org
-ConsoleView.name=Console
-
-ViewCommand.consoleView.name=Console
-ViewCommand.consoleView.description=Show the Console view
-
-ConsolePatternMatchListenerName= Console Pattern Match Listeners
-ConsolePageParticipantName= Console Page Participants
-
-ConsoleFactoryName= Console Factories
-
-consoleViewConsoleFactory.name=New Console View \ No newline at end of file
diff --git a/org.eclipse.ui.console/plugin.xml b/org.eclipse.ui.console/plugin.xml
deleted file mode 100644
index c842c0d33..000000000
--- a/org.eclipse.ui.console/plugin.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.ui.console"
- name="%pluginName"
- version="3.1.0"
- provider-name="%providerName"
- class="org.eclipse.ui.console.ConsolePlugin">
-
- <runtime>
- <library name="console.jar">
- <export name="*"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.jface.text"/>
- <import plugin="org.eclipse.ui.workbench.texteditor"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.core.expressions"/>
- </requires>
- <extension-point id="consolePatternMatchListeners" name="%ConsolePatternMatchListenerName" schema="schema/consolePatternMatchListeners.exsd"/>
- <extension-point id="consolePageParticipants" name="%ConsolePageParticipantName" schema="schema/consolePageParticipants.exsd"/>
- <extension-point id="consoleFactories" name="%ConsoleFactoryName" schema="schema/consoleFactories.exsd"/>
-
-
- <extension
- point="org.eclipse.ui.views">
- <view
- allowMultiple="true"
- class="org.eclipse.ui.internal.console.ConsoleView"
- icon="icons/full/cview16/console_view.gif"
- category="org.eclipse.ui"
- name="%ConsoleView.name"
- id="org.eclipse.ui.console.ConsoleView">
- </view>
- </extension>
-<!-- commands and their bindings
-NOTE:
-M1 = CTRL/COMMAND
-M2 = SHIFT
-M3 = ALT
-M4 = Platform-specific fourth key
--->
- <extension
- point="org.eclipse.ui.commands">
- <command
- name="%ViewCommand.consoleView.name"
- description="%ViewCommand.consoleView.description"
- categoryId="org.eclipse.ui.category.views"
- id="org.eclipse.ui.console.ConsoleView">
- </command>
- <keyBinding
- keySequence="M3+M2+Q C"
- contextId="org.eclipse.ui.globalScope"
- commandId="org.eclipse.ui.console.ConsoleView"
- keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration">
- </keyBinding>
- </extension>
- <extension
- point="org.eclipse.core.expressions.propertyTesters">
- <propertyTester
- namespace="org.eclipse.ui.console"
- type="org.eclipse.ui.console.IConsole"
- class="org.eclipse.ui.internal.console.ConsoleTypePropertyTester"
- properties="consoleTypeTest"
- id="org.eclipse.ui.console.ConsoleTypePropertyTester"/>
- </extension>
- <extension
- point="org.eclipse.ui.console.consoleFactories">
- <consoleFactory
- label="%consoleViewConsoleFactory.name"
- class="org.eclipse.ui.internal.console.ConsoleViewConsoleFactory"/>
- </extension>
-
-</plugin>
diff --git a/org.eclipse.ui.console/schema/consoleFactories.exsd b/org.eclipse.ui.console/schema/consoleFactories.exsd
deleted file mode 100644
index e6560040d..000000000
--- a/org.eclipse.ui.console/schema/consoleFactories.exsd
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.console">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.ui.console" id="consoleFactories" name="Console Factories"/>
- </appInfo>
- <documentation>
- A console factory creates or activates a console, and appears as action in the console view.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="consoleFactory"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </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="consoleFactory">
- <complexType>
- <attribute name="label" type="string" use="required">
- <annotation>
- <documentation>
- action label to appear in menu
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
- optional plug-in relative path to an icon to appear with the action
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- class implementing &lt;code&gt;org.eclipse.ui.console.IConsoleFactory&lt;/code&gt; that will be called when the associated action is invoked
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a console factory extension point:
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.ui.console.consoleFactories&quot;&gt;
- &lt;consoleFactory
- label=&quot;Command Console&quot;
- class=&quot;com.example.CommandConsoleFactory&quot;
- icon=&quot;icons/cmd_console.gif&quot;&gt;
- &lt;/consoleFactory&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-This extension will cause an entry to appear in the console view&apos;s &lt;b&gt;Open Console&lt;/b&gt; drop-down menu labelled &lt;b&gt;Command Console&lt;/b&gt; with the specified icon. When the action is invoked by a user, the method &lt;b&gt;openConsole()&lt;/b&gt; on the class &lt;b&gt;com.example.CommandConsoleFactory&lt;/b&gt; will be called. The factory can the decide to create a new console or activate an existing console.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.ui.console.IConsoleFactory&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- The console plug-in provides a console factory to open a new console view.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.console/schema/consolePageParticipants.exsd b/org.eclipse.ui.console/schema/consolePageParticipants.exsd
deleted file mode 100644
index 905d92f15..000000000
--- a/org.eclipse.ui.console/schema/consolePageParticipants.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.console">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.ui.console" id="consolePageParticipants" name="Console Page Participants"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for contributing a console page participant. The page participant will be able to modify the console&apos;s context menu and tool bar.
- </documentation>
- </annotation>
-
- <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="consolePageParticipant"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
- a fully qualified identifier of the target extension point
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- an optional identifier of the extension instance
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- an optional name of the extension instance
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="consolePageParticipant">
- <complexType>
- <sequence>
- <element ref="enablement"/>
- </sequence>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this Console Page Participant
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies a fully qualified name of a Java class that implements &lt;code&gt;IConsolePageParticipant&lt;/code&gt;
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a console page participant extension point:
-&lt;pre&gt;
- &lt;extension
- point=&quot;org.eclipse.ui.console.consolePageParticipant&quot;&gt;
- &lt;consolePageParticipant
- class=&quot;com.example.ExamplePageParticipant&quot;
- id=&quot;com.example.ExamplePageParticipant&quot;&gt;
- &lt;enablement&gt;
- &lt;instanceof value=&quot;com.example.ExampleConsole&quot;/&gt;
- &lt;/enablement&gt;
- &lt;/consolePageParticipant&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-In the above example, the contributed console page participant will be used for all consoles of type &quot;com.example.ExampleConsole.&quot;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.debug.ui.console.IConsolePageParticipantDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd b/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
deleted file mode 100644
index 7bb88393a..000000000
--- a/org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.console">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.ui.console" id="consolePatternMatchListeners" name="Console Pattern Match Listeners"/>
- </appInfo>
- <documentation>
- Provides regular expression matching for text consoles. Pattern match listeners can be contributed to specific consoles by using an enablement expression. Listeners are notified as matches are found.
- </documentation>
- </annotation>
-
- <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="consolePatternMatchListener" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
- a fully qualified identifier of the target extension point
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- an optional identifier of the extension instance
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- an optional name of the extension instance
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="consolePatternMatchListener">
- <complexType>
- <sequence>
- <element ref="enablement"/>
- </sequence>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique identifier for this console pattern match listener
- </documentation>
- </annotation>
- </attribute>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
- specifies a fully qualified name of a Java class that implements &lt;code&gt;IPatternMatchListenerDelegate&lt;/code&gt;
- </documentation>
- </annotation>
- </attribute>
- <attribute name="regex" type="string" use="required">
- <annotation>
- <documentation>
- specifies the regular expression to be matched
- </documentation>
- </annotation>
- </attribute>
- <attribute name="flags" type="string">
- <annotation>
- <documentation>
- specifies flags to be used when matching the pattern. Acceptable flags are defined in &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; and should be specified as Strings (eg &quot;Pattern.MULTILINE&quot; or &quot;MULTILINE&quot;)
- </documentation>
- </annotation>
- </attribute>
- <attribute name="qualifier" type="string">
- <annotation>
- <documentation>
- a simple regular expression used to identify a line that may contain this pattern match listener&apos;s complete regular expression &lt;code&gt;regex&lt;/code&gt;. When a line is found containing this expression, a search is performed from the beginning of the line for this pattern matcher&apos;s complete &lt;code&gt;regex&lt;/code&gt;. Use of this attribute is optional but can greatly improve performance as lines not containing this expression are disqualified from the search.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.1
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a console pattern match listener extension point:
-&lt;pre&gt;
- &lt;extension
- point=&quot;org.eclipse.ui.console.consolePatternMatchListener&quot;&gt;
- &lt;consolePatternMatchListener
- class=&quot;com.example.ExampleConsolePatternMatcher&quot;
- id=&quot;com.example.ExampleConsolePatternMatcher&quot;
- regex=&quot;.*foo.*&quot;&gt;
- &lt;enablement&gt;
- &lt;test property=&quot;org.eclipse.ui.console.consoleTypeTest&quot; value=&quot;exampleConsole&quot;/&gt;
- &lt;/enablement&gt;
- &lt;/consolePatternMatchListener&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-In the above example, the contributed console pattern matcher will be used for consoles with a type of &quot;exampleConsole.&quot;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that implements the interface &lt;b&gt;org.eclipse.ui.console.IPatternMatchListenerDelegate&lt;/b&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- The console plug-in provides a console type property tester for enablement expressions that tests the value of &lt;code&gt;IConsole.getType()&lt;/code&gt;. The property tester&apos;s identifier is &lt;code&gt;org.eclipse.ui.console.consoleTypeTest&lt;/code&gt;.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.ui.console/scripts/exportplugin.xml b/org.eclipse.ui.console/scripts/exportplugin.xml
deleted file mode 100644
index af246f1b1..000000000
--- a/org.eclipse.ui.console/scripts/exportplugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.ui.console Eclipse plugin
- along with other important plugin files to the "plugin-export" subdirectory
- of the target Eclipse installation -->
-<project name="Export ui.console" default="export" basedir="..">
-
- <!-- Set the timestamp and important properties -->
- <target name="init">
- <tstamp/>
- <property name="destdir" value="../../plugin-export" />
- <property name="dest" value="${destdir}/org.eclipse.ui.console_3.0.0" />
- </target>
-
- <!-- Create the jar of .class files, and copy other important files to export dir -->
- <target name="export" depends="init">
- <mkdir dir="${destdir}" />
- <delete dir="${dest}" />
- <mkdir dir="${dest}" />
- <jar
- jarfile="${dest}/console.jar"
- basedir="bin"
- />
- <!-- Create the source zip -->
- <zip zipfile="${dest}/consolesrc.zip">
- <fileset dir="src"/>
- </zip>
- <copy file="plugin.xml" todir="${dest}"/>
- <copy file="plugin.properties" todir="${dest}"/>
- <copy file=".classpath" todir="${dest}"/>
- <copy file=".options" todir="${dest}"/>
- <copy todir="${dest}/icons">
- <fileset dir="icons" />
- </copy>
- </target>
-
-</project>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
deleted file mode 100644
index 356ee4893..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-
-/**
- * Common function for consoles.
- * <p>
- * Clients implementing consoles should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractConsole implements IConsole {
-
- // property listeners
- private ListenerList fListeners;
-
- /**
- * Console name
- */
- private String fName = null;
-
- /**
- * Console image descriptor
- */
- private ImageDescriptor fImageDescriptor = null;
-
- /**
- * Console type identifier
- */
- private String fType = null;
-
- /**
- * Used to notify this console of lifecycle methods <code>init()</code>
- * and <code>dispose()</code>.
- */
- class Lifecycle implements IConsoleListener {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
- */
- public void consolesAdded(IConsole[] consoles) {
- for (int i = 0; i < consoles.length; i++) {
- IConsole console = consoles[i];
- if (console == AbstractConsole.this) {
- initialize();
- }
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
- */
- public void consolesRemoved(IConsole[] consoles) {
- for (int i = 0; i < consoles.length; i++) {
- IConsole console = consoles[i];
- if (console == AbstractConsole.this) {
- ConsolePlugin.getDefault().getConsoleManager().removeConsoleListener(this);
- destroy();
- }
- }
- }
- }
-
- /**
- * Notifies listeners of property changes, handling any exceptions
- */
- class PropertyNotifier implements ISafeRunnable {
-
- private IPropertyChangeListener fListener;
- private PropertyChangeEvent fEvent;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, ConsoleMessages.getString("AbstractConsole.0"), exception); //$NON-NLS-1$
- ConsolePlugin.log(status);
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- fListener.propertyChange(fEvent);
- }
-
- /**
- * Notifies listeners of the property change
- *
- * @param event the event that describes the property that has changed
- */
- public void notify(PropertyChangeEvent event) {
- if (fListeners == null) {
- return;
- }
- fEvent = event;
- Object[] copiedListeners= fListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IPropertyChangeListener)copiedListeners[i];
- Platform.run(this);
- }
- fListener = null;
- }
- }
-
- /**
- * Constructs a new console with the given name and image.
- *
- * @param name console name, cannot be <code>null</code>
- * @param imageDescriptor image descriptor, or <code>null</code> if none
- * @param autoLifecycle whether this console's lifecycle methods should be called
- * automatically when it is added (<code>initialize()</code>) and removed
- * (<code>destroy()</code>) from the console manager. When <code>false</code>,
- * clients are responsible for calling the lifecycle methdods.
- * @since 3.1
- */
- public AbstractConsole(String name, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
- this(name, null, imageDescriptor, autoLifecycle);
- }
-
- /**
- * Constructs a new console with the given name, type, image and lifecycle.
- *
- * @param name console name, cannot be <code>null</code>
- * @param consoleType console type identifier or <code>null</code>
- * @param imageDescriptor image descriptor, or <code>null</code> if none
- * @param autoLifecycle whether this console's lifecycle methods should be called
- * automatically when it is added (<code>initialize()</code>) and removed
- * (<code>destroy()</code>) from the console manager. When <code>false</code>,
- * clients are responsible for calling the lifecycle methdods.
- * @since 3.1
- */
- public AbstractConsole(String name, String type, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
- setName(name);
- setType(type);
- setImageDescriptor(imageDescriptor);
- if (autoLifecycle) {
- ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(new Lifecycle());
- }
- }
-
- /**
- * Constructs a new console with the given name and image. The console's lifecycle
- * methods <code>init()</code> and <code>dispose()</code> will be called when the
- * console is added and removed from the console manager.
- *
- * @param name console name, cannot be <code>null</code>
- * @param imageDescriptor image descriptor, or <code>null</code> if none
- */
- public AbstractConsole(String name, ImageDescriptor imageDescriptor) {
- this(name, imageDescriptor, true);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#getName()
- */
- public String getName() {
- return fName;
- }
-
- /**
- * Sets the name of this console to the specified value and notifies
- * property listeners of the change.
- *
- * @param name the new name
- */
- protected void setName(String name) {
- String old = fName;
- fName = name;
- firePropertyChange(this, IBasicPropertyConstants.P_TEXT, old, name);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#getImageDescriptor()
- */
- public ImageDescriptor getImageDescriptor() {
- return fImageDescriptor;
- }
-
- /**
- * Sets the image descriptor for this console to the specified value and notifies
- * property listeners of the change.
- *
- * @param imageDescriptor the new image descriptor
- */
- protected void setImageDescriptor(ImageDescriptor imageDescriptor) {
- ImageDescriptor old = fImageDescriptor;
- fImageDescriptor =imageDescriptor;
- firePropertyChange(this, IBasicPropertyConstants.P_IMAGE, old, imageDescriptor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
- */
- public void addPropertyChangeListener(IPropertyChangeListener listener) {
- if (fListeners == null) {
- fListeners = new ListenerList();
- }
- fListeners.add(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
- */
- public void removePropertyChangeListener(IPropertyChangeListener listener) {
- if (fListeners != null) {
- fListeners.remove(listener);
- }
- }
-
- /**
- * Notify all listeners that the given property has changed.
- *
- * @param source the object on which a property has changed
- * @param property identifier of the property that has changed
- * @param oldValue the old value of the property, or <code>null</code>
- * @param newValue the new value of the property, or <code>null</code>
- */
- public void firePropertyChange(Object source, String property, Object oldValue, Object newValue) {
- if (fListeners == null) {
- return;
- }
- PropertyNotifier notifier = new PropertyNotifier();
- notifier.notify(new PropertyChangeEvent(source, property, oldValue, newValue));
- }
-
- /**
- * Initializes this console. This method should only be called by clients managing a
- * console's lifecycle, otherwise this method will be called automatically when this console
- * is added to the console manager. The method is called once to initialize this console,
- * marking the beginning of its lifecycle.
- *
- * @since 3.1
- */
- public final void initialize() {
- init();
- }
-
- /**
- * Called when this console is added to the console manager. Default
- * implementation does nothing. Subclasses may override.
- * <p>
- * Since 3.1, this method is only called automatically if this console was
- * created with an automatic lifecycle.
- * </p>
- */
- protected void init() {
- }
-
- /**
- * Disposes this console. This method should only be called by clients managing a
- * console's lifecycle, otherwise this method will be called automatically when this
- * console is removed from the console manager. The method is called once to dispose
- * this console, afterwhich this console will no longer be used.
- *
- * @since 3.1
- */
- public final void destroy() {
- dispose();
- }
-
- /**
- * Called when this console is removed from the console manager. Default
- * implementation does nothing. Subclasses may override.
- * <p>
- * Since 3.1, this methods is only called automatically if this console was
- * created with an automatic lifecycle.
- * </p>
- */
- protected void dispose() {
- }
-
- /**
- * Shows this console in all console views. This console will be become visible
- * if another console is currently pinned.
- *
- * @since 3.1
- */
- public void activate() {
- ConsolePlugin.getDefault().getConsoleManager().showConsoleView(this);
- }
-
- /**
- * Sets this console's type identifier.
- *
- * @param typeIdentifier the type identifier for this console
- * @since 3.1
- */
- protected void setType(String typeIdentifier) {
- fType = typeIdentifier;
- }
-
- /**
- * @see org.eclipse.ui.console.IConsole#getType()
- * @since 3.1
- */
- public String getType() {
- return fType;
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
deleted file mode 100644
index 5446acf8b..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.console.ConsoleManager;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The console plug-in class.
- *
- * @since 3.0
- */
-
-public class ConsolePlugin extends AbstractUIPlugin {
-
- /**
- * Singleton console manager
- */
- private IConsoleManager fConsoleManager = null;
-
- /**
- * The singleton console plugin instance
- */
- private static ConsolePlugin fgPlugin= null;
-
- /**
- * Unique identifier constant (value <code>"org.eclipse.ui.console"</code>)
- * for the UI Console plug-in.
- */
- private static final String PI_UI_CONSOLE = "org.eclipse.ui.console"; //$NON-NLS-1$
-
- /**
- * Returns the singleton instance of the console plugin.
- */
- public static ConsolePlugin getDefault() {
- return fgPlugin;
- }
-
- public ConsolePlugin() {
- super();
- fgPlugin = this;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- return PI_UI_CONSOLE;
- }
-
- /**
- * Logs the specified status with this plug-in's log.
- *
- * @param status status to log
- */
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- /**
- * Logs the specified throwable with this plug-in's log.
- *
- * @param t throwable to log
- */
- public static void log(Throwable t) {
- log(newErrorStatus("Error logged from Console plug-in: ", t)); //$NON-NLS-1$
- }
-
- /**
- * Returns a new error status for this plugin with the given message
- * @param message the message to be included in the status
- * @param exception the exception to be included in the status or <code>null</code> if none
- * @return a new error status
- */
- public static IStatus newErrorStatus(String message, Throwable exception) {
- return new Status(IStatus.ERROR, getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, message, exception);
- }
-
- /**
- * Returns the console manager. The manager will be created lazily on
- * the first access.
- *
- * @return IConsoleManager
- */
- public IConsoleManager getConsoleManager() {
- if (fConsoleManager == null) {
- fConsoleManager = new ConsoleManager();
- }
- return fConsoleManager;
- }
-
- /**
- * Returns the standard display to be used. The method first checks, if
- * the thread calling this method has an associated display. If so, this
- * display is returned. Otherwise the method returns the default display.
- */
- public static Display getStandardDisplay() {
- Display display= Display.getCurrent();
- if (display == null) {
- display= Display.getDefault();
- }
- return display;
- }
-
- /**
- * Utility method with conventions
- */
- public static void errorDialog(Shell shell, String title, String message, Throwable t) {
- IStatus status;
- if (t instanceof CoreException) {
- status= ((CoreException)t).getStatus();
- // if the 'message' resource string and the IStatus' message are the same,
- // don't show both in the dialog
- if (status != null && message.equals(status.getMessage())) {
- message= null;
- }
- } else {
- status= new Status(IStatus.ERROR, getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, "Error within Debug UI: ", t); //$NON-NLS-1$
- log(status);
- }
- ErrorDialog.openError(shell, title, message, status);
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
deleted file mode 100644
index d3f88ba7e..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console. A console is commonly used to display messages such as the output
- * streams of a system process. A console can be displayed in one or more console
- * views.
- * <p>
- * The console implementations provided by this plug-in are textual
- * (<code>TextConsole</code>, <code>MessageConsole</code> and <code>IOConsole</code>).
- * However a client can provide alternate presentations since a console implementation
- * is responsible for providing is page for the page book views in which consoles are
- * displayed.
- * </p>
- * <p>
- * This interface is not intended to be implemented directly by clients.
- * Subclass <code>AbstractConsole</code> instead.
- * </p>
- * @since 3.0
- */
-public interface IConsole {
-
- /**
- * Returns the name of this console.
- *
- * @return the name of this console
- */
- public String getName();
-
- /**
- * Returns an image descriptor for this console, or <code>null</code>
- * if none.
- *
- * @return an image descriptor for this console, or <code>null</code>
- * if none
- */
- public ImageDescriptor getImageDescriptor();
-
- /**
- * Creates and returns a new page for this console. The page is displayed
- * for this console in the console given view.
- *
- * @param view the view in which the page is to be created
- * @return a page book view page representation of this console
- */
- public IPageBookViewPage createPage(IConsoleView view);
-
- /**
- * Adds a listener for changes to properties of this console.
- * Has no effect if an identical listener is already registered.
- * <p>
- * The changes supported by the console view are as follows:
- * <ul>
- * <li><code>IBasicPropertyConstants.P_TEXT</code> - indicates the name
- * of a console has changed</li>
- * <li><code>IBasicPropertyConstants.P_IMAGE</code> - indicates the image
- * of a console has changed</li>
- * </ul>
- * </p>
- * <p>
- * Consoles may define additional properties as required.
- * </p>
- *
- * @param listener a property change listener
- */
- public void addPropertyChangeListener(IPropertyChangeListener listener);
-
- /**
- * Removes the given property listener from this console page.
- * Has no effect if an identical listener is not alread registered.
- *
- * @param listener a property listener
- */
- public void removePropertyChangeListener(IPropertyChangeListener listener);
-
- /**
- * Returns a unique identifier for this console's type, or <code>null</code>
- * if unspecified.
- *
- * @return a unique identifier for this console's type, or <code>null</code>
- * @since 3.1
- */
- public String getType();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
deleted file mode 100644
index f773476e9..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-/**
- * Constants relating to the console plug-in.
- *
- * @since 3.0
- */
-public interface IConsoleConstants {
-
- /**
- * Console plug-in identifier (value <code>"org.eclipse.ui.console"</code>).
- */
- public static final String PLUGIN_ID = ConsolePlugin.getUniqueIdentifier();
-
- /**
- * Console view identifier (value <code>"org.eclipse.ui.console.ConsoleView"</code>).
- */
- public static final String ID_CONSOLE_VIEW= "org.eclipse.ui.console.ConsoleView"; //$NON-NLS-1$
-
- /**
- * Type identifier for MessageConsole
- * @since 3.1
- */
- public static final String MESSAGE_CONSOLE_TYPE = "org.eclipse.ui.MessageConsole"; //$NON-NLS-1$
-
- /**
- * The name of the font to use for the Console (value <code>"org.eclipse.ui.console.ConsoleFont"</code>).
- *
- * @deprecated When a console is created, its font is set to the default text font as specified
- * by <code>JFaveResources.TEXT_FONT</code>. Clients must provide their own infrastructure to
- * manage console specific fonts.
- */
- public static final String CONSOLE_FONT= "org.eclipse.ui.console.ConsoleFont"; //$NON-NLS-1$
-
- /**
- * Menu group identifier for the console view context menu and toolbar, for actions pertaining to
- * launching (value <code>"launchGroup"</code>).
- */
- public static final String LAUNCH_GROUP = "launchGroup"; //$NON-NLS-1$
-
- /**
- * Menu group identifier for the console view context menu and toolbar, for actions pertaining to
- * console output. (value<code>"outputGroup"</code>).
- */
- public static final String OUTPUT_GROUP = "outputGroup"; //$NON-NLS-1$
-
- /**
- * Console view image identifier.
- */
- public static final String IMG_VIEW_CONSOLE= "IMG_VIEW_CONSOLE"; //$NON-NLS-1$
-
- /**
- * Clear action image identifier.
- */
- public static final String IMG_LCL_CLEAR= "IMG_LCL_CLEAR"; //$NON-NLS-1$
-
- /**
- * Status code indicating an unexpected internal error.
- */
- public static final int INTERNAL_ERROR = 120;
-
- /**
- * Console pattern match listeners extension point identifier
- * (value <code>"consolePatternMatchListeners"</code>).
- *
- * @since 3.1
- */
- public static final String EXTENSION_POINT_CONSOLE_PATTERN_MATCH_LISTENERS = "consolePatternMatchListeners"; //$NON-NLS-1$
-
- /**
- * Console page participants extension point identifier
- * (value <code>"consolePageParticipants"</code>).
- *
- * @since 3.1
- */
- public static final String EXTENSION_POINT_CONSOLE_PAGE_PARTICIPANTS = "consolePageParticipants"; //$NON-NLS-1$
-
- /**
- * Console factories extension point identifier
- * (value <code>"consoleFactories"</code>).
- *
- * @since 3.1
- */
- public static final String EXTENSION_POINT_CONSOLE_FACTORIES = "consoleFactories"; //$NON-NLS-1$
-
- /**
- * Property constant indicating a console's font has changed.
- *
- * @since 3.1
- */
- public static final String P_FONT = ConsolePlugin.getUniqueIdentifier() + ".P_FONT"; //$NON-NLS-1$
-
- /**
- * Property constant indicating that a font style has changed
- *
- * @since 3.1
- */
- public static final String P_FONT_STYLE = ConsolePlugin.getUniqueIdentifier() + ".P_FONT_STYLE"; //$NON-NLS-1$
-
- /**
- * Property constant indicating the color of a stream has changed.
- *
- * @since 3.1
- */
- public static final String P_STREAM_COLOR = ConsolePlugin.getUniqueIdentifier() + ".P_STREAM_COLOR"; //$NON-NLS-1$
-
- /**
- * Property constant indicating tab size has changed
- *
- * @since 3.1
- */
- public static final String P_TAB_SIZE = ConsolePlugin.getUniqueIdentifier() + ".P_TAB_SIZE"; //$NON-NLS-1$
-
- /**
- * Property constant indicating the width of a fixed width console has changed.
- *
- * @since 3.1
- */
- public static final String P_CONSOLE_WIDTH = ConsolePlugin.getUniqueIdentifier() + ".P_CONSOLE_WIDTH"; //$NON-NLS-1$
-
- /**
- * Property constant indicating that all streams connected to this console have been closed
- * and that all queued output has been processed.
- *
- * @since 3.1
- */
- public static final String P_CONSOLE_OUTPUT_COMPLETE = ConsolePlugin.getUniqueIdentifier() + ".P_CONSOLE_STREAMS_CLOSED"; //$NON-NLS-1$
-
- /**
- * Property constant indicating a hyperlink has been added to a console.
- *
- * @since 3.1
- */
- public static final String P_CONSOLE_HYPERLINK_ADDED = ConsolePlugin.getUniqueIdentifier() + ".P_CONSOLE_HYPERLINK_ADDED"; //$NON-NLS-1$
-
- /**
- * The default tab size for text consoles.
- *
- * @since 3.1
- */
- public static final int DEFAULT_TAB_SIZE = 8;
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
deleted file mode 100644
index 01cc3c2ba..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.swt.custom.StyleRange;
-
-/**
- * A document partitioner for a text console.
- * <p>
- * In addition to regular partitioner duties, a console document partitioner
- * dicates which regions in its document are read-only and provides style ranges.
- * </p>
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IConsoleDocumentPartitioner extends IDocumentPartitioner {
-
- /**
- * Returns whether this partitioner's document is read-only at the specified
- * offset. The user is not allowed to type in read-only locations.
- *
- * @param offset document offset
- * @return whether this partitioner's document is read-only at the specified
- * offset
- */
- public boolean isReadOnly(int offset);
-
- /**
- * Returns style ranges for the specified region of this partitioner's document
- * to use when rendering, or <code>null</code> if none.
- *
- * @param offset beginning offset for which style ranges are requested
- * @param length the length of text for which style ranges are requested
- * @return style ranges for the specified region of this partitioner's document
- * to use when rendering, or <code>null</code> if none
- */
- public StyleRange[] getStyleRanges(int offset, int length);
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
deleted file mode 100644
index 50dda286b..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A console factory extension is responsible for opening a console in the console view.
- * Extensions appear on a menu in the console view, and their <code>openConsole</code>
- * method is called when the action is invoked. Implementations may choose to open a new
- * cosnole or activate an existing console. The extension point used to contribute a
- * console factory is <code>org.eclipse.ui.console.consoleFactories</code>.
- * <p>
- * Following is an example console factory extension.
- * </pre>
- * &lt;extension point="org.eclipse.ui.console.consoleFactories"&gt;
- * &lt;consoleFactory
- * label="Command Console"
- * icon="icons\cmd_console.gif"
- * class="com.example.CommandConsoleFactory"&gt;
- * &lt;/consoleFactory&gt;
- * &lt;/extension&gt;
- * </pre>
- * An action appears in the console view's 'Open Console' drop-down menu with the
- * corresponding <code>label</code> and option <code>icon</code>. When the action
- * is invoked, the specified <code>class</code> is instantiated and called to
- * open a console, via the method <code>openConsole()</code>.
- * </p>
- * <p>
- * Clients providing console factory extensions are intended to implement
- * this interface.
- * </p>
- * @since 3.1
- */
-public interface IConsoleFactory {
- /**
- * Opens a console in the console view. Implementations may create a new
- * console or activate an existing console.
- */
- public void openConsole();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
deleted file mode 100644
index 7d22c8a21..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A console listener is notified when consoles are added or removed from
- * the console manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IConsoleListener {
-
- /**
- * Notification the given consoles have been added to the console
- * manager.
- *
- * @param consoles added consoles
- */
- public void consolesAdded(IConsole[] consoles);
-
- /**
- * Notification the given consoles have been removed from the
- * console manager.
- *
- * @param consoles removed consoles
- */
- public void consolesRemoved(IConsole[] consoles);
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
deleted file mode 100644
index 31fcee3ea..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * The console manager manages registered consoles.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IConsoleManager {
-
- /**
- * Registers the given listener for console notifications. Has
- * no effect if an identical listener is already registered.
- *
- * @param listener listener to register
- */
- public void addConsoleListener(IConsoleListener listener);
-
- /**
- * Deregisters the given listener for console notifications. Has
- * no effect if an identical listener is not already registered.
- *
- * @param listener listener to deregister
- */
- public void removeConsoleListener(IConsoleListener listener);
-
- /**
- * Adds the given consoles to the console manager. Has no effect for
- * equivalent consoles already registered. The consoles will be added
- * to any existing console views.
- *
- * @param consoles consoles to add
- */
- public void addConsoles(IConsole[] consoles);
-
- /**
- * Removes the given consoles from the console manager. If the consoles are
- * being displayed in any console views, the associated pages will be removed
- * and disposed.
- *
- * @param consoles consoles to remove
- */
- public void removeConsoles(IConsole[] consoles);
-
- /**
- * Returns a collection of consoles registered with the console manager.
- *
- * @return a collection of consoles registered with the console manager
- */
- public IConsole[] getConsoles();
-
- /**
- * Opens the console view and displays given the console.
- * If the view is already open, it is brought to the front unless
- * the view is pinned on a console other than the given console.
- * Has no effect if the given console is not currently registered.
- *
- * @param console console to display
- */
- public void showConsoleView(IConsole console);
-
- /**
- * Warns that the content of the given console has changed in
- * all console views. Has no effect if the given console is not
- * currently registered.
- *
- * @param console the console that has changed
- */
- public void warnOfContentChange(IConsole console);
-
- /**
- * Creates and returns a collection of new pattern match listeners enabled for
- * the given console. The pattern match listeners are new instances, intended
- * to be used in a new console. No methods on the participants have been
- * called. Clients are responsible for connecting to and disconnecting from
- * the pattern match listeners.
- * <p>
- * Console pattern match listeners are contributed via the
- * <code>org.eclipse.ui.console.consolePatternMatchListeners</code> extension point.
- * </p>
- *
- * @param console the console for which pattern match listeners are requested
- * @return a collection of new pattern match listeners
- * @see IPatternMatchListener
- * @since 3.1
- */
- public IPatternMatchListener[] createPatternMatchListeners(IConsole console);
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
deleted file mode 100644
index 9a8a15d7c..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console page participant is notified of page lifecycle events such as
- * creation, activation, deactivation and disposal. A page participant can
- * also provide adapters for a page. Participants are contributed via the
- * <code>org.eclispe.ui.console.consolePageParticipants</code> extension point.
- * <p>
- * Participant behavior is implementation dependent. For example, a page participant
- * could add actions to a console's toolbar by accessing a its page's action bars.
- * </p>
- * <p>
- * Following is an example extension definition.
- * <pre>
- * </pre>
- * &lt;extension point="org.eclipse.ui.console.consolePageParticipants"&gt;
- * &lt;consolePageParticipant
- * id="com.example.ExamplePageParticipant"
- * class="com.example.ExamplePageParticipant"&gt;
- * &lt;/consolePageParticipant&gt;
- * &lt;/extension&gt;
- * </p>
- * The example page participant is contributed to all console pages. An optional
- * <code>enablement</code> attriubte may be specified to control which consoles
- * a page participant is applicable to.
- * <p>
- * Clients contributing console page participant extensions are intended to
- * implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IConsolePageParticipant extends IAdaptable {
- /**
- * Called during page initialization. Marks the start of this
- * page participant's lifecycle.
- *
- * @param page the page corresponsing to the given console
- * @param console the console for which a page has been created
- */
- public void init(IPageBookViewPage page, IConsole console);
-
- /**
- * Disposes this page participant. Marks the end of this
- * page participant's lifecycle.
- */
- public void dispose();
-
- /**
- * Notification this participant's page has been activated.
- */
- public void activated();
-
- /**
- * Notification this participant's page has been deactivated.
- */
- public void deactivated();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
deleted file mode 100644
index 784af61ce..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.ui.IViewPart;
-
-/**
- * A view that displays consoles registered with the console manager.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IConsoleView extends IViewPart {
-
- /**
- * Displays the page for the given console in this console view.
- * Has no effect if this console view has a pinned console.
- *
- * @param console console to display, cannot be <code>null</code>
- */
- public void display(IConsole console);
-
- /**
- * Pins this console view. No other console page will be displayed until
- * this console view is un-pinned.
- *
- * @param pin <code>true</code> to pin the current console to the
- * top of the stack, <code>false</code> otherwise
- * @since 3.1
- */
- public void setPinned(boolean pin);
-
- /**
- * Displays and pins the given console in this console view. No
- * other console can be displayed until this console view is
- * un-pinned. Specifying <code>null</code> un-pins this console
- *
- * @param console console to pin, or <code>null</code> to un-pin
- * @deprecated rather than pinning a specific console, a console view is
- * pinned - use <code>setPinned(boolean)</code>
- */
- public void pin(IConsole console);
-
- /**
- * Returns whether this console view is currently pinned to a
- * specific console.
- *
- * @return whether this console view is currently pinned to a
- * specific console
- */
- public boolean isPinned();
-
- /**
- * Returns the console currently being displayed, or <code>null</code>
- * if none
- *
- * @return the console currently being displayed, or <code>null</code>
- * if none
- */
- public IConsole getConsole();
-
- /**
- * Warns that the content of the given console has changed.
- *
- * @param console the console that has changed
- */
- public void warnOfContentChange(IConsole console);
-
- /**
- * Sets the scroll lock state of the currently active console.
- *
- * @param scrollLock <code>true</code> to turn scroll lock on, otherwise <code>false</code>
- * @since 3.1
- */
- public void setScrollLock(boolean scrollLock);
-
- /**
- * Returns the scroll lock state of the currently active console.
- *
- * @return <code>true</code> if scroll lock is on, <code>false</code> otherwise
- * @since 3.1
- */
- public boolean getScrollLock();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
deleted file mode 100644
index 0c3b999f3..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A hyperlink in a console. Link behavior is implementation dependent.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IHyperlink {
-
- /**
- * Notification that the mouse has entered this link's region.
- */
- public void linkEntered();
-
- /**
- * Notification that the mouse has exited this link's region
- */
- public void linkExited();
-
- /**
- * Notification that this link has been activated. Performs
- * context specific linking.
- */
- public void linkActivated();
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
deleted file mode 100644
index ed6f85237..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.internal.console.IOConsolePage;
-import org.eclipse.ui.internal.console.IOConsolePartitioner;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console that displays text from I/O streams. An I/O console can have multiple
- * output streams connected to it and provides one input stream connected to the
- * keyboard.
- * <p>
- * Clients may instantiate and subclass this class.
- * </p>
- * @since 3.1
- */
-public class IOConsole extends TextConsole {
- /**
- * The document partitioner
- */
- private IOConsolePartitioner partitioner;
-
- /**
- * The stream from which user input may be read
- */
- private IOConsoleInputStream inputStream;
-
- /**
- * A collection of open streams connected to this console.
- */
- private List openStreams;
-
- /**
- * The encoding used to for displaying console output.
- */
- private String fEncoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
-
-
- /**
- * Constructs a console with the given name, type, image, and lifecycle, with the
- * workbench's default encoding.
- *
- * @param name name to display for this console
- * @param consoleType console type identifier or <code>null</code>
- * @param imageDescriptor image to display for this console or <code>null</code>
- * @param autoLifecycle whether lifecycle methods should be called automatically
- * when this console is added/removed from the console manager
- */
- public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
- this(name, consoleType, imageDescriptor, null, autoLifecycle);
- }
-
- /**
- * Constructs a console with the given name, type, image, encoding and lifecycle.
- *
- * @param name name to display for this console
- * @param consoleType console type identifier or <code>null</code>
- * @param imageDescriptor image to display for this console or <code>null</code>
- * @param autoLifecycle whether lifecycle methods should be called automatically
- * when this console is added/removed from the console manager
- */
- public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, String encoding, boolean autoLifecycle) {
- super(name, consoleType, imageDescriptor, autoLifecycle);
- if (encoding != null) {
- fEncoding = encoding;
- }
- openStreams = new ArrayList();
- inputStream = new IOConsoleInputStream(this);
- openStreams.add(inputStream);
- partitioner = new IOConsolePartitioner(inputStream, this);
- partitioner.connect(getDocument());
- }
-
- /**
- * Constructs a console with the given name, type, and image with the workbench's
- * default encoding. Lifecycle methods will be called when this console is
- * added/removed from the console manager.
- *
- * @param name name to display for this console
- * @param consoleType console type identifier or <code>null</code>
- * @param imageDescriptor image to display for this console or <code>null</code>
- */
- public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor) {
- this(name, consoleType, imageDescriptor, true);
- }
-
- /**
- * Constructs a console with the given name and image. Lifecycle methods
- * will be called when this console is added/removed from the console manager.
- * This console will have an unspecified (<code>null</code>) type.
- *
- * @param name name to display for this console
- * @param imageDescriptor image to display for this console or <code>null</code>
- */
- public IOConsole(String name, ImageDescriptor imageDescriptor) {
- this(name, null, imageDescriptor);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
- */
- public IPageBookViewPage createPage(IConsoleView view) {
- return new IOConsolePage(this, view);
- }
-
- /**
- * Creates and returns a new output stream which may be used to write to this console.
- * A console may be connected to more than one output stream at once. Clients are
- * responsible for closing any output streams created on this console.
- *
- * @return a new output stream connected to this console
- */
- public IOConsoleOutputStream newOutputStream() {
- IOConsoleOutputStream outputStream = new IOConsoleOutputStream(this);
- outputStream.setEncoding(fEncoding);
- synchronized(openStreams) {
- openStreams.add(outputStream);
- }
- return outputStream;
- }
-
- /**
- * Returns the input stream connected to the keyboard.
- *
- * @return the input stream connected to the keyboard.
- */
- public IOConsoleInputStream getInputStream() {
- return inputStream;
- }
-
- /**
- * Returns this console's document partitioner.
- *
- * @return this console's document partitioner
- */
- protected IConsoleDocumentPartitioner getPartitioner() {
- return partitioner;
- }
-
- /**
- * Returns the maximum number of characters that the console will display at
- * once. This is analagous to the size of the text buffer this console
- * maintains.
- *
- * @return the maximum number of characters that the console will display
- */
- public int getHighWaterMark() {
- return partitioner.getHighWaterMark();
- }
-
- /**
- * Returns the number of characters that will remain in this console
- * when its high water mark is exceeded.
- *
- * @return the number of characters that will remain in this console
- * when its high water mark is exceeded
- */
- public int getLowWaterMark() {
- return partitioner.getLowWaterMark();
- }
-
- /**
- * Sets the text buffer size for this console. The high water mark indicates
- * the maximum number of characters stored in the buffer. The low water mark
- * indicates the number of characters remaining in the buffer when the high
- * water mark is exceeded.
- *
- * @param low the number of characters remaining in the buffer when the high
- * water mark is exceeded (if -1 the console does not limit output)
- * @param high the maximum number of characters this console will cache in
- * its text buffer (if -1 the console does not limit output)
- * @exception IllegalArgumentException if low >= high & low != -1
- */
- public void setWaterMarks(int low, int high) {
- if (low >= 0) {
- if (low >= high) {
- throw new IllegalArgumentException("High water mark must be greater than low water mark"); //$NON-NLS-1$
- }
- }
- partitioner.setWaterMarks(low, high);
- }
-
- /**
- * Check if all streams connected to this console are closed. If so,
- * notifiy the partitioner that this console is finished.
- */
- private void checkFinished() {
- if (openStreams.isEmpty()) {
- partitioner.streamsClosed();
- }
- }
-
- /**
- * Notification that an output stream connected to this console has been closed.
- *
- * @param stream stream that closed
- */
- void streamClosed(IOConsoleOutputStream stream) {
- synchronized (openStreams) {
- openStreams.remove(stream);
- checkFinished();
- }
- }
-
- /**
- * Notification that the input stream connected to this console has been closed.
- *
- * @param stream stream that closed
- */
- void streamClosed(IOConsoleInputStream stream) {
- synchronized (openStreams) {
- openStreams.remove(stream);
- checkFinished();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.TextConsole#clearConsole()
- */
- public void clearConsole() {
- if (partitioner != null) {
- partitioner.clearBuffer();
- }
- }
-
- /**
- * Disposes this console.
- */
- protected void dispose() {
- super.dispose();
- partitioner.disconnect();
- try {
- inputStream.close();
- } catch (IOException ioe) {
- }
- inputStream = null;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
deleted file mode 100644
index 3517c77f7..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * InputStream used to read input from an IOConsole.
- * This stream will buffer input that it receives until it has been read.
- * <p>
- * Clients are not intended to instantiate this class directly, instead
- * use <code>IOConsole.getInputStream()</code>.
- * </p>
- * @since 3.1
- *
- */
-public class IOConsoleInputStream extends InputStream {
- /**
- * Buffer to hold data from console until it is read.
- */
- private byte[] input = new byte[1024*2];
-
- /**
- * Location in the buffer that the next byte of data from the
- * console should be stored.
- */
- private int inPointer = 0;
-
- /**
- * Location in the buffer that the next byte of data read from
- * this stream should come from.
- */
- private int outPointer = 0;
-
- /**
- * The number of bytes of real data currently in the buffer.
- */
- private int size = 0;
-
- /**
- * Flag to indicate that EOF has been sent already.
- */
- private boolean eofSent = false;
-
- /**
- * Flag to indicate that the stream has been closed.
- */
- private boolean closed = false;
-
- /**
- * The console that this stream is connected to.
- */
- private IOConsole console;
-
- /**
- * The color used to display input in the console.
- */
- private Color color;
-
- /**
- * The font stye used to decorate input in the console.
- */
- private int fontStyle = SWT.NORMAL;
-
-
- /**
- * Constructs a new input stream on the given console.
- *
- * @param console I/O console
- */
- IOConsoleInputStream(IOConsole console) {
- this.console = console;
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.InputStream#read(byte[], int, int)
- */
- public synchronized int read(byte[] b, int off, int len) throws IOException {
- waitForData();
- if (available() == -1) {
- return -1;
- }
-
- int toCopy = Math.min(len, size);
- if(input.length-outPointer > toCopy) {
- System.arraycopy(input, outPointer, b, off, toCopy);
- outPointer += toCopy;
- size -= toCopy;
- } else {
- int bytesToEnd = input.length-outPointer;
- System.arraycopy(input, outPointer, b, off, bytesToEnd);
- System.arraycopy(input, 0, b, off+bytesToEnd, toCopy-bytesToEnd);
- outPointer = toCopy-bytesToEnd;
- size -=toCopy;
- }
- return toCopy;
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.InputStream#read(byte[])
- */
- public int read(byte[] b) throws IOException {
- return read(b, 0, b.length);
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.InputStream#read()
- */
- public synchronized int read() throws IOException {
- waitForData();
- if (available() == -1) {
- return -1;
- }
-
- byte b = input[outPointer];
- outPointer++;
- if (outPointer == input.length) {
- outPointer = 0;
- }
- return b;
- }
-
- /**
- * Blocks until data is available to be read.
- * Ensure that the monitor for this object is obtained before
- * calling this method.
- */
- private void waitForData() {
- while (size == 0 && !closed) {
- try {
- wait();
- } catch (InterruptedException e) {
- }
- }
- }
-
- /**
- * Appends text to this input stream's buffer.
- *
- * @param text the text to append to the buffer.
- */
- public synchronized void appendData(String text) {
- byte[] newData = text.getBytes();
- while(input.length-size < newData.length) {
- growArray();
- }
-
- if (size == 0) { //inPointer == outPointer
- System.arraycopy(newData, 0, input, 0, newData.length);
- inPointer = newData.length;
- size = newData.length;
- outPointer = 0;
- } else if (inPointer < outPointer || input.length - inPointer > newData.length) {
- System.arraycopy(newData, 0, input, inPointer, newData.length);
- inPointer += newData.length;
- size += newData.length;
- } else {
- System.arraycopy(newData, 0, input, inPointer, input.length-inPointer);
- System.arraycopy(newData, input.length-inPointer, input, 0, newData.length-(input.length-inPointer));
- inPointer = newData.length-(input.length-inPointer);
- size += newData.length;
- }
-
- if (inPointer == input.length) {
- inPointer = 0;
- }
- notifyAll();
- }
-
- /**
- * Enlarges the buffer.
- */
- private void growArray() {
- byte[] newInput = new byte[input.length+1024];
- if (outPointer < inPointer) {
- System.arraycopy(input, outPointer, newInput, 0, size);
- } else {
- System.arraycopy(input, outPointer, newInput, 0, input.length-outPointer);
- System.arraycopy(input, 0, newInput, input.length-outPointer, inPointer);
- }
- outPointer = 0;
- inPointer = size;
- input = newInput;
- newInput = null;
- }
-
- /**
- * Returns this stream's font style.
- *
- * @return the font style used to decorate input in the associated console
- */
- public int getFontStyle() {
- return fontStyle;
- }
-
- /**
- * Sets this stream's font style.
- *
- * @param newFontStyle the font style to be used to decorate input in the associated console
- */
- public void setFontStyle(int newFontStyle) {
- if (newFontStyle != fontStyle) {
- int old = fontStyle;
- fontStyle = newFontStyle;
- console.firePropertyChange(this, IConsoleConstants.P_FONT_STYLE, new Integer(old), new Integer(fontStyle));
- }
- }
-
- /**
- * Sets the color to used to decorate input in the associated console.
- *
- * @param newColor the color to used to decorate input in the associated console.
- */
- public void setColor(Color newColor) {
- Color old = color;
- if (old == null || !old.equals(newColor)) {
- color = newColor;
- console.firePropertyChange(this, IConsoleConstants.P_STREAM_COLOR, old, newColor);
- }
- }
-
- /**
- * Returns the color used to decorate input in the associated console
- *
- * @return the color used to decorate input in the associated console
- */
- public Color getColor() {
- return color;
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#available()
- */
- public int available() throws IOException {
- if (closed && eofSent) {
- throw new IOException("Input Stream Closed"); //$NON-NLS-1$
- } else if (size == 0) {
- if (!eofSent) {
- eofSent = true;
- return -1;
- }
- throw new IOException("Input Stream Closed"); //$NON-NLS-1$
- }
-
- return size;
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#close()
- */
- public synchronized void close() throws IOException {
- if(closed) {
- throw new IOException("Input Stream Closed"); //$NON-NLS-1$
- }
- closed = true;
- notifyAll();
- console.streamClosed(this);
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
deleted file mode 100644
index 5bb4323a9..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.internal.console.IOConsolePartitioner;
-
-/**
- * OutputStream used to write to an IOConsole.
- * <p>
- * Clients are not intended to instantiate this class directly, instead
- * use <code>IOConsole.newOutputStream()</code>.
- * </p>
- * @since 3.1
- */
-public class IOConsoleOutputStream extends OutputStream {
- /**
- * Flag indicating whether this stream has been closed.
- */
- private boolean closed = false;
-
- /**
- * The console's document partitioner.
- */
- private IOConsolePartitioner partitioner;
-
- /**
- * The console this stream is attached to.
- */
- private IOConsole console;
-
- /**
- * Flag indicating that the console should be activated when data
- * is written to this stream.
- */
- private boolean activateOnWrite = false;
-
- /**
- * The color used to decorate data written to this stream.
- */
- private Color color;
-
- /**
- * The font style used to decorate data written to this stream.
- */
- private int fontStyle;
-
- private String fEncoding;
- private String fDefaultEncoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
-
- /**
- * Constructs a new output stream on the given console.
- *
- * @param console I/O console
- */
- IOConsoleOutputStream(IOConsole console) {
- this.console = console;
- this.partitioner = (IOConsolePartitioner) console.getPartitioner();
- }
-
- /**
- * Returns the font style used to decorate data written to this stream.
- *
- * @return the font style used to decorate data written to this stream
- */
- public int getFontStyle() {
- return fontStyle;
- }
-
- /**
- * Sets the font style to be used to decorate data written to this stream.
- *
- * @param newFontStyle the font style to be used to decorate data written to this stream
- */
- public void setFontStyle(int newFontStyle) {
- if (newFontStyle != fontStyle) {
- int old = fontStyle;
- fontStyle = newFontStyle;
- console.firePropertyChange(this, IConsoleConstants.P_FONT_STYLE, new Integer(old), new Integer(fontStyle));
- }
- }
-
- /**
- * Returns whether the console this stream is writing to will be activated when this stream
- * is written to.
- *
- * @return whether the console this stream is writing to will be activated when this stream
- * is written to.
- */
- public boolean isActivateOnWrite() {
- return activateOnWrite;
- }
-
- /**
- * Sets whether to activate the console this stream is writing to when this stream
- * is written to.
- *
- * @param activateOnWrite whether the console this stream is writing to will be activated when this stream
- * is written to.
- */
- public void setActivateOnWrite(boolean activateOnWrite) {
- this.activateOnWrite = activateOnWrite;
- }
-
- /**
- * Sets the color of this stream. Use <code>null</code> to indicate
- * the default color.
- *
- * @param color color of this stream, or <code>null</code>
- */
- public void setColor(Color newColor) {
- Color old = color;
- if (old == null || !old.equals(newColor)) {
- color = newColor;
- console.firePropertyChange(this, IConsoleConstants.P_STREAM_COLOR, old, newColor);
- }
- }
-
- /**
- * Returns the color of this stream, or <code>null</code>
- * if default.
- *
- * @return the color of this stream, or <code>null</code>
- */
- public Color getColor() {
- return color;
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.OutputStream#close()
- */
- public synchronized void close() throws IOException {
- if(closed) {
- throw new IOException("Output Stream is closed"); //$NON-NLS-1$
- }
- console.streamClosed(this);
- closed = true;
- partitioner = null;
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.OutputStream#flush()
- */
- public void flush() throws IOException {
- if(closed) {
- throw new IOException("Output Stream is closed"); //$NON-NLS-1$
- }
- }
-
- /*
- * (non-Javadoc)
- * @see java.io.OutputStream#write(byte[], int, int)
- */
- public void write(byte[] b, int off, int len) throws IOException {
- if (fEncoding!=null && !fEncoding.equals(fDefaultEncoding)) {
- encodedWrite(new String(b, off, len, fEncoding));
- } else {
- encodedWrite(new String(b, off, len));
- }
- }
- /*
- * (non-Javadoc)
- * @see java.io.OutputStream#write(byte[])
- */
- public void write(byte[] b) throws IOException {
- write(b, 0, b.length);
- }
- /*
- * (non-Javadoc)
- * @see java.io.OutputStream#write(int)
- */
- public void write(int b) throws IOException {
- write(new byte[] {(byte)b}, 0, 1);
- }
-
- /**
- * Writes a string to the attached console.
- *
- * @param str the string to write to the attached console.
- * @throws IOException if the stream is closed.
- */
- public synchronized void write(String str) throws IOException {
- if (fEncoding!=null && !fEncoding.equals(fDefaultEncoding)) {
- byte[] defaultBytes = str.getBytes();
- str = new String(defaultBytes, fEncoding);
- }
- encodedWrite(str);
- }
-
- private void encodedWrite(String encodedString) throws IOException {
- if(closed) {
- throw new IOException("Output Stream is closed"); //$NON-NLS-1$
- }
- partitioner.streamAppended(this, encodedString);
- if (activateOnWrite) {
- console.activate();
- } else {
- ConsolePlugin.getDefault().getConsoleManager().warnOfContentChange(console);
- }
- }
-
- /**
- * Sets the character encoding used to interpret characters written to this steam.
- *
- * @param encoding endcoding identifier
- */
- public void setEncoding(String encoding) {
- fEncoding = encoding;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
deleted file mode 100644
index 8d47365ff..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A pattern match listener is registered with a <code>TextConsole</code>,
- * and is notified when its pattern has been matched to contents in
- * that console. A pattern match listener can be registered with a console
- * programmatically or via the <code>consolePatternMatchListeners</code> extension
- * point.
- * <p>
- * Following is an example console pattern match listener extension definition.
- * </pre>
- * &lt;extension point="org.eclipse.ui.console.consolePatternMatchListeners"&gt;
- * &lt;consolePatternMatchListener
- * id="com.example.ConsolePatternMatcher"
- * regex=".*foo.*"
- * class="com.example.ConsolePatternMatcher"&gt;
- * &lt;/consolePatternMatchListener&gt;
- * &lt;/extension&gt;
- * </pre>
- * Attributes are specified as follows:
- * <ul>
- * <li><code>id</code> - a unique identifier for the pattern match listener</li>
- * <li><code>regex</code> - regular expression to match</li>
- * <li><code>class</code> - fully qualified name of the Java class implementing
- * <code>org.eclipse.ui.console.IPatternMatchListenerDelegate</code></li>
- * </ul>
- * </p>
- * <p>
- * Optionally a <code>qualifier</code> attribute may be specified to improve performance
- * of regular expression matching. A qualifier specifies a simple regular expression used to
- * qualify lines for the search. Lines that do not contain the qualifier are not considered.
- * </p>
- * <p>
- * Optionally an <code>enablement</code> expression may be provided to specify
- * which console(s) a pattern matcher should be contributed to.
- * </p>
- * <p>
- * Clients may implement this interface directly if registering a pattern match listener with
- * a text console programmatically. Clients contributing a pattern match listener via an
- * extension implement <code>IPatternMatchListenerDelegate</code> instead.
- * </p>
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IPatternMatchListener extends IPatternMatchListenerDelegate {
- /**
- * Returns the pattern to be used for matching. The pattern is
- * a string representing a regular expression.
- *
- * @return the regular expression to be used for matching
- */
- public String getPattern();
-
- /**
- * Returns the flags to use when compiling this pattern match listener's
- * regular expression, as defined by by <code>Pattern.compile(String regex, int flags)</code>
- *
- * @return the flags to use when compiling this pattern match listener's
- * regular expression
- * @see java.util.regex.Pattern#compile(java.lang.String, int)
- */
- public int getCompilerFlags();
-
- /**
- * Returns a simple regular expression used to identify lines that may
- * match this pattern matcher's complete pattern, or <code>null</code>.
- * Use of this attribute can improve performance by disqualifying lines
- * from the search. When a line is found containing a match for this expression,
- * the line is searched from the beginning for this pattern matcher's
- * complete pattern. Lines not containing this pattern are discarded.
- *
- * @return a simple regular expression used to identify lines that may
- * match this pattern matcher's complete pattern, or <code>null</code>
- */
- public String getLineQualifier();
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
deleted file mode 100644
index 026f22233..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-/**
- * A pattern match listener delegate is notified of regular expression matches
- * in a text console. A delegate is contributed via the
- * <code>consolePatternMatcherListeners</code> extension point.
- * <p>
- * Clients contributing a console pattern match listener extension are intended
- * to implement this interface.
- * </p>
- * @see org.eclipse.ui.console.IPatternMatchListener
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public interface IPatternMatchListenerDelegate {
- /**
- * Notification that pattern matching will begin in the specified console.
- * A pattern matcher is connected to only one console at a time.
- *
- * @param console the console in which pattern matching will be performed
- */
- public void connect(TextConsole console);
-
- /**
- * Notification that pattern matching has been completed in the console
- * this delegate was last connected to.
- */
- public void disconnect();
-
- /**
- * Notification that a match has been found.
- *
- * @param event event describing where the match was found
- */
- public void matchFound(PatternMatchEvent event);
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
deleted file mode 100644
index ead1be56c..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.internal.console.IOConsolePage;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * A console that displays messages. A message console may have one or
- * more streams connected to it (<code>MessageConsoleStream</code>).
- * Text written to streams is buffered and processed in a Job by the
- * console's document partitioner.
- * <p>
- * Clients may instantiate this class.
- * </p>
- * @since 3.0
- */
-public class MessageConsole extends IOConsole {
-
- /**
- * Consturcts a message console with the given name and image.
- *
- * @param name console name
- * @param imageDescriptor console image descriptor or <code>null</code>
- */
- public MessageConsole(String name, ImageDescriptor imageDescriptor) {
- this(name, imageDescriptor, true);
- }
-
- /**
- * Constructs a message console.
- *
- * @param name console name
- * @param imageDescriptor console image descriptor or <code>null</code>
- * @param autoLifecycle whether lifecycle methods should be called automatically
- * when added and removed from the console manager
- * @since 3.1
- */
- public MessageConsole(String name, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
- super(name, IConsoleConstants.MESSAGE_CONSOLE_TYPE, imageDescriptor, autoLifecycle);
- }
-
- /**
- * Returns a new message stream connected to this console.
- *
- * @return a new message stream connected to this console
- */
- public MessageConsoleStream newMessageStream() {
- return new MessageConsoleStream(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
- */
- public IPageBookViewPage createPage(IConsoleView view) {
- IOConsolePage page = (IOConsolePage) super.createPage(view);
- page.setReadOnly();
- return page;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IOConsole#getInputStream()
- */
- public IOConsoleInputStream getInputStream() {
- throw new UnsupportedOperationException("Message Console does not support user input"); //$NON-NLS-1$
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
deleted file mode 100644
index 9357e2654..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.io.IOException;
-
-/**
- * Used to write messages to a message console. A message console may have more
- * than one stream connected to it. Each stream may be displayed in a different
- * color.
- *
- * @since 3.0
- */
-public class MessageConsoleStream extends IOConsoleOutputStream {
-
- private MessageConsole fMessageConsole;
-
- /**
- * Constructs a new stream connected to the given console.
- *
- * @param console the console to write messages to
- */
- public MessageConsoleStream(MessageConsole console) {
- super(console);
- fMessageConsole = console;
- }
-
- /**
- * Appends the specified message to this stream.
- *
- * @param message message to append
- */
- public void print(String message) {
- try {
- write(message);
- } catch (IOException e) {
- ConsolePlugin.log(e);
- }
- }
-
-
- /**
- * Appends a line separator string to this stream.
- */
- public void println() {
- try {
- write("\n"); //$NON-NLS-1$
- } catch (IOException e) {
- ConsolePlugin.log(e);
- }
- }
-
- /**
- * Appends the specified message to this stream, followed by a line
- * separator string.
- *
- * @param message message to print
- */
- public void println(String message) {
- print(message);
- println();
- }
-
- /**
- * Returns the console this stream is connected to.
- *
- * @return the console this stream is connected to
- */
- public MessageConsole getConsole() {
- return fMessageConsole;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
deleted file mode 100644
index 139b4871a..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console;
-
-import java.util.EventObject;
-
-/**
- * An event describing a pattern match in a text console. The source of the event
- * is a <code>TextConsole</code>.
- *
- * @see org.eclipse.ui.console.IPatternMatchListener
- * @see org.eclipse.ui.console.TextConsole
- * @since 3.1
- */
-public class PatternMatchEvent extends EventObject {
- /*
- * required by EventObject for ObjectSerialization.
- */
- private static final long serialVersionUID = 876890383326854537L;
-
- /**
- * The offset of the match within the console's document.
- */
- private int offset;
-
- /**
- * The length of the matched string
- */
- private int length;
-
- /**
- * Constructs a new pattern match event.
- *
- * @param console the console in which the match was found
- * @param matchOffset the offset at which the match was found
- * @param matchLength the length of the text that matched
- */
- public PatternMatchEvent(TextConsole console, int matchOffset, int matchLength) {
- super(console);
- offset = matchOffset;
- length = matchLength;
- }
-
- /**
- * Returns the length of the matched string.
- *
- * @return the length of the matched string
- */
- public int getLength() {
- return length;
- }
-
- /**
- * Returns the offset of the match within the document.
- *
- * @return the offset of the match within the document
- */
- public int getOffset() {
- return offset;
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
deleted file mode 100644
index 92e97b854..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.ui.internal.console.ConsoleDocument;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-import org.eclipse.ui.internal.console.ConsolePatternMatcher;
-import org.eclipse.ui.part.IPageBookViewPage;
-
-/**
- * An abstract text console that supports regular expression matching and
- * hyperlinks.
- * <p>
- * Pattern match listeners can be registered with a console programmatically
- * or via the <code>org.eclipse.ui.console.consolePatternMatchListeners</code>
- * extension point.
- * </p>
- * <p>
- * Clients may subclass this class. Subclasses must provide a document partitioner.
- * </p>
- * @since 3.1
- */
-public abstract class TextConsole extends AbstractConsole {
-
- /**
- * The current width of the console. Used for fixed width consoles.
- * A value of <=0 means does not have a fixed width.
- */
- private int fConsoleWidth;
- /**
- * The current tab width
- */
- private int fTabWidth;
- /**
- * The font used by this console
- */
- private Font fFont;
- /**
- * The Console's regular expression pattern matcher
- */
- private ConsolePatternMatcher fPatternMatcher;
-
- /**
- * The Console's document
- */
- private ConsoleDocument fDocument;
-
- /**
- * indication that the console's partitioner is not expecting more input
- */
- private boolean fPartitionerFinished = false;
-
- /**
- * Indication that the console's pattern matcher has finished.
- * (all matches have been found and all listeners notified)
- */
- private boolean fMatcherFinished = false;
-
- /**
- * indication that the console output complete property has been fired
- */
- private boolean fCompleteFired = false;
-
-
- /**
- * Map of client defined attributes
- */
- private HashMap fAttributes = new HashMap();
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.AbstractConsole#dispose()
- */
- protected void dispose() {
- super.dispose();
- fFont = null;
- synchronized(fAttributes) {
- fAttributes.clear();
- }
- }
- /**
- * Constructs a console with the given name, image descriptor, and lifecycle
- *
- * @param name name to display for this console
- * @param consoleType console type identifier or <code>null</code>
- * @param imageDescriptor image to display for this console or <code>null</code>
- * @param autoLifecycle whether lifecycle methods should be called automatically
- * when this console is added/removed from the console manager
- */
- public TextConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle) {
- super(name, consoleType, imageDescriptor, autoLifecycle);
- fDocument = new ConsoleDocument();
- fDocument.addPositionCategory(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
- fPatternMatcher = new ConsolePatternMatcher(this);
- fDocument.addDocumentListener(fPatternMatcher);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsole#createPage(org.eclipse.ui.console.IConsoleView)
- */
- public IPageBookViewPage createPage(IConsoleView view) {
- return new TextConsolePage(this, view);
- }
-
- /**
- * Returns this console's document.
- * <p>
- * Note that a console may or may not support direct manipulation of its document.
- * For example, an I/O console document and its partitions are produced from the
- * streams connected to it, and clients are not intended to modify the document's
- * contents.
- * </p>
- *
- * @return this console's document
- */
- public IDocument getDocument() {
- return fDocument;
- }
-
- /**
- * Returns the current width of this console. A value of zero of less
- * indicates this console has no fixed width.
- *
- * @return the current width of this console
- */
- public int getConsoleWidth() {
- return fConsoleWidth;
- }
-
- /**
- * Sets the width of this console in characters. Any value greater than zero
- * will cause this console to have a fixed width.
- *
- * @param width the width to make this console. Values of 0 or less imply
- * the console does not have any fixed width.
- */
- public void setConsoleWidth(int width) {
- if (fConsoleWidth != width) {
- int old = fConsoleWidth;
- fConsoleWidth = width;
-
- firePropertyChange(this, IConsoleConstants.P_CONSOLE_WIDTH, new Integer(old), new Integer(fConsoleWidth));
- }
- }
-
- /**
- * Sets the tab width used in this console.
- *
- * @param newTabWidth the tab width
- */
- public void setTabWidth(final int newTabWidth) {
- if (fTabWidth != newTabWidth) {
- final int oldTabWidth = fTabWidth;
- fTabWidth = newTabWidth;
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
- public void run() {
- firePropertyChange(TextConsole.this, IConsoleConstants.P_TAB_SIZE, new Integer(oldTabWidth), new Integer(fTabWidth));
- }
- });
- }
- }
-
- /**
- * Returns the tab width used in this console.
- *
- * @return tab width used in this console
- */
- public int getTabWidth() {
- return fTabWidth;
- }
-
- /**
- * Returns the font used by this console. Must be called in the UI thread.
- *
- * @return font used by this console
- */
- public Font getFont() {
- if (fFont == null) {
- fFont = getDefaultFont();
- }
- return fFont;
- }
-
- /**
- * Returns the default text font.
- *
- * @return the default text font
- */
- private Font getDefaultFont() {
- return JFaceResources.getFont(JFaceResources.TEXT_FONT);
- }
-
- /**
- * Sets the font used by this console. Specify <code>null</code> to use
- * the default text font.
- *
- * @param font font, or <code>null</code> to indicate the default font
- */
- public void setFont(Font newFont) {
- // ensure font is initialized
- getFont();
- // translate null to default font
- if (newFont == null) {
- newFont = getDefaultFont();
- }
- // fire property change if required
- if (!fFont.equals(newFont)) {
- Font old = fFont;
- fFont = newFont;
- firePropertyChange(this, IConsoleConstants.P_FONT, old, fFont);
- }
- }
-
- /**
- * Clears the console.
- * <p>
- * Since a console may or may not support direct manipulation
- * of its document's contents, this method should be called to clear a text console's
- * document. The default implementation sets this console's document content
- * to the empty string directly. Subclasses should override as required.
- * </p>
- */
- public void clearConsole() {
- IDocument document = getDocument();
- if (document != null) {
- document.set(""); //$NON-NLS-1$
- }
- }
-
- /**
- * Returns the console's document partitioner.
- * @return
- */
- protected abstract IConsoleDocumentPartitioner getPartitioner();
-
- /**
- * Returns all hyperlinks in this console.
- *
- * @return all hyperlinks in this console
- */
- public IHyperlink[] getHyperlinks() {
- try {
- Position[] positions = getDocument().getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
- IHyperlink[] hyperlinks = new IHyperlink[positions.length];
- for (int i = 0; i < positions.length; i++) {
- ConsoleHyperlinkPosition position = (ConsoleHyperlinkPosition) positions[i];
- hyperlinks[i] = position.getHyperLink();
- }
- return hyperlinks;
- } catch (BadPositionCategoryException e) {
- return new IHyperlink[0];
- }
- }
-
- /**
- * Returns the hyperlink at the given offset of <code>null</code> if none.
- *
- * @param offset offset for which a hyperlink is requested
- * @return the hyperlink at the given offset of <code>null</code> if none
- */
- public IHyperlink getHyperlink(int offset) {
- try {
- IDocument document = getDocument();
- if (document != null) {
- Position[] positions = document.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
- Position position = findPosition(offset, positions);
- if (position instanceof ConsoleHyperlinkPosition) {
- return ((ConsoleHyperlinkPosition) position).getHyperLink();
- }
- }
- } catch (BadPositionCategoryException e) {
- }
- return null;
- }
-
- /**
- * Binary search for the position at a given offset.
- *
- * @param offset the offset whose position should be found
- * @return the position containing the offset, or <code>null</code>
- */
- private Position findPosition(int offset, Position[] positions) {
-
- if (positions.length == 0)
- return null;
-
- int left= 0;
- int right= positions.length -1;
- int mid= 0;
- Position position= null;
-
- while (left < right) {
-
- mid= (left + right) / 2;
-
- position= positions[mid];
- if (offset < position.getOffset()) {
- if (left == mid)
- right= left;
- else
- right= mid -1;
- } else if (offset > (position.getOffset() + position.getLength() - 1)) {
- if (right == mid)
- left= right;
- else
- left= mid +1;
- } else {
- left= right= mid;
- }
- }
-
- position= positions[left];
- if (offset >= position.getOffset() && (offset < (position.getOffset() + position.getLength()))) {
- return position;
- }
- return null;
- }
-
- /**
- * Adds the given pattern match listener to this console. The listener will
- * be connected and receive match notifications. Has no effect if an identical
- * listener has already been added.
- *
- * @param listener the listener to add
- */
- public void addPatternMatchListener(IPatternMatchListener listener) {
- fPatternMatcher.addPatternMatchListener(listener);
- }
-
- /**
- * Removes the given pattern match listener from this console. The listener will be
- * disconnected and will no longer receive match notifications. Has no effect
- * if the listener was not previously added.
- *
- * @param listener the pattern match listener to remove
- */
- public void removePatternMatchListener(IPatternMatchListener listener) {
- fPatternMatcher.removePatternMatchListener(listener);
- }
-
-
- /**
- * Job scheduling rule that prevent the job from running if the console's PatternMatcher
- * is active.
- */
- private class MatcherSchedulingRule implements ISchedulingRule {
- public boolean contains(ISchedulingRule rule) {
- return rule == this;
- }
-
- public boolean isConflicting(ISchedulingRule rule) {
- if (contains(rule)) {
- return true;
- }
- if (rule != this && rule instanceof MatcherSchedulingRule) {
- return (((MatcherSchedulingRule)rule).getConsole() == TextConsole.this);
- }
- return false;
- }
-
- public TextConsole getConsole() {
- return TextConsole.this;
- }
- }
-
- /**
- * Returns a scheduling rule which can be used to prevent jobs from running
- * while this console's pattern matcher is active.
- *
- * @return a scheduling rule which can be used to prevent jobs from running
- * while this console's pattern matcher is active
- */
- public ISchedulingRule getSchedulingRule() {
- return new MatcherSchedulingRule();
- }
-
- /**
- * This console's partitioner should call this method when it is not expecting any new data
- * to be appended to the document.
- */
- public void partitionerFinished() {
- fPatternMatcher.forceFinalMatching();
- fPartitionerFinished = true;
- checkFinished();
- }
-
- /**
- * Called by this console's pattern matcher when matching is complete.
- * <p>
- * Clients should not call this method.
- * <p>
- */
- public void matcherFinished() {
- fMatcherFinished = true;
- fDocument.removeDocumentListener(fPatternMatcher);
- checkFinished();
- }
-
- /**
- * Fires the console output complete property change event.
- */
- private synchronized void checkFinished() {
- if (!fCompleteFired && fPartitionerFinished && fMatcherFinished ) {
- fCompleteFired = true;
- firePropertyChange(this, IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE, null, null);
- }
- }
-
- /**
- * Adds a hyperlink to this console.
- *
- * @param hyperlink the hyperlink to add
- * @param offset the offset in the console document at which the hyperlink should be added
- * @param length the length of the text which should be hyperlinked
- * @throws BadLocationException if the specified location is not valid.
- */
- public void addHyperlink(IHyperlink hyperlink, int offset, int length) throws BadLocationException {
- IDocument document = getDocument();
- ConsoleHyperlinkPosition hyperlinkPosition = new ConsoleHyperlinkPosition(hyperlink, offset, length);
- try {
- document.addPosition(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY, hyperlinkPosition);
- firePropertyChange(this, IConsoleConstants.P_CONSOLE_HYPERLINK_ADDED, null, null);
- } catch (BadPositionCategoryException e) {
- ConsolePlugin.log(e);
- }
- }
-
- /**
- * Returns the region assocaited with the given hyperlink.
- *
- * @param link hyperlink
- * @return the region associated witht the hyperlink
- */
- public IRegion getRegion(IHyperlink link) {
- try {
- IDocument doc = getDocument();
- if (doc != null) {
- Position[] positions = doc.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
- for (int i = 0; i < positions.length; i++) {
- ConsoleHyperlinkPosition position = (ConsoleHyperlinkPosition)positions[i];
- if (position.getHyperLink().equals(link)) {
- return new Region(position.getOffset(), position.getLength());
- }
- }
- }
- } catch (BadPositionCategoryException e) {
- }
- return null;
- }
-
- /**
- * Returns the attribue associated with the specified key.
- *
- * @param key attribute key
- * @return the attribue associated with the specified key
- */
- public Object getAttribute(String key) {
- synchronized (fAttributes) {
- return fAttributes.get(key);
- }
- }
-
- /**
- * Sets an attribute value. Intended for client data.
- *
- * @param key attribute key
- * @param value attribute value
- */
- public void setAttribute(String key, Object value) {
- synchronized(fAttributes) {
- fAttributes.put(key, value);
- }
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
deleted file mode 100644
index 3183e7f5b..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IFindReplaceTarget;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.console.actions.ClearOutputAction;
-import org.eclipse.ui.console.actions.TextViewerAction;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.FollowHyperlinkAction;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.texteditor.FindReplaceAction;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * A page for a text console.
- * <p>
- * Clients may contribute actions to the context menu of a text console page
- * using the <code>org.eclipse.ui.popupMenus</code> extension point. The context
- * menu identifier for a text console page is the associated console's type
- * suffixed with <code>.#ContextMenu</code>. When a console does not specify
- * a type, the context menu id is <code>#ContextMenu</code>.
- * </p>
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.1
- */
-public class TextConsolePage implements IPageBookViewPage, IPropertyChangeListener, IAdaptable {
- private IPageSite fSite;
- private TextConsole fConsole;
- private IConsoleView fConsoleView;
- private TextConsoleViewer fViewer;
- private MenuManager fMenuManager;
- protected Map fGlobalActions = new HashMap();
- protected ArrayList fSelectionActions = new ArrayList();
- protected ClearOutputAction fClearOutputAction;
-
- private Object fLock = new Object();
- private boolean fUpdateScheduled = false;
-
- // text selection listener, used to update selection dependant actions on selection changes
- private ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateSelectionDependentActions();
- }
- };
-
- // updates the find replace action if the document length is > 0
- private ITextListener textListener = new ITextListener() {
- public void textChanged(TextEvent event) {
- IUpdate findReplace = (IUpdate)fGlobalActions.get(ActionFactory.FIND.getId());
- if (findReplace != null) {
- findReplace.update();
- }
- }
- };
-
- /**
- * Constructs a text console page for the given console in the given view.
- *
- * @param console text console
- * @param view console view the page is contained in
- */
- public TextConsolePage(TextConsole console, IConsoleView view) {
- fConsole = console;
- fConsoleView = view;
- }
-
- /**
- * Returns a viewer used to display the contents of this page's console.
- *
- * @param parent container for the viewer
- * @return a viewer used to display the contents of this page's console
- */
- protected TextConsoleViewer createViewer(Composite parent) {
- return new TextConsoleViewer(parent, fConsole);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.part.IPageBookViewPage#getSite()
- */
- public IPageSite getSite() {
- return fSite;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.part.IPageBookViewPage#init(org.eclipse.ui.part.IPageSite)
- */
- public void init(IPageSite pageSite) throws PartInitException {
- fSite = pageSite;
- }
-
- /**
- * Updates selection dependent actions.
- */
- protected void updateSelectionDependentActions() {
- Iterator iterator= fSelectionActions.iterator();
- while (iterator.hasNext()) {
- updateAction((String)iterator.next());
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- fViewer = createViewer(parent);
- fViewer.setConsoleWidth(fConsole.getConsoleWidth());
- fViewer.setTabWidth(fConsole.getTabWidth());
- fConsole.addPropertyChangeListener(this);
- JFaceResources.getFontRegistry().addListener(this);
-
- String id = "#ContextMenu"; //$NON-NLS-1$
- if (getConsole().getType() != null) {
- id = getConsole().getType() + "." + id; //$NON-NLS-1$
- }
- fMenuManager= new MenuManager("#ContextMenu", id); //$NON-NLS-1$//$NON-NLS-2$
- fMenuManager.setRemoveAllWhenShown(true);
- fMenuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager m) {
- contextMenuAboutToShow(m);
- }
- });
- Menu menu = fMenuManager.createContextMenu(getControl());
- getControl().setMenu(menu);
-
- createActions();
- configureToolBar(getSite().getActionBars().getToolBarManager());
-
- getSite().registerContextMenu(id, fMenuManager, fViewer); //$NON-NLS-1$
- getSite().setSelectionProvider(fViewer);
-
- fViewer.getSelectionProvider().addSelectionChangedListener(selectionChangedListener);
- fViewer.addTextListener(textListener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#dispose()
- */
- public void dispose() {
- fConsole.removePropertyChangeListener(this);
- JFaceResources.getFontRegistry().removeListener(this);
-
- if (fMenuManager != null) {
- fMenuManager.dispose();
- }
- fClearOutputAction = null;
- fSelectionActions.clear();
- fGlobalActions.clear();
-
- fViewer.getSelectionProvider().removeSelectionChangedListener(selectionChangedListener);
- fViewer.removeTextListener(textListener);
- fViewer = null;
- }
-
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#getControl()
- */
- public Control getControl() {
- return fViewer != null ? fViewer.getControl() : null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
- */
- public void setActionBars(IActionBars actionBars) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.IPage#setFocus()
- */
- public void setFocus() {
- if (fViewer != null) {
- fViewer.getTextWidget().setFocus();
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- if (fViewer != null) {
- Object source = event.getSource();
- String property = event.getProperty();
-
- if (source.equals(fConsole) && IConsoleConstants.P_FONT.equals(property)) {
- fViewer.setFont(fConsole.getFont());
- } else if (IConsoleConstants.P_FONT_STYLE.equals(property)) {
- fViewer.getTextWidget().redraw();
- } else if (property.equals(IConsoleConstants.P_STREAM_COLOR)) {
- fViewer.getTextWidget().redraw();
- } else if (source.equals(fConsole) && property.equals(IConsoleConstants.P_TAB_SIZE)) {
- Integer tabSize = (Integer)event.getNewValue();
- fViewer.setTabWidth(tabSize.intValue());
- } else if (source.equals(fConsole) && property.equals(IConsoleConstants.P_CONSOLE_WIDTH)) {
- fViewer.setConsoleWidth(fConsole.getConsoleWidth());
- } else if (property.equals(IConsoleConstants.P_CONSOLE_HYPERLINK_ADDED)) {
- synchronized (fLock) {
- if (fUpdateScheduled) {
- return;
- } else if (fViewer != null) {
- fUpdateScheduled = true;
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
- public void run() {
- synchronized (fLock) {
- if(fViewer != null) {
- fViewer.getTextWidget().redraw();
- }
- fUpdateScheduled = false;
- }
- }
- });
- }
- }
- }
- }
- }
-
- /**
- * Creates actions.
- */
- protected void createActions() {
- IActionBars actionBars= getSite().getActionBars();
- TextViewerAction action= new TextViewerAction(fViewer, ITextOperationTarget.SELECT_ALL);
- action.configureAction(ConsoleMessages.getString("IOConsolePage.0"), ConsoleMessages.getString("IOConsolePage.1"), ConsoleMessages.getString("IOConsolePage.2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- setGlobalAction(actionBars, ActionFactory.SELECT_ALL.getId(), action);
-
- action= new TextViewerAction(fViewer, ITextOperationTarget.CUT);
- action.configureAction(ConsoleMessages.getString("IOConsolePage.3"), ConsoleMessages.getString("IOConsolePage.4"), ConsoleMessages.getString("IOConsolePage.5")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
- action.setActionDefinitionId(IWorkbenchActionDefinitionIds.CUT);
- setGlobalAction(actionBars, ActionFactory.CUT.getId(), action);
-
- action= new TextViewerAction(fViewer, ITextOperationTarget.COPY);
- action.configureAction(ConsoleMessages.getString("IOConsolePage.6"), ConsoleMessages.getString("IOConsolePage.7"), ConsoleMessages.getString("IOConsolePage.8")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
- action.setActionDefinitionId(IWorkbenchActionDefinitionIds.COPY);
- setGlobalAction(actionBars, ActionFactory.COPY.getId(), action);
-
- action= new TextViewerAction(fViewer, ITextOperationTarget.PASTE);
- action.configureAction(ConsoleMessages.getString("IOConsolePage.9"), ConsoleMessages.getString("IOConsolePage.10"), ConsoleMessages.getString("IOConsolePage.11")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
- action.setActionDefinitionId(IWorkbenchActionDefinitionIds.PASTE);
- setGlobalAction(actionBars, ActionFactory.PASTE.getId(), action);
-
- fClearOutputAction = new ClearOutputAction(fConsole);
-
- ResourceBundle bundle= ResourceBundle.getBundle("org.eclipse.ui.internal.console.ConsoleMessages"); //$NON-NLS-1$
- setGlobalAction(actionBars, ActionFactory.FIND.getId(), new FindReplaceAction(bundle, "find_replace_action.", fConsoleView)); //$NON-NLS-1$
-
- fSelectionActions.add(ActionFactory.CUT.getId());
- fSelectionActions.add(ActionFactory.COPY.getId());
- fSelectionActions.add(ActionFactory.PASTE.getId());
- fSelectionActions.add(ActionFactory.FIND.getId());
-
- actionBars.updateActionBars();
- }
-
- /**
- * Configures an action for key bindings.
- *
- * @param actionBars action bars for this page
- * @param actionID action definition id
- * @param action associated action
- */
- protected void setGlobalAction(IActionBars actionBars, String actionID, IAction action) {
- fGlobalActions.put(actionID, action);
- actionBars.setGlobalActionHandler(actionID, action);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class required) {
- if (IFindReplaceTarget.class.equals(required)) {
- return fViewer.getFindReplaceTarget();
- }
- if (Widget.class.equals(required)) {
- return fViewer.getTextWidget();
- }
- return null;
- }
-
- /**
- * Returns the view this page is contained in.
- *
- * @return the view this page is contained in
- */
- protected IConsoleView getConsoleView() {
- return fConsoleView;
- }
-
- /**
- * Returns the console this page is displaying.
- *
- * @return the console this page is displaying
- */
- protected IConsole getConsole() {
- return fConsole;
- }
-
- /**
- * Updates the global action with the given id
- *
- * @param actionId action definition id
- */
- protected void updateAction(String actionId) {
- IAction action= (IAction)fGlobalActions.get(actionId);
- if (action instanceof IUpdate) {
- ((IUpdate) action).update();
- }
- }
-
-
- /**
- * Fill the context menu
- *
- * @param menuManager menu
- */
- protected void contextMenuAboutToShow(IMenuManager menuManager) {
- IDocument doc= fViewer.getDocument();
- if (doc == null) {
- return;
- }
-
- menuManager.add((IAction)fGlobalActions.get(ActionFactory.CUT.getId()));
- menuManager.add((IAction)fGlobalActions.get(ActionFactory.COPY.getId()));
- menuManager.add((IAction)fGlobalActions.get(ActionFactory.PASTE.getId()));
- menuManager.add((IAction)fGlobalActions.get(ActionFactory.SELECT_ALL.getId()));
-
- menuManager.add(new Separator("FIND")); //$NON-NLS-1$
- menuManager.add((IAction)fGlobalActions.get(ActionFactory.FIND.getId()));
- menuManager.add(new FollowHyperlinkAction(fViewer));
- menuManager.add(fClearOutputAction);
-
- menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- protected void configureToolBar(IToolBarManager mgr) {
- mgr.appendToGroup(IConsoleConstants.OUTPUT_GROUP, fClearOutputAction);
- }
-
-
- /**
- * Returns the viewer contained in this page.
- *
- * @return the viewer contained in this page
- */
- public TextConsoleViewer getViewer() {
- return fViewer;
- }
-
- /**
- * Sets the viewer contained in this page.
- *
- * @param viewer text viewer
- */
- public void setViewer(TextConsoleViewer viewer) {
- this.fViewer = viewer;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
deleted file mode 100644
index 006c2a595..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.console;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.LineBackgroundEvent;
-import org.eclipse.swt.custom.LineBackgroundListener;
-import org.eclipse.swt.custom.LineStyleEvent;
-import org.eclipse.swt.custom.LineStyleListener;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.console.ConsoleDocumentAdapter;
-import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
-
-/**
- * Default viewer used to display a <code>TextConsole</code>.
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.1
- */
-public class TextConsoleViewer extends TextViewer implements LineStyleListener, LineBackgroundListener, MouseTrackListener, MouseMoveListener, MouseListener, PaintListener {
- /**
- * Adapts document to the text widget.
- */
- private ConsoleDocumentAdapter documentAdapter;
-
- private IHyperlink hyperlink;
-
- private Cursor handCursor;
-
- private Cursor textCursor;
-
- private int consoleWidth = -1;
-
- private TextConsole console;
-
- private IPropertyChangeListener propertyChangeListener;
-
- /**
- * Constructs a new viewer in the given parent for the specified console.
- *
- * @param parent containing widget
- * @param console text console
- */
- public TextConsoleViewer(Composite parent, TextConsole console) {
- super(parent, SWT.H_SCROLL | SWT.V_SCROLL);
- this.console = console;
- setDocument(console.getDocument());
-
- StyledText styledText = getTextWidget();
- styledText.setDoubleClickEnabled(true);
- styledText.addLineStyleListener(this);
- styledText.addLineBackgroundListener(this);
- styledText.setEditable(true);
- setFont(console.getFont());
- styledText.addMouseTrackListener(this);
- styledText.addPaintListener(this);
-
- ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
- propertyChangeListener = new HyperlinkColorChangeListener();
- colorRegistry.addListener(propertyChangeListener);
- }
-
- /**
- * Sets the tab width used by this viewer.
- *
- * @param tabWidth the tab width used by this viewer
- */
- public void setTabWidth(int tabWidth) {
- StyledText styledText = getTextWidget();
- styledText.setTabs(tabWidth);
- styledText.redraw();
- }
-
- /**
- * Sets the font used by this viewer.
- *
- * @param font the font used by this viewer
- */
- public void setFont(Font font) {
- StyledText styledText = getTextWidget();
- styledText.setFont(font);
- styledText.redraw();
- }
-
- /**
- * Positions the cursor at the end of the document.
- */
- protected void revealEndOfDocument() {
- StyledText text = getTextWidget();
- if (text != null) {
- int charCount = text.getCharCount();
- text.setCaretOffset(charCount);
- text.showSelection();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.custom.LineStyleListener#lineGetStyle(org.eclipse.swt.custom.LineStyleEvent)
- */
- public void lineGetStyle(LineStyleEvent event) {
- IDocument document = getDocument();
- if (document != null && document.getLength() > 0) {
- ArrayList ranges = new ArrayList();
- int offset = event.lineOffset;
- int length = event.lineText.length();
-
- StyleRange[] partitionerStyles = ((IConsoleDocumentPartitioner) document.getDocumentPartitioner()).getStyleRanges(event.lineOffset, event.lineText.length());
- if (partitionerStyles != null) {
- for (int i = 0; i < partitionerStyles.length; i++) {
- ranges.add(partitionerStyles[i]);
- }
- }
-
- try {
- Display display = ConsolePlugin.getStandardDisplay();
- Color hyperlinkText = JFaceColors.getHyperlinkText(display);
- Position[] positions = getDocument().getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
- Position[] overlap = findPosition(offset, length, positions);
- if (overlap != null) {
- for (int i = 0; i < overlap.length; i++) {
- weave(ranges, new StyleRange(overlap[i].offset, overlap[i].length, hyperlinkText, null));
- }
- }
- } catch (BadPositionCategoryException e) {
- }
-
- if (ranges.size() > 0) {
- event.styles = (StyleRange[]) ranges.toArray(new StyleRange[ranges.size()]);
- }
- }
- }
-
- /**
- * Weaves the given style range into the given list of style ranges. The given
- * range may overlap ranges in the list of ranges, and must be split into
- * non-overlapping ranges and inserted into the list to maintain order.
- *
- * @param ranges
- * @param styleRange
- */
- private void weave(List ranges, StyleRange styleRange) {
- if (ranges.isEmpty()) {
- ranges.add(styleRange);
- return;
- }
- int start = styleRange.start;
- int end = start + styleRange.length;
- for (int i = 0; i < ranges.size(); i++) {
- StyleRange r = (StyleRange) ranges.get(i);
- int rEnd = r.start + r.length;
- if (start < r.start) {
- if (end >= r.start) {
- ranges.add(i, new StyleRange(start, r.start - start, styleRange.foreground, styleRange.background));
- if (end > rEnd) {
- start = rEnd + 1;
- } else {
- return;
- }
- } else {
-
- }
- } else if (start < rEnd) {
- if (end > rEnd) {
- start = rEnd + 1;
- } else {
- return;
- }
- }
- }
- if (start < end) {
- ranges.add(new StyleRange(start, end - start, styleRange.foreground, styleRange.background));
- }
- }
-
- /**
- * Binary search for the positions overlapping the given range
- *
- * @param offset the offset of the range
- * @param length the length of the range
- * @param positions the positions to search
- * @return the positions overlapping the given range, or <code>null</code>
- */
- private Position[] findPosition(int offset, int length, Position[] positions) {
-
- if (positions.length == 0)
- return null;
-
- int rangeEnd = offset + length;
- int left= 0;
- int right= positions.length - 1;
- int mid= 0;
- Position position= null;
-
- while (left < right) {
-
- mid= (left + right) / 2;
-
- position= positions[mid];
- if (rangeEnd < position.getOffset()) {
- if (left == mid)
- right= left;
- else
- right= mid -1;
- } else if (offset > (position.getOffset() + position.getLength() - 1)) {
- if (right == mid)
- left= right;
- else
- left= mid +1;
- } else {
- left= right= mid;
- }
- }
-
-
- List list = new ArrayList();
- int index = left - 1;
- if (index >= 0) {
- position= positions[index];
- while (index >= 0 && (position.getOffset() + position.getLength()) > offset) {
- index--;
- if (index > 0) {
- position= positions[index];
- }
- }
- }
- index++;
- position= positions[index];
- while (index < positions.length && (position.getOffset() < rangeEnd)) {
- list.add(position);
- index++;
- if (index < positions.length) {
- position= positions[index];
- }
- }
-
- if (list.isEmpty()) {
- return null;
- }
- return (Position[])list.toArray(new Position[list.size()]);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.custom.LineBackgroundListener#lineGetBackground(org.eclipse.swt.custom.LineBackgroundEvent)
- */
- public void lineGetBackground(LineBackgroundEvent event) {
- event.lineBackground = null;
- }
-
- /**
- * @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
- */
- public void paintControl(PaintEvent e) {
- if (hyperlink != null) {
- IDocument doc = getDocument();
- StyledText text = getTextWidget();
-
- if (doc == null || text == null) {
- return;
- }
-
- IConsoleDocumentPartitioner partitioner = (IConsoleDocumentPartitioner) doc.getDocumentPartitioner();
- if (partitioner == null) {
- return;
- }
-
- IRegion linkRegion = console.getRegion(hyperlink);
- if (linkRegion != null) {
- int start = linkRegion.getOffset();
- int end = start + linkRegion.getLength();
-
- Color fontColor = JFaceColors.getActiveHyperlinkText(Display.getCurrent());
- Color color = e.gc.getForeground();
- e.gc.setForeground(fontColor);
-
- FontMetrics metrics = e.gc.getFontMetrics();
- int height = metrics.getHeight();
- int width = metrics.getAverageCharWidth();
-
- int startLine = text.getLineAtOffset(start);
- int endLine = text.getLineAtOffset(end);
- int baseLineBias = text.getBaseline() - (metrics.getAscent() + metrics.getLeading());
-
- for (int i = startLine; i <= endLine; i++) {
- int styleStart = i == startLine ? start : text.getOffsetAtLine(i);
- int styleEnd = i == endLine ? end : text.getOffsetAtLine(i + 1);
- Point p1 = text.getLocationAtOffset(styleStart);
- Point p2 = text.getLocationAtOffset(styleEnd - 1);
- e.gc.drawLine(p1.x, p1.y + height + baseLineBias, p2.x + width, p2.y + height + baseLineBias);
-
- String hyperlinkText = text.getText(styleStart, styleEnd-1);
- e.gc.drawString(hyperlinkText, p1.x, p1.y + baseLineBias);
- }
- e.gc.setForeground(color);
- }
- }
- }
-
- /**
- * Returns the hand cursor.
- *
- * @return the hand cursor
- */
- protected Cursor getHandCursor() {
- if (handCursor == null) {
- handCursor = new Cursor(ConsolePlugin.getStandardDisplay(), SWT.CURSOR_HAND);
- }
- return handCursor;
- }
-
- /**
- * Returns the text cursor.
- *
- * @return the text cursor
- */
- protected Cursor getTextCursor() {
- if (textCursor == null) {
- textCursor = new Cursor(ConsolePlugin.getStandardDisplay(), SWT.CURSOR_IBEAM);
- }
- return textCursor;
- }
-
- /**
- * Notification a hyperlink has been entered.
- *
- * @param link the link that was entered
- */
- protected void linkEntered(IHyperlink link) {
- Control control = getTextWidget();
- control.setRedraw(false);
- if (hyperlink != null) {
- linkExited(hyperlink);
- }
- hyperlink = link;
- hyperlink.linkEntered();
- control.setCursor(getHandCursor());
- control.setRedraw(true);
- control.redraw();
- control.addMouseListener(this);
- }
-
- /**
- * Notification a link was exited.
- *
- * @param link the link that was exited
- */
- protected void linkExited(IHyperlink link) {
- link.linkExited();
- hyperlink = null;
- Control control = getTextWidget();
- control.setCursor(getTextCursor());
- control.redraw();
- control.removeMouseListener(this);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseTrackListener#mouseEnter(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseEnter(MouseEvent e) {
- getTextWidget().addMouseMoveListener(this);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseTrackListener#mouseExit(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseExit(MouseEvent e) {
- getTextWidget().removeMouseMoveListener(this);
- if (hyperlink != null) {
- linkExited(hyperlink);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseHover(MouseEvent e) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseMove(MouseEvent e) {
- int offset = -1;
- try {
- Point p = new Point(e.x, e.y);
- offset = getTextWidget().getOffsetAtLocation(p);
- } catch (IllegalArgumentException ex) {
- // out of the document range
- }
- updateLinks(offset);
- }
-
- /**
- * The cursor has just be moved to the given offset, the mouse has hovered
- * over the given offset. Update link rendering.
- *
- * @param offset
- */
- protected void updateLinks(int offset) {
- if (offset >= 0) {
- IHyperlink link = getHyperlink(offset);
- if (link != null) {
- if (link.equals(hyperlink)) {
- return;
- }
- linkEntered(link);
- return;
- }
- }
- if (hyperlink != null) {
- linkExited(hyperlink);
- }
- }
-
- /**
- * Returns the currently active hyperlink or <code>null</code> if none.
- *
- * @return the currently active hyperlink or <code>null</code> if none
- */
- public IHyperlink getHyperlink() {
- return hyperlink;
- }
-
- /**
- * Returns the hyperlink at the specified offset, or <code>null</code> if none.
- *
- * @param offset offset at which a hyperlink has been requested
- * @return hyperlink at the specified offset, or <code>null</code> if none
- */
- public IHyperlink getHyperlink(int offset) {
- if (offset >= 0 && console != null) {
- return console.getHyperlink(offset);
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseDoubleClick(MouseEvent e) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseDown(MouseEvent e) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
- */
- public void mouseUp(MouseEvent e) {
- if (hyperlink != null) {
- String selection = getTextWidget().getSelectionText();
- if (selection.length() <= 0) {
- if (e.button == 1) {
- hyperlink.linkActivated();
- }
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.TextViewer#createDocumentAdapter()
- */
- protected IDocumentAdapter createDocumentAdapter() {
- if (documentAdapter == null) {
- documentAdapter = new ConsoleDocumentAdapter(consoleWidth = -1);
- }
- return documentAdapter;
- }
-
- /**
- * Sets the console to have a fixed character width. Use -1 to indicate that a fixed
- * width should not be used.
- *
- * @param consoleWidth fixed characater width of the console, or -1
- */
- public void setConsoleWidth(int width) {
- consoleWidth = width;
- if (documentAdapter != null) {
- documentAdapter.setWidth(consoleWidth);
-
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.TextViewer#handleDispose()
- */
- protected void handleDispose() {
- super.handleDispose();
-
- StyledText styledText = getTextWidget();
- styledText.removeLineStyleListener(this);
- styledText.removeLineBackgroundListener(this);
- styledText.removeMouseTrackListener(this);
- styledText.removePaintListener(this);
-
- handCursor = null;
- textCursor = null;
- hyperlink = null;
- console = null;
-
- ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
- colorRegistry.removeListener(propertyChangeListener);
- }
-
- class HyperlinkColorChangeListener implements IPropertyChangeListener {
- public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(JFacePreferences.ACTIVE_HYPERLINK_COLOR) || event.getProperty().equals(JFacePreferences.HYPERLINK_COLOR)) {
- getTextWidget().redraw();
- }
- }
-
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
deleted file mode 100644
index 88692ccd7..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.ConsolePluginImages;
-import org.eclipse.ui.internal.console.IConsoleHelpContextIds;
-import org.eclipse.ui.internal.console.IInternalConsoleConstants;
-
-/**
- * Clears the output in a text console.
- * <p>
- * Clients may instantiate this class; this class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ClearOutputAction extends Action {
-
- private ITextViewer fViewer;
- private TextConsole fIOConsole;
-
- /**
- * Constructs a clear output action.
- *
- * @since 3.1
- */
- private ClearOutputAction() {
- super(ConsoleMessages.getString("ClearOutputAction.title")); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("ClearOutputAction.toolTipText")); //$NON-NLS-1$
- setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IConsoleConstants.IMG_LCL_CLEAR));
- setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_CLEAR));
- setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_CLEAR));
- WorkbenchHelp.setHelp(this, IConsoleHelpContextIds.CLEAR_CONSOLE_ACTION);
- }
-
- /**
- * Constructs a clear output action for an I/O console. Clearing an I/O console
- * is performed via API on the <code>IOConsole</code>, rather than clearing
- * its document directly.
- *
- * @param ioConsole I/O console the action is associated with
- * @since 3.1
- */
- public ClearOutputAction(TextConsole ioConsole) {
- this();
- fIOConsole = ioConsole;
- }
-
- /**
- * Constructs an action to clear the document associated with a text viewer.
- *
- * @param viewer viewer whose document this action is associated with
- */
- public ClearOutputAction(ITextViewer viewer) {
- this();
- fViewer = viewer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- BusyIndicator.showWhile(ConsolePlugin.getStandardDisplay(), new Runnable() {
- public void run() {
- if (fIOConsole == null) {
- IDocument document = fViewer.getDocument();
- if (document != null) {
- document.set(""); //$NON-NLS-1$
- }
- fViewer.setSelectedRange(0, 0);
- fViewer.getTextWidget().redraw();
- } else {
- fIOConsole.clearConsole();
- }
- }
- });
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
deleted file mode 100644
index c1939e2e9..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-import org.eclipse.ui.internal.console.ConsolePluginImages;
-import org.eclipse.ui.internal.console.IInternalConsoleConstants;
-
-/**
- * Removes a console from the console manager.
- */
-public class CloseConsoleAction extends Action {
-
- private IConsole fConsole;
-
- public CloseConsoleAction(IConsole console) {
- super(ConsoleMessages.getString("CloseConsoleAction.0"), ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_CLOSE)); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("CloseConsoleAction.1")); //$NON-NLS-1$
- fConsole = console;
- }
-
- public void run() {
- ConsolePlugin.getDefault().getConsoleManager().removeConsoles(new IConsole[]{fConsole});
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
deleted file mode 100644
index ee3639a68..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Common function for actions that operate on a text viewer.
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.0
- */
-public class TextViewerAction extends Action implements IUpdate {
-
- private int fOperationCode= -1;
- private ITextOperationTarget fOperationTarget;
-
- /**
- * Constructs a new action in the given text viewer with
- * the specified operation code.
- *
- * @param viewer
- * @param operationCode
- */
- public TextViewerAction(ITextViewer viewer, int operationCode) {
- fOperationCode= operationCode;
- fOperationTarget= viewer.getTextOperationTarget();
- update();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.IUpdate#update()
- *
- * Updates the enabled state of the action.
- * Fires a property change if the enabled state changes.
- *
- * @see org.eclipse.jface.action.Action#firePropertyChange(String, Object, Object)
- */
- public void update() {
-
- boolean wasEnabled= isEnabled();
- boolean isEnabled= (fOperationTarget != null && fOperationTarget.canDoOperation(fOperationCode));
- setEnabled(isEnabled);
-
- if (wasEnabled != isEnabled) {
- firePropertyChange(ENABLED, wasEnabled ? Boolean.TRUE : Boolean.FALSE, isEnabled ? Boolean.TRUE : Boolean.FALSE);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- if (fOperationCode != -1 && fOperationTarget != null) {
- fOperationTarget.doOperation(fOperationCode);
- }
- }
-
- /**
- * Configures this action with a label, tool tip, and description.
- *
- * @param text action label
- * @param toolTipText action tool tip
- * @param description action description
- */
- public void configureAction(String text, String toolTipText, String description) {
- setText(text);
- setToolTipText(toolTipText);
- setDescription(description);
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
deleted file mode 100644
index ea740b8d2..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.console.actions;
-
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.internal.console.ConsoleMessages;
-
-/**
- * Action to position a text viewer to a specific line.
- * <p>
- * Clients may instantiate this class; this class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class TextViewerGotoLineAction extends TextViewerAction {
-
- /**
- * Validates whether the text found in the input field of the
- * dialog forms a valid line number, i.e. one to which can be
- * jumped.
- */
- class NumberValidator implements IInputValidator {
-
- public String isValid(String input) {
- try {
- int i= Integer.parseInt(input);
- if (i <= 0 || fLastLine < i)
- return ConsoleMessages.getString("TextViewerGotoLineAction.Line_number_out_of_range_1"); //$NON-NLS-1$
-
- } catch (NumberFormatException x) {
- return ConsoleMessages.getString("TextViewerGotoLineAction.Not_a_number_2"); //$NON-NLS-1$
- }
-
- return null;
- }
- }
-
- protected int fLastLine;
- protected ITextViewer fTextViewer;
-
- /**
- * Constructs a goto line action for the viewer using the provided resource bundle
- */
- public TextViewerGotoLineAction(ITextViewer viewer) {
- super(viewer, -1);
- fTextViewer= viewer;
- setText(ConsoleMessages.getString("TextViewerGotoLineAction.Go_to_&Line...@Ctrl+L_4")); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1")); //$NON-NLS-1$
- setDescription(ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1")); //$NON-NLS-1$
- }
-
- /**
- * @see TextViewerAction#update()
- */
- public void update() {
- }
-
- /**
- * Jumps to the line.
- */
- protected void gotoLine(int line) {
-
- IDocument document= fTextViewer.getDocument();
- try {
- int start= document.getLineOffset(line);
- int length= document.getLineLength(line);
- fTextViewer.getTextWidget().setSelection(start, start + length);
- fTextViewer.revealRange(start, length);
- } catch (BadLocationException x) {
- ConsolePlugin.errorDialog(fTextViewer.getTextWidget().getShell(), ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1"), ConsoleMessages.getString("TextViewerGotoLineAction.Exceptions_occurred_attempt_to_go_to_line_2"), x); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- try {
- Point selection= fTextViewer.getTextWidget().getSelection();
- IDocument document= fTextViewer.getDocument();
- fLastLine= document.getLineOfOffset(document.getLength()) + 1;
- int startLine= selection == null ? 1 : fTextViewer.getTextWidget().getLineAtOffset(selection.x) + 1;
- String title= ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1"); //$NON-NLS-1$
- String message= MessageFormat.format(ConsoleMessages.getString("TextViewerGotoLineAction.Enter_line_number__8"), new Object[] {new Integer(fLastLine)}); //$NON-NLS-1$
- String value= Integer.toString(startLine);
- Shell activeShell= fTextViewer.getTextWidget().getShell();
- InputDialog d= new InputDialog(activeShell, title, message, value, new NumberValidator());
- if (d.open() == Window.OK) {
- try {
- int line= Integer.parseInt(d.getValue());
- gotoLine(line - 1);
- } catch (NumberFormatException x) {
- ConsolePlugin.errorDialog(activeShell, ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1"), ConsoleMessages.getString("TextViewerGotoLineAction.Exceptions_occurred_attempt_to_go_to_line_2"), x); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- } catch (BadLocationException x) {
- ConsolePlugin.errorDialog(fTextViewer.getTextWidget().getShell(), ConsoleMessages.getString("TextViewerGotoLineAction.Go_To_Line_1"), ConsoleMessages.getString("TextViewerGotoLineAction.Exceptions_occurred_attempt_to_go_to_line_2"), x); //$NON-NLS-1$ //$NON-NLS-2$
- return;
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html b/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
deleted file mode 100644
index cfb538c69..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Console Actions</title>
-</head>
-
-<body link="#0000FF" vlink="#800080">
-
-<p align="left"> Application programming interfaces for Eclipse console specific
- actions.</p>
-
-<h2 align="left">Package Specification</h2>
-
-<p>This package provides a set of actions related to the Eclipse console.</p>
-<p>Clients are allowed to instantiate classes from this package. The classes are
- not intended to be subclassed.</p>
-</body>
-</html>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html b/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
deleted file mode 100644
index 95aa4ac5a..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Console</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Application programming interfaces for interaction
-with the Eclipse console.</p>
-
-<h2>Package Specification</h2>
-
-<p>The Eclipse platform UI console plug-in provides a set of classes and interfaces to
-support a generic console. This package contains a generic abstract console that provides the common functionality
-for consoles. Clients implementing consoles should subclass this <b>AbstractConsole</b>.</p>
-<p>The classes <b>MessageConsole</b> and <b>MessageConsoleStream</b> provide an
- implementation of a message console and message console stream that enables
- logging of messages to a console.</p>
-<p>A console manager (<b>IConsoleManager</b>) manages all active consoles, and
- provides notification of consoles which are added and removed. Consoles are
- displayed in a page book view. Each console implementation is reponsible for
- creating its page (<b>IPageBookView</b>), which provides freedom of presentation
- to the console implementation. A single console may be displayed simultaneously
- in multiple console views, in different workbench windows.</p>
-</body>
-</html>
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
deleted file mode 100644
index 826590cda..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-
-/**
- * A console document. Requires synchronization for multi-threaded access.
- */
-public class ConsoleDocument extends Document {
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#get(int, int)
- */
- public synchronized String get(int pos, int length) throws BadLocationException {
- return super.get(pos, length);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLength()
- */
- public synchronized int getLength() {
- return super.getLength();
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineDelimiter(int)
- */
- public synchronized String getLineDelimiter(int line) throws BadLocationException {
- return super.getLineDelimiter(line);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineInformation(int)
- */
- public synchronized IRegion getLineInformation(int line) throws BadLocationException {
- return super.getLineInformation(line);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineInformationOfOffset(int)
- */
- public synchronized IRegion getLineInformationOfOffset(int offset) throws BadLocationException {
- return super.getLineInformationOfOffset(offset);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineLength(int)
- */
- public synchronized int getLineLength(int line) throws BadLocationException {
- return super.getLineLength(line);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineOffset(int)
- */
- public synchronized int getLineOffset(int line) throws BadLocationException {
- return super.getLineOffset(line);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getLineOfOffset(int)
- */
- public synchronized int getLineOfOffset(int pos) throws BadLocationException {
- return super.getLineOfOffset(pos);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getNumberOfLines()
- */
- public synchronized int getNumberOfLines() {
- return super.getNumberOfLines();
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#replace(int, int, java.lang.String)
- */
- public synchronized void replace(int pos, int length, String text) throws BadLocationException {
- super.replace(pos, length, text);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#set(java.lang.String)
- */
- public synchronized void set(String text) {
- super.set(text);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.AbstractDocument#completeInitialization()
- */
- protected void completeInitialization() {
- super.completeInitialization();
- addPositionUpdater(new DefaultPositionUpdater(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY));
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#addPosition(java.lang.String, org.eclipse.jface.text.Position)
- */
- public synchronized void addPosition(String category, Position position) throws BadLocationException, BadPositionCategoryException {
- super.addPosition(category, position);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#removePosition(java.lang.String, org.eclipse.jface.text.Position)
- */
- public synchronized void removePosition(String category, Position position) throws BadPositionCategoryException {
- super.removePosition(category, position);
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocument#getPositions(java.lang.String)
- */
- public synchronized Position[] getPositions(String category) throws BadPositionCategoryException {
- return super.getPositions(category);
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
deleted file mode 100644
index 7145fe09b..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.Region;
-import org.eclipse.swt.custom.TextChangeListener;
-import org.eclipse.swt.custom.TextChangedEvent;
-import org.eclipse.swt.custom.TextChangingEvent;
-
-/**
- * Adapts a Console's document to the viewer StyledText widget. Allows proper line
- * wrapping of fixed width consoles without having to add line delimeters to the StyledText.
- *
- * By using this adapter, the offset of any character is the same in both the widget and the
- * document.
- *
- * @since 3.1
- */
-public class ConsoleDocumentAdapter implements IDocumentAdapter, IDocumentListener {
-
- private int consoleWidth = -1;
- private List textChangeListeners;
- private IDocument document;
-
- private List regions;
- private Pattern pattern = Pattern.compile("^.*$", Pattern.MULTILINE); //$NON-NLS-1$
-
- public ConsoleDocumentAdapter(int width) {
- textChangeListeners = new ArrayList();
- consoleWidth = width;
- regions = new ArrayList();
- }
-
- /*
- * repairs lines list from the beginning of the line containing the offset of any
- * DocumentEvent, to the end of the Document.
- */
- private void repairLines(int eventOffset) {
- try {
- int docLine = document.getLineOfOffset(eventOffset);
- int docLineStart = document.getLineOffset(docLine);
- int textLine = getLineAtOffset(docLineStart);
-
- for (int i=regions.size()-1; i>=textLine; i--) {
- regions.remove(i);
- }
-
- int numLinesInDoc = document.getNumberOfLines();
- String line = null;
- int offset = 0;
- for (int i = docLine; i<numLinesInDoc; i++) {
- offset = document.getLineOffset(i);
- int length = document.getLineLength(i);
-
- if (length == 0) {
- regions.add(new Region(offset, 0));
- } else {
- while (length > 0) {
- int trimmedLength = length;
- String lineDelimiter = document.getLineDelimiter(i);
- int lineDelimiterLength = 0;
- if (lineDelimiter != null) {
- lineDelimiterLength = lineDelimiter.length();
- trimmedLength -= lineDelimiterLength;
- }
-
- if (consoleWidth > 0 && consoleWidth < trimmedLength) {
- regions.add(new Region(offset, consoleWidth));
- offset += consoleWidth;
- length -= consoleWidth;
- } else {
- regions.add(new Region(offset, length));
- offset += length;
- length -= length;
- }
- }
- }
- }
- if (line != null && lineEndsWithDelimeter(line)) {
- regions.add(new Region(offset, 0));
- }
-
- } catch (BadLocationException e) {
- }
-
- if (regions.size() == 0) {
- regions.add(new Region(document.getLength(), 0));
- }
- }
-
- /**
- * Returns <code>true</code> if the line ends with a legal line delimiter
- * @return <code>true</code> if the line ends with a legal line delimiter, <code>false</code> otherwise
- */
- private boolean lineEndsWithDelimeter(String line) {
- String[] lld = document.getLegalLineDelimiters();
- for (int i = 0; i < lld.length; i++) {
- if (line.endsWith(lld[i])) {
- return true;
- }
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentAdapter#setDocument(org.eclipse.jface.text.IDocument)
- */
- public void setDocument(IDocument doc) {
- if (document != null) {
- document.removeDocumentListener(this);
- }
-
- document = doc;
-
- if (document != null) {
- document.addDocumentListener(this);
- repairLines(0);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#addTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
- */
- public synchronized void addTextChangeListener(TextChangeListener listener) {
- Assert.isNotNull(listener);
- if (!textChangeListeners.contains(listener)) {
- textChangeListeners.add(listener);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#removeTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
- */
- public synchronized void removeTextChangeListener(TextChangeListener listener) {
- if(textChangeListeners != null) {
- Assert.isNotNull(listener);
- textChangeListeners.remove(listener);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getCharCount()
- */
- public int getCharCount() {
- return document.getLength();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getLine(int)
- */
- public String getLine(int lineIndex) {
- Region region = (Region) regions.get(lineIndex);
- try {
- StringBuffer line = new StringBuffer(document.get(region.getOffset(), region.getLength()));
- int index = line.length() - 1;
- while(index > -1 && (line.charAt(index)=='\n' || line.charAt(index)=='\r')) {
- index--;
- }
- return line.substring(0, index+1);
- } catch (BadLocationException e) {
- }
- return ""; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getLineAtOffset(int)
- */
- public int getLineAtOffset(int offset) {
- if (offset == 0 || regions.size() <= 1) {
- return 0;
- }
-
- if (offset == document.getLength()) {
- return regions.size()-1;
- }
-
- int left= 0;
- int right= regions.size() -1;
- int midIndex = 0;
- Region mid = null;
-
- while (left <= right) {
- midIndex= (left + right) / 2;
-
- mid = (Region) regions.get(midIndex);
- if (offset < mid.getOffset()) {
- right = midIndex;
- } else if (offset >= mid.getOffset() + mid.getLength()) {
- left = midIndex + 1;
- } else {
- return midIndex;
- }
- }
-
- return midIndex;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getLineCount()
- */
- public int getLineCount() {
- return regions.size();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getLineDelimiter()
- */
- public String getLineDelimiter() {
- return System.getProperty("line.separator"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getOffsetAtLine(int)
- */
- public int getOffsetAtLine(int lineIndex) {
- return ((Region) regions.get(lineIndex)).getOffset();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#getTextRange(int, int)
- */
- public String getTextRange(int start, int length) {
- try {
- return document.get(start, length);
- } catch (BadLocationException e) {
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#replaceTextRange(int, int, java.lang.String)
- */
- public void replaceTextRange(int start, int replaceLength, String text) {
- try {
- document.replace(start, replaceLength, text);
- } catch (BadLocationException e) {
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.custom.StyledTextContent#setText(java.lang.String)
- */
- public synchronized void setText(String text) {
- TextChangedEvent changeEvent = new TextChangedEvent(this);
- for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
- TextChangeListener element = (TextChangeListener) iter.next();
- element.textSet(changeEvent);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public synchronized void documentAboutToBeChanged(DocumentEvent event) {
- if (document == null) {
- return;
- }
-
- TextChangingEvent changeEvent = new TextChangingEvent(this);
- changeEvent.start = event.fOffset;
- changeEvent.newText = (event.fText == null ? "" : event.fText); //$NON-NLS-1$
- changeEvent.replaceCharCount = event.fLength;
- changeEvent.newCharCount = (event.fText == null ? 0 : event.fText.length());
-
- int first = getLineAtOffset(event.fOffset);
- int last = getLineAtOffset(event.fOffset + event.fLength);
- changeEvent.replaceLineCount= last - first;
-
- changeEvent.newLineCount = countLines(event.fText) ;
-
- for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
- TextChangeListener element = (TextChangeListener) iter.next();
- element.textChanging(changeEvent);
- }
- }
-
- /**
- * Counts the number of lines the viewer's text widget will need to use to
- * display the String
- * @return The number of lines necessary to display the string in the viewer.
- */
- private int countLines(String string) {
- Matcher matcher = pattern.matcher(string);
- int count = 0;
- while (matcher.find()) {
- count++;
- if (consoleWidth > 0) {
- String line = matcher.group();
- count += (line.length() / consoleWidth);
- }
- }
-
- if (lineEndsWithDelimeter(string)) {
- count++;
- }
-
- return count;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public synchronized void documentChanged(DocumentEvent event) {
- if (document == null) {
- return;
- }
-
- repairLines(event.fOffset);
-
- TextChangedEvent changeEvent = new TextChangedEvent(this);
-
- for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
- TextChangeListener element = (TextChangeListener) iter.next();
- element.textChanged(changeEvent);
- }
- }
-
- /**
- * sets consoleWidth, repairs line information, then fires event to the viewer text widget.
- * @param width The console's width
- */
- public void setWidth(int width) {
- consoleWidth = width;
- repairLines(0);
- TextChangedEvent changeEvent = new TextChangedEvent(this);
- for (Iterator iter = textChangeListeners.iterator(); iter.hasNext();) {
- TextChangeListener element = (TextChangeListener) iter.next();
- element.textSet(changeEvent);
- }
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
deleted file mode 100644
index 18f994fc8..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Drop down action in the console to select the console to display.
- */
-class ConsoleDropDownAction extends Action implements IMenuCreator, IConsoleListener, IUpdate {
-
- private IConsoleView fView;
- private Menu fMenu;
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.IUpdate#update()
- */
- public void update() {
- IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles();
- setEnabled(consoles.length > 1);
- }
-
- public ConsoleDropDownAction(IConsoleView view) {
- fView= view;
- setText(ConsoleMessages.getString("ConsoleDropDownAction.0")); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("ConsoleDropDownAction.1")); //$NON-NLS-1$
- setImageDescriptor(ConsolePluginImages.getImageDescriptor(IConsoleConstants.IMG_VIEW_CONSOLE));
- setMenuCreator(this);
- ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(this);
- update();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#dispose()
- */
- public void dispose() {
- if (fMenu != null) {
- fMenu.dispose();
- }
-
- fView= null;
- ConsolePlugin.getDefault().getConsoleManager().removeConsoleListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
- */
- public Menu getMenu(Menu parent) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
- */
- public Menu getMenu(Control parent) {
- if (fMenu != null) {
- fMenu.dispose();
- }
-
- fMenu= new Menu(parent);
- IConsole[] consoles= ConsolePlugin.getDefault().getConsoleManager().getConsoles();
- IConsole current = fView.getConsole();
- for (int i = 0; i < consoles.length; i++) {
- IConsole console = consoles[i];
- Action action = new ShowConsoleAction(fView, console);
- action.setChecked(console.equals(current));
- addActionToMenu(fMenu, action, i + 1);
- }
- return fMenu;
- }
-
- private void addActionToMenu(Menu parent, Action action, int accelerator) {
- if (accelerator < 10) {
- StringBuffer label= new StringBuffer();
- //add the numerical accelerator
- label.append('&');
- label.append(accelerator);
- label.append(' ');
- label.append(action.getText());
- action.setText(label.toString());
- }
- ActionContributionItem item= new ActionContributionItem(action);
- item.fill(parent, -1);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- ConsoleView consoleView = (ConsoleView) fView;
- boolean pinned = consoleView.isPinned();
- if (pinned) {
- consoleView.setPinned(false);
- }
- List stack = consoleView.getConsoleStack();
- if (stack.size() > 1) {
- IConsole console = (IConsole) stack.get(1);
- fView.display(console);
- }
- if (pinned) {
- consoleView.setPinned(true);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
- */
- public void consolesAdded(IConsole[] consoles) {
- Display display = ConsolePlugin.getStandardDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- update();
- }
- });
- }
-
- /* (non-Javadoc)
- *
- * Dispose the menu when a launch is removed, such that the actions in this
- * menu do not hang on to associated resources.
- *
- * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
- */
- public void consolesRemoved(IConsole[] consoles) {
- Display display = ConsolePlugin.getStandardDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- if (fMenu != null) {
- fMenu.dispose();
- }
- update();
- }
- });
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
deleted file mode 100644
index 912a88cac..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleFactory;
-import org.osgi.framework.Bundle;
-
-/**
- * @since 3.1
- */
-public class ConsoleFactoryExtension implements IPluginContribution {
-
- private IConfigurationElement fConfig;
- private Expression fEnablementExpression;
- private String fLabel;
- private ImageDescriptor fImageDescriptor;
- private IConsoleFactory fFactory;
-
- ConsoleFactoryExtension(IConfigurationElement config) {
- fConfig = config;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getLocalId()
- */
- public String getLocalId() {
- return fConfig.getAttribute("id"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getPluginId()
- */
- public String getPluginId() {
- return fConfig.getNamespace();
- }
-
- public boolean isEnabled() {
- try {
- Expression enablementExpression = getEnablementExpression();
- if (enablementExpression == null) {
- return true;
- }
- EvaluationContext context = new EvaluationContext(null, this);
- EvaluationResult evaluationResult = enablementExpression.evaluate(context);
- return evaluationResult != EvaluationResult.FALSE;
- } catch (CoreException e) {
- ConsolePlugin.log(e);
- return false;
- }
- }
-
- public Expression getEnablementExpression() throws CoreException {
- if (fEnablementExpression == null) {
- IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
- IConfigurationElement enablement = elements.length > 0 ? elements[0] : null;
-
- if (enablement != null) {
- fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
- }
- }
- return fEnablementExpression;
- }
-
- public String getLabel() {
- if (fLabel == null) {
- fLabel = fConfig.getAttribute("label"); //$NON-NLS-1$
- }
- return fLabel;
- }
-
- /**
- * @return
- */
- public ImageDescriptor getImageDescriptor() {
- if (fImageDescriptor == null) {
- try {
- String path = fConfig.getAttributeAsIs("icon"); //$NON-NLS-1$
- if (path != null) {
- Bundle bundle = Platform.getBundle(getPluginId());
- URL url = bundle.getEntry("/"); //$NON-NLS-1$
- url = new URL(url, path); //$NON-NLS-1$
- fImageDescriptor = ImageDescriptor.createFromURL(url);
- }
-
- } catch (MalformedURLException e) {
- ConsolePlugin.log(e);
- }
- }
- return fImageDescriptor;
- }
-
- /**
- * @return
- * @throws CoreException
- */
- public IConsoleFactory createFactory() throws CoreException {
- if (fFactory == null) {
- fFactory = (IConsoleFactory) fConfig.createExecutableExtension("class"); //$NON-NLS-1$
- }
- return fFactory;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
deleted file mode 100644
index 6bcc98719..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IHyperlink;
-
-/**
- * Describes the postition of a hyperlink within the Console's document.
- *
- * @since 3.1
- */
-public class ConsoleHyperlinkPosition extends Position {
-
- public static final String HYPER_LINK_CATEGORY = ConsolePlugin.getUniqueIdentifier() + ".CONSOLE_HYPERLINK_POSITION"; //$NON-NLS-1$
-
- private IHyperlink fLink = null;
-
- public ConsoleHyperlinkPosition(IHyperlink link, int offset, int length) {
- super(offset, length);
- fLink = link;
- }
-
- public IHyperlink getHyperLink() {
- return fLink;
- }
-
- /**
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object arg) {
- return arg instanceof ConsoleHyperlinkPosition && super.equals(arg) && getHyperLink().equals(((ConsoleHyperlinkPosition)arg).getHyperLink());
- }
-
- /**
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return super.hashCode() + getHyperLink().hashCode();
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
deleted file mode 100644
index 7b0474573..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import 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.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.IConsolePageParticipant;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.TextConsole;
-
-/**
- * The singleton console manager.
- *
- * @since 3.0
- */
-public class ConsoleManager implements IConsoleManager {
-
- /**
- * Console listeners
- */
- private ListenerList fListeners = null;
-
- /**
- * List of registered consoles
- */
- private List fConsoles = new ArrayList(10);
-
-
- // change notification constants
- private final static int ADDED = 1;
- private final static int REMOVED = 2;
-
- private List fPatternMatchListeners;
-
- private List fPageParticipants;
-
- private List fConsoleFactoryExtensions;
-
- private IWindowListener fWindowListener;
-
- private boolean fWarnQueued = false;
-
- /**
- * Notifies a console listener of additions or removals
- */
- class ConsoleNotifier implements ISafeRunnable {
-
- private IConsoleListener fListener;
- private int fType;
- private IConsole[] fChanged;
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- IStatus status = new Status(IStatus.ERROR, ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.INTERNAL_ERROR, ConsoleMessages.getString("ConsoleManager.0"), exception); //$NON-NLS-1$
- ConsolePlugin.log(status);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fType) {
- case ADDED:
- fListener.consolesAdded(fChanged);
- break;
- case REMOVED:
- fListener.consolesRemoved(fChanged);
- break;
- }
- }
-
- /**
- * Notifies the given listener of the adds/removes
- *
- * @param consoles the consoles that changed
- * @param update the type of change
- */
- public void notify(IConsole[] consoles, int update) {
- if (fListeners == null) {
- return;
- }
- fChanged = consoles;
- fType = update;
- Object[] copiedListeners= fListeners.getListeners();
- for (int i= 0; i < copiedListeners.length; i++) {
- fListener = (IConsoleListener)copiedListeners[i];
- Platform.run(this);
- }
- fChanged = null;
- fListener = null;
- }
- }
-
-
- public ConsoleManager() {
- fWindowListener = new IWindowListener() {
- public void windowActivated(IWorkbenchWindow window) {
- }
- public void windowDeactivated(IWorkbenchWindow window) {
- }
- public void windowOpened(IWorkbenchWindow window) {
- }
- public void windowClosed(IWorkbenchWindow window) {
- removeConsoles((IConsole[]) fConsoles.toArray(new IConsole[0]));
- }
- };
-
- ConsolePlugin.getDefault().getWorkbench().addWindowListener(fWindowListener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#addConsoleListener(org.eclipse.ui.console.IConsoleListener)
- */
- public void addConsoleListener(IConsoleListener listener) {
- if (fListeners == null) {
- fListeners = new ListenerList(5);
- }
- fListeners.add(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#removeConsoleListener(org.eclipse.ui.console.IConsoleListener)
- */
- public void removeConsoleListener(IConsoleListener listener) {
- if (fListeners != null) {
- fListeners.remove(listener);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#addConsoles(org.eclipse.ui.console.IConsole[])
- */
- public synchronized void addConsoles(IConsole[] consoles) {
- List added = new ArrayList(consoles.length);
- for (int i = 0; i < consoles.length; i++) {
- IConsole console = consoles[i];
- if(console instanceof TextConsole) {
- TextConsole ioconsole = (TextConsole)console;
- IPatternMatchListener[] matchListeners = createPatternMatchListeners(ioconsole);
- for (int j = 0; j < matchListeners.length; j++) {
- ioconsole.addPatternMatchListener(matchListeners[j]);
- }
- }
- if (!fConsoles.contains(console)) {
- fConsoles.add(console);
- added.add(console);
- }
- }
- if (!added.isEmpty()) {
- fireUpdate((IConsole[])added.toArray(new IConsole[added.size()]), ADDED);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#removeConsoles(org.eclipse.ui.console.IConsole[])
- */
- public synchronized void removeConsoles(IConsole[] consoles) {
- List removed = new ArrayList(consoles.length);
- for (int i = 0; i < consoles.length; i++) {
- IConsole console = consoles[i];
- if (fConsoles.remove(console)) {
- removed.add(console);
- }
- }
- if (!removed.isEmpty()) {
- fireUpdate((IConsole[])removed.toArray(new IConsole[removed.size()]), REMOVED);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#getConsoles()
- */
- public synchronized IConsole[] getConsoles() {
- return (IConsole[])fConsoles.toArray(new IConsole[fConsoles.size()]);
- }
-
- /**
- * Fires notification.
- *
- * @param consoles consoles added/removed
- * @param type ADD or REMOVE
- */
- private void fireUpdate(IConsole[] consoles, int type) {
- new ConsoleNotifier().notify(consoles, type);
- }
-
- /**
- * @see IConsoleManager#showConsoleView(IConsole)
- */
- public void showConsoleView(final IConsole console) {
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
- public void run() {
- boolean consoleFound = false;
- IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page= window.getActivePage();
- if (page != null) {
- IViewReference[] viewReferences = page.getViewReferences();
- for (int i = 0; i < viewReferences.length; i++) {
- IViewReference viewRef = viewReferences[i];
- if (viewRef == null) {
- continue;
- }
- if(IConsoleConstants.ID_CONSOLE_VIEW.equals(viewRef.getId())) {
- IWorkbenchPart part = viewRef.getPart(false);
- IConsoleView consoleView = null;
-
- if (!(part instanceof IConsoleView)) {
- continue;
- }
- consoleFound = true;
- consoleView = (IConsoleView) part;
-
- boolean bringToTop = shouldBringToTop(console, consoleView);
- if (bringToTop) {
- page.bringToTop(consoleView);
- }
- consoleView.display(console);
- }
- }
-
- if (!consoleFound) {
- try {
- IConsoleView consoleView = (IConsoleView) page.showView(IConsoleConstants.ID_CONSOLE_VIEW, null, IWorkbenchPage.VIEW_CREATE);
- boolean bringToTop = shouldBringToTop(console, consoleView);
- if (bringToTop) {
- page.bringToTop(consoleView);
- }
- consoleView.display(console);
- } catch (PartInitException pie) {
- ConsolePlugin.log(pie);
- }
- }
- }
- }
- }
- });
- }
-
- /**
- * Returns whether the given console view should be brought to the top.
- * The view should not be brought to the top if the view is pinned on
- * a console other than the given console.
- */
- private boolean shouldBringToTop(IConsole console, IViewPart consoleView) {
- boolean bringToTop= true;
- if (consoleView instanceof IConsoleView) {
- IConsoleView cView= (IConsoleView)consoleView;
- if (cView.isPinned()) {
- IConsole pinnedConsole= cView.getConsole();
- bringToTop = console.equals(pinnedConsole);
- }
- }
- return bringToTop;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#warnOfContentChange(org.eclipse.ui.console.IConsole)
- */
- public void warnOfContentChange(final IConsole console) {
- if (!fWarnQueued) {
- fWarnQueued = true;
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable(){
- public void run() {
- IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page= window.getActivePage();
- if (page != null) {
- IConsoleView consoleView= (IConsoleView)page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
- if (consoleView != null) {
- consoleView.warnOfContentChange(console);
- }
- }
- }
- fWarnQueued = false;
- }
- });
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#getPatternMatchListenerDelegates(org.eclipse.ui.console.IConsole)
- */
- public IPatternMatchListener[] createPatternMatchListeners(IConsole console) {
- if (fPatternMatchListeners == null) {
- fPatternMatchListeners = new ArrayList();
- IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_PATTERN_MATCH_LISTENERS);
- IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
- for (int i = 0; i < elements.length; i++) {
- IConfigurationElement config = elements[i];
- PatternMatchListenerExtension extension = new PatternMatchListenerExtension(config);
- fPatternMatchListeners.add(extension); //$NON-NLS-1$
- }
- }
- ArrayList list = new ArrayList();
- for(Iterator i = fPatternMatchListeners.iterator(); i.hasNext(); ) {
- PatternMatchListenerExtension extension = (PatternMatchListenerExtension) i.next();
- try {
- if (extension.isEnabledFor(console)) {
- list.add(new PatternMatchListener(extension));
- }
- } catch (CoreException e) {
- ConsolePlugin.log(e);
- }
- }
- return (PatternMatchListener[])list.toArray(new PatternMatchListener[0]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#getPageParticipants(org.eclipse.ui.console.IConsole)
- */
- public IConsolePageParticipant[] getPageParticipants(IConsole console) {
- if(fPageParticipants == null) {
- fPageParticipants = new ArrayList();
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_PAGE_PARTICIPANTS);
- IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
- for(int i = 0; i < elements.length; i++) {
- IConfigurationElement config = elements[i];
- ConsolePageParticipantExtension extension = new ConsolePageParticipantExtension(config);
- fPageParticipants.add(extension);
- }
- }
- ArrayList list = new ArrayList();
- for(Iterator i = fPageParticipants.iterator(); i.hasNext(); ) {
- ConsolePageParticipantExtension extension = (ConsolePageParticipantExtension) i.next();
- try {
- if (extension.isEnabledFor(console)) {
- list.add(extension.createDelegate());
- }
- } catch (CoreException e) {
- ConsolePlugin.log(e);
- }
- }
- return (IConsolePageParticipant[]) list.toArray(new IConsolePageParticipant[0]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleManager#getConsoleFactories()
- */
- public ConsoleFactoryExtension[] getConsoleFactoryExtensions() {
- if (fConsoleFactoryExtensions == null) {
- fConsoleFactoryExtensions = new ArrayList();
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(ConsolePlugin.getUniqueIdentifier(), IConsoleConstants.EXTENSION_POINT_CONSOLE_FACTORIES);
- IConfigurationElement[] configurationElements = extensionPoint.getConfigurationElements();
- for (int i = 0; i < configurationElements.length; i++) {
- fConsoleFactoryExtensions.add(new ConsoleFactoryExtension(configurationElements[i]));
- }
- }
- return (ConsoleFactoryExtension[]) fConsoleFactoryExtensions.toArray(new ConsoleFactoryExtension[0]);
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
deleted file mode 100644
index 6c89e23f6..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * ConsoleMessages
- */
-public class ConsoleMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.ui.internal.console.ConsoleMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE =
- ResourceBundle.getBundle(BUNDLE_NAME);
-
- private ConsoleMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
deleted file mode 100644
index 1b67ae0d0..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
+++ /dev/null
@@ -1,68 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-AbstractConsole.0=Exception occurred during console property change notification.
-
-ConsoleDropDownAction.0=Select Console
-ConsoleDropDownAction.1=Display Selected Console
-ConsoleViewConsoleFactory.0=Console View \#
-
-ConsoleManager.0=An exception occurred during console notification
-
-ConsoleView.0=Console
-
-
-find_replace_action.label=&Find/Replace...@Ctrl+F
-find_replace_action.tooltip=Find/Replace
-find_replace_action.image=
-find_replace_action.description=Find/Replace
-
-MessageConsolePage.&Copy@Ctrl+C_6=&Copy@Ctrl+C
-MessageConsolePage.Copy_7=Copy
-MessageConsolePage.Select_&All@Ctrl+A_12=Select &All@Ctrl+A
-MessageConsolePage.Select_All=Select All
-
-MessageConsolePartitioner.2=Low water mark must be less than high water mark.
-MessageConsolePartitioner.3=Low water mark must be greater than or equal to 1000.
-
-PinConsoleAction.0=Pi&n Console
-PinConsoleAction.1=Pin Console
-
-ClearOutputAction.title=Clea&r
-ClearOutputAction.toolTipText=Clear Console
-
-TextViewerGotoLineAction.Enter_line_number__8=Enter line number (1...{0}):
-TextViewerGotoLineAction.Exceptions_occurred_attempt_to_go_to_line_2=Exceptions occurred attempt to go to line
-TextViewerGotoLineAction.Go_to_&Line...@Ctrl+L_4=Go to &Line...@Ctrl+L
-TextViewerGotoLineAction.Go_To_Line_1=Go to Line
-TextViewerGotoLineAction.Line_number_out_of_range_1=Line number out of range
-TextViewerGotoLineAction.Not_a_number_2=Not a number
-
-IOConsolePage.0=Select &All@Ctrl+A
-IOConsolePage.1=Select All
-IOConsolePage.10=Paste
-IOConsolePage.11=Paste
-IOConsolePage.2=Select All
-IOConsolePage.3=Cut
-IOConsolePage.4=Cut
-IOConsolePage.5=Cut
-IOConsolePage.6=Copy
-IOConsolePage.7=Copy
-IOConsolePage.8=Copy
-IOConsolePage.9=Paste
-ScrollLockAction.0=Scroll Lock
-ScrollLockAction.1=Scroll Lock
-FollowHyperlinkAction.0=&Open Link
-FollowHyperlinkAction.1=Follow the selected hyperlink
-OpenConsoleAction.0=Open Console
-OpenConsoleAction.1=Open Console
-CloseConsoleAction.0=&Close Console
-CloseConsoleAction.1=Close Console
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
deleted file mode 100644
index 70cc13b14..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsolePageParticipant;
-
-public class ConsolePageParticipantExtension implements IPluginContribution {
-
- private IConfigurationElement fConfig;
- private Expression fEnablementExpression;
-
- public ConsolePageParticipantExtension(IConfigurationElement config) {
- fConfig = config;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getLocalId()
- */
- public String getLocalId() {
- return fConfig.getAttribute("id"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getPluginId()
- */
- public String getPluginId() {
- return fConfig.getNamespace();
- }
-
- public boolean isEnabledFor(IConsole console) throws CoreException {
- EvaluationContext context = new EvaluationContext(null, console);
- EvaluationResult evaluationResult = getEnablementExpression().evaluate(context);
- return evaluationResult == EvaluationResult.TRUE;
- }
-
- public Expression getEnablementExpression() throws CoreException {
- if (fEnablementExpression == null) {
- IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
- IConfigurationElement enablement = elements.length > 0 ? elements[0] : null;
-
- if (enablement != null) {
- fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
- }
- }
- return fEnablementExpression;
- }
-
- public IConsolePageParticipant createDelegate() throws CoreException {
- return (IConsolePageParticipant) fConfig.createExecutableExtension("class"); //$NON-NLS-1$;
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
deleted file mode 100644
index 697f224f1..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.PatternMatchEvent;
-import org.eclipse.ui.console.TextConsole;
-
-public class ConsolePatternMatcher implements IDocumentListener {
-
- private MatchJob fMatchJob = new MatchJob();
-
- /**
- * Collection of compiled pattern match listeners
- */
- private ArrayList patterns = new ArrayList();
-
- private TextConsole fConsole;
-
- private boolean fFinalMatch;
-
- private boolean fScheduleFinal;
-
- public ConsolePatternMatcher(TextConsole console) {
- fConsole = console;
- fMatchJob.setRule(fConsole.getSchedulingRule());
- }
-
- private class MatchJob extends Job {
- MatchJob() {
- super("Match Job"); //$NON-NLS-1$
- setSystem(true);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- IDocument doc = fConsole.getDocument();
- String text = null;
- int prevBaseOffset = -1;
- if (doc != null && !monitor.isCanceled()) {
- int endOfSearch = doc.getLength();
- int indexOfLastChar = endOfSearch;
- if (indexOfLastChar > 0) {
- indexOfLastChar--;
- }
- int lastLineToSearch = 0;
- int offsetOfLastLineToSearch = 0;
- try {
- lastLineToSearch = doc.getLineOfOffset(indexOfLastChar);
- offsetOfLastLineToSearch = doc.getLineOffset(lastLineToSearch);
- } catch (BadLocationException e) {
- // perhaps the buffer was re-set
- return Status.OK_STATUS;
- }
- for (int i = 0; i < patterns.size(); i++) {
- if (monitor.isCanceled()) {
- break;
- }
- CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) patterns.get(i);
- int baseOffset = notifier.end;
- int lengthToSearch = endOfSearch - baseOffset;
- if (lengthToSearch > 0) {
- try {
- if (prevBaseOffset != baseOffset) {
- // reuse the text string if possible
- text = doc.get(baseOffset, lengthToSearch);
- }
- Matcher reg = notifier.pattern.matcher(text);
- Matcher quick = null;
- if (notifier.qualifier != null) {
- quick = notifier.qualifier.matcher(text);
- }
- int startOfNextSearch = 0;
- int endOfLastMatch = -1;
- int lineOfLastMatch = -1;
- while ((startOfNextSearch < lengthToSearch) && !monitor.isCanceled()) {
- if (quick != null) {
- if (quick.find(startOfNextSearch)) {
- // start searching on the beginning
- // of the line where the potential
- // match was found, or after the
- // last match on the same line
- int matchLine = doc.getLineOfOffset(baseOffset + quick.start());
- if (lineOfLastMatch == matchLine) {
- startOfNextSearch = endOfLastMatch;
- } else {
- startOfNextSearch = doc.getLineOffset(matchLine) - baseOffset;
- }
- } else {
- startOfNextSearch = lengthToSearch;
- }
- }
- if (startOfNextSearch < 0) {
- startOfNextSearch = 0;
- }
- if (startOfNextSearch < lengthToSearch) {
- if (reg.find(startOfNextSearch)) {
- endOfLastMatch = reg.end();
- lineOfLastMatch = doc.getLineOfOffset(baseOffset + endOfLastMatch - 1);
- int regStart = reg.start();
- IPatternMatchListener listener = notifier.listener;
- if (listener != null && !monitor.isCanceled()) {
- listener.matchFound(new PatternMatchEvent(fConsole, baseOffset + regStart, endOfLastMatch - regStart));
- }
- startOfNextSearch = endOfLastMatch;
- } else {
- startOfNextSearch = lengthToSearch;
- }
- }
- }
- // update start of next search to the last line
- // searched
- // or the end of the last match if it was on the
- // line that
- // was last searched
- if (lastLineToSearch == lineOfLastMatch) {
- notifier.end = baseOffset + endOfLastMatch;
- } else {
- notifier.end = offsetOfLastLineToSearch;
- }
- } catch (BadLocationException e) {
- ConsolePlugin.log(e);
- }
- }
- prevBaseOffset = baseOffset;
- }
- }
-
- if (fFinalMatch) {
- fConsole.matcherFinished();
- } else if (fScheduleFinal) {
- fFinalMatch = true;
- schedule();
- }
-
-
- return Status.OK_STATUS;
- }
- }
-
- private class CompiledPatternMatchListener {
- Pattern pattern;
-
- Pattern qualifier;
-
- IPatternMatchListener listener;
-
- int end = 0;
-
- CompiledPatternMatchListener(Pattern pattern, Pattern qualifier, IPatternMatchListener matchListener) {
- this.pattern = pattern;
- this.listener = matchListener;
- this.qualifier = qualifier;
- }
-
- public void dispose() {
- listener.disconnect();
- pattern = null;
- qualifier = null;
- listener = null;
- }
- }
-
- /**
- * Adds the given pattern match listener to this console. The listener will
- * be connected and receive match notifications.
- *
- * @param matchListener
- * the pattern match listener to add
- */
- public void addPatternMatchListener(IPatternMatchListener matchListener) {
- synchronized (patterns) {
-
- // check for dups
- for (Iterator iter = patterns.iterator(); iter.hasNext();) {
- CompiledPatternMatchListener element = (CompiledPatternMatchListener) iter.next();
- if (element.listener == matchListener) {
- return;
- }
- }
-
- if (matchListener == null || matchListener.getPattern() == null) {
- throw new IllegalArgumentException("Pattern cannot be null"); //$NON-NLS-1$
- }
-
- Pattern pattern = Pattern.compile(matchListener.getPattern(), matchListener.getCompilerFlags());
- String qualifier = matchListener.getLineQualifier();
- Pattern qPattern = null;
- if (qualifier != null) {
- qPattern = Pattern.compile(qualifier, matchListener.getCompilerFlags());
- }
- CompiledPatternMatchListener notifier = new CompiledPatternMatchListener(pattern, qPattern, matchListener);
- patterns.add(notifier);
- matchListener.connect(fConsole);
- fMatchJob.schedule();
- }
- }
-
- /**
- * Removes the given pattern match listener from this console. The listener
- * will be disconnected and will no longer receive match notifications.
- *
- * @param matchListener
- * the pattern match listener to remove.
- */
- public void removePatternMatchListener(IPatternMatchListener matchListener) {
- synchronized (patterns) {
- for (Iterator iter = patterns.iterator(); iter.hasNext();) {
- CompiledPatternMatchListener element = (CompiledPatternMatchListener) iter.next();
- if (element.listener == matchListener) {
- iter.remove();
- matchListener.disconnect();
- }
- }
- }
- }
-
- public void disconnect() {
- fMatchJob.cancel();
- synchronized (patterns) {
- Iterator iterator = patterns.iterator();
- while (iterator.hasNext()) {
- CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iterator.next();
- notifier.dispose();
- }
- patterns.clear();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public void documentChanged(DocumentEvent event) {
- if (event.fLength > 0) {
- synchronized (patterns) {
- if (event.fDocument.getLength() == 0) {
- // document has been cleared, reset match listeners
- Iterator iter = patterns.iterator();
- while (iter.hasNext()) {
- CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iter.next();
- notifier.end = 0;
- }
- } else {
- if (event.fOffset == 0) {
- //document was trimmed
- Iterator iter = patterns.iterator();
- while (iter.hasNext()) {
- CompiledPatternMatchListener notifier = (CompiledPatternMatchListener) iter.next();
- notifier.end = notifier.end > event.fLength ? notifier.end-event.fLength : 0;
- }
- }
- }
- }
- }
- fMatchJob.schedule();
- }
-
- /**
- * @return
- */
- public boolean isScheduled() {
- return fMatchJob.getState()==Job.NONE;
- }
-
- public void forceFinalMatching() {
- fScheduleFinal = true;
- fMatchJob.schedule();
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
deleted file mode 100644
index 2e1e19301..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-
-/**
- * The images provided by the debug plugin.
- */
-public class ConsolePluginImages {
-
- /**
- * The image registry containing <code>Image</code>s.
- */
- private static ImageRegistry imageRegistry;
-
- /**
- * A table of all the <code>ImageDescriptor</code>s.
- */
- private static Map imageDescriptors;
-
- /* Declare Common paths */
- private static URL ICON_BASE_URL= null;
-
- static {
- String pathSuffix = "icons/full/"; //$NON-NLS-1$
- ICON_BASE_URL= ConsolePlugin.getDefault().getBundle().getEntry(pathSuffix);
- }
-
- // Use IPath and toOSString to build the names to ensure they have the slashes correct
- private final static String LOCALTOOL= "clcl16/"; //basic colors - size 16x16 //$NON-NLS-1$
- private final static String DLCL= "dlcl16/"; //disabled - size 16x16 //$NON-NLS-1$
- private final static String ELCL= "elcl16/"; //enabled - size 16x16 //$NON-NLS-1$
- private final static String VIEW= "cview16/"; // views //$NON-NLS-1$
-
- /**
- * Declare all images
- */
- private static void declareImages() {
- // Actions
-
- //local toolbars
- declareRegistryImage(IConsoleConstants.IMG_LCL_CLEAR, LOCALTOOL + "clear_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_LCL_PIN, LOCALTOOL + "pin.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_LCL_LOCK, LOCALTOOL + "lock_co.gif"); //$NON-NLS-1$
-
- // disabled local toolbars
- declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLEAR, DLCL + "clear_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_PIN, DLCL + "pin.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_LOCK, DLCL + "lock_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLOSE, DLCL + "rem_co.gif"); //$NON-NLS-1$
-
- // enabled local toolbars
- declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLEAR, ELCL + "clear_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_PIN, ELCL + "pin.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_LOCK, ELCL + "lock_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLOSE, ELCL + "rem_co.gif"); //$NON-NLS-1$
- declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_NEW_CON, ELCL + "new_con.gif"); //$NON-NLS-1$
-
- // Views
- declareRegistryImage(IConsoleConstants.IMG_VIEW_CONSOLE, VIEW + "console_view.gif"); //$NON-NLS-1$
- }
-
- /**
- * Declare an Image in the registry table.
- * @param key The key to use when registering the image
- * @param path The path where the image can be found. This path is relative to where
- * this plugin class is found (i.e. typically the packages directory)
- */
- private final static void declareRegistryImage(String key, String path) {
- ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor();
- try {
- desc= ImageDescriptor.createFromURL(makeIconFileURL(path));
- } catch (MalformedURLException me) {
- ConsolePlugin.log(me);
- }
- imageRegistry.put(key, desc);
- imageDescriptors.put(key, desc);
- }
-
- /**
- * Returns the ImageRegistry.
- */
- public static ImageRegistry getImageRegistry() {
- if (imageRegistry == null) {
- initializeImageRegistry();
- }
- return imageRegistry;
- }
-
- /**
- * Initialize the image registry by declaring all of the required
- * graphics. This involves creating JFace image descriptors describing
- * how to create/find the image should it be needed.
- * The image is not actually allocated until requested.
- *
- * Prefix conventions
- * Wizard Banners WIZBAN_
- * Preference Banners PREF_BAN_
- * Property Page Banners PROPBAN_
- * Color toolbar CTOOL_
- * Enable toolbar ETOOL_
- * Disable toolbar DTOOL_
- * Local enabled toolbar ELCL_
- * Local Disable toolbar DLCL_
- * Object large OBJL_
- * Object small OBJS_
- * View VIEW_
- * Product images PROD_
- * Misc images MISC_
- *
- * Where are the images?
- * The images (typically gifs) are found in the same location as this plugin class.
- * This may mean the same package directory as the package holding this class.
- * The images are declared using this.getClass() to ensure they are looked up via
- * this plugin class.
- * @see org.eclipse.jface.resource.ImageRegistry
- */
- public static ImageRegistry initializeImageRegistry() {
- imageRegistry= new ImageRegistry(ConsolePlugin.getStandardDisplay());
- imageDescriptors = new HashMap(30);
- 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) {
- if (imageDescriptors == null) {
- initializeImageRegistry();
- }
- return (ImageDescriptor)imageDescriptors.get(key);
- }
-
- private static URL makeIconFileURL(String iconPath) throws MalformedURLException {
- if (ICON_BASE_URL == null) {
- throw new MalformedURLException();
- }
-
- return new URL(ICON_BASE_URL, iconPath);
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
deleted file mode 100644
index aa743c768..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.ui.console.IConsole;
-
-/**
- * Tests if an IOConsole's type matches the expected value
- *
- * @since 3.1
- */
-public class ConsoleTypePropertyTester extends PropertyTester {
-
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- */
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- IConsole console = (IConsole) receiver;
- String type = console.getType();
- return type != null ? type.equals(expectedValue) : false;
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
deleted file mode 100644
index f8ba3f628..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.IConsolePageParticipant;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * Page book console view.
- *
- * @since 3.0
- */
-public class ConsoleView extends PageBookView implements IConsoleView, IConsoleListener, IPropertyChangeListener, IPartListener2 {
-
- /**
- * Whether this console is pinned.
- */
- private boolean fPinned = false;
-
- /**
- * Stack of consoles in MRU order
- */
- private List fStack = new ArrayList();
-
- /**
- * The console being displayed, or <code>null</code> if none
- */
- private IConsole fActiveConsole = null;
-
- /**
- * Map of consoles to dummy console parts (used to close pages)
- */
- private Map fConsoleToPart;
-
- /**
- * Map of consoles to array of page participants
- */
- private Map fConsoleToPageParticipants;
-
- /**
- * Map of parts to consoles
- */
- private Map fPartToConsole;
-
- /**
- * Whether this view is active
- */
- private boolean fActive = false;
-
- // actions
- private PinConsoleAction fPinAction = null;
- private ConsoleDropDownAction fDisplayConsoleAction = null;
-
- private OpenConsoleAction fOpenConsoleAction = null;
-
- private boolean fScrollLock;
-
- private boolean isAvailable() {
- return getPageBook() != null && !getPageBook().isDisposed();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- Object source = event.getSource();
- if (source instanceof IConsole && event.getProperty().equals(IBasicPropertyConstants.P_TEXT)) {
- if (source.equals(getConsole())) {
- updateTitle();
- }
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener#partClosed(org.eclipse.ui.IWorkbenchPart)
- */
- public void partClosed(IWorkbenchPart part) {
- super.partClosed(part);
- fPinAction.update();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.ui.console.IConsoleView#getConsole()
- */
- public IConsole getConsole() {
- return fActiveConsole;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#showPageRec(org.eclipse.ui.part.PageBookView.PageRec)
- */
- protected void showPageRec(PageRec pageRec) {
- // don't show the page when pinned, unless this is the first console to be added
- // or its the default page
- if (fActiveConsole != null && pageRec.page != getDefaultPage() && fPinned && fConsoleToPart.size() > 1) {
- IConsole console = (IConsole)fPartToConsole.get(pageRec.part);
- if (!fStack.contains(console)) {
- fStack.add(console);
- }
- return;
- }
- super.showPageRec(pageRec);
- fActiveConsole = (IConsole)fPartToConsole.get(pageRec.part);
- IConsole tos = null;
- if (!fStack.isEmpty()) {
- tos = (IConsole) fStack.get(0);
- }
- if (tos != null && !tos.equals(fActiveConsole)) {
- deactivateParticipants(tos);
- }
- if (fActiveConsole != null && !fActiveConsole.equals(tos)) {
- fStack.remove(fActiveConsole);
- fStack.add(0,fActiveConsole);
- activateParticipants(fActiveConsole);
- }
- updateTitle();
- // update console actions
- if (fPinAction != null) {
- fPinAction.update();
- }
- IPage page = getCurrentPage();
- if (page instanceof IOConsolePage) {
- ((IOConsolePage)page).setAutoScroll(!fScrollLock);
- }
- }
-
- /**
- * Activates the participants fot the given console, if any.
- *
- * @param console
- */
- private void activateParticipants(IConsole console) {
- // activate
- if (console != null && fActive) {
- IConsolePageParticipant[] participants = getParticipants(console);
- if (participants != null) {
- for (int i = 0; i < participants.length; i++) {
- // TODO: safe runnable
- participants[i].activated();
- }
- }
- }
- }
-
- /**
- * Returns a stack of consoles in the view in MRU order.
- *
- * @return a stack of consoles in the view in MRU order
- */
- protected List getConsoleStack() {
- return fStack;
- }
-
- /**
- * Updates the view title based on the active console
- */
- protected void updateTitle() {
- IConsole console = getConsole();
- if (console == null) {
- setContentDescription(ConsoleMessages.getString("ConsoleView.0")); //$NON-NLS-1$
- } else {
- setContentDescription(console.getName()); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#doDestroyPage(org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.part.PageBookView.PageRec)
- */
- protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
- IConsole console = (IConsole)fPartToConsole.get(part);
-
- // dispose page participants
- IConsolePageParticipant[] participants = (IConsolePageParticipant[]) fConsoleToPageParticipants.remove(console);
- for (int i = 0; i < participants.length; i++) {
- IConsolePageParticipant participant = participants[i];
- // TODO: this should be done in a safe runnable
- participant.dispose();
- }
-
- IPage page = pageRecord.page;
- page.dispose();
- pageRecord.dispose();
- console.removePropertyChangeListener(this);
-
- // empty cross-reference cache
- fPartToConsole.remove(part);
- fConsoleToPart.remove(console);
- if (fPartToConsole.isEmpty()) {
- fActiveConsole = null;
- }
-
- // update console actions
- fPinAction.update();
- }
-
- /**
- * Returns the page participants registered for the given console, or <code>null</code>
- *
- * @param console
- * @return registered page participants or <code>null</code>
- */
- private IConsolePageParticipant[] getParticipants(IConsole console) {
- return (IConsolePageParticipant[]) fConsoleToPageParticipants.get(console);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.IWorkbenchPart)
- */
- protected PageRec doCreatePage(IWorkbenchPart dummyPart) {
- ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)dummyPart;
- IConsole console = part.getConsole();
- IPageBookViewPage page = console.createPage(this);
- initPage(page);
- page.createControl(getPageBook());
- console.addPropertyChangeListener(this);
-
- // initialize page participants
- IConsolePageParticipant[] participants = ((ConsoleManager)getConsoleManager()).getPageParticipants(console);
- fConsoleToPageParticipants.put(console, participants);
- for (int i = 0; i < participants.length; i++) {
- IConsolePageParticipant participant = participants[i];
- // TODO: this should be done in a safe runnable
- participant.init(page, console);
- }
-
- PageRec rec = new PageRec(dummyPart, page);
- return rec;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#isImportant(org.eclipse.ui.IWorkbenchPart)
- */
- protected boolean isImportant(IWorkbenchPart part) {
- return part instanceof ConsoleWorkbenchPart;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- super.dispose();
- getViewSite().getPage().removePartListener((IPartListener2)this);
- getConsoleManager().removeConsoleListener(this);
- }
-
- /**
- * Returns the console manager.
- *
- * @return the console manager
- */
- private IConsoleManager getConsoleManager() {
- return ConsolePlugin.getDefault().getConsoleManager();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#createDefaultPage(org.eclipse.ui.part.PageBook)
- */
- protected IPage createDefaultPage(PageBook book) {
- MessagePage page = new MessagePage();
- page.createControl(getPageBook());
- initPage(page);
- return page;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleListener#consolesAdded(org.eclipse.ui.console.IConsole[])
- */
- public void consolesAdded(final IConsole[] consoles) {
- if (isAvailable()) {
- Runnable r = new Runnable() {
- public void run() {
- for (int i = 0; i < consoles.length; i++) {
- if (isAvailable()) {
- IConsole console = consoles[i];
- // ensure it's still registered since this is done asynchronously
- IConsole[] allConsoles = getConsoleManager().getConsoles();
- for (int j = 0; j < allConsoles.length; j++) {
- IConsole registered = allConsoles[j];
- if (registered.equals(console)) {
- ConsoleWorkbenchPart part = new ConsoleWorkbenchPart(console, getSite());
- fConsoleToPart.put(console, part);
- fPartToConsole.put(part, console);
- partActivated(part);
- break;
- }
- }
-
- }
- }
- }
- };
- asyncExec(r);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleListener#consolesRemoved(org.eclipse.ui.console.IConsole[])
- */
- public void consolesRemoved(final IConsole[] consoles) {
- if (isAvailable()) {
- Runnable r = new Runnable() {
- public void run() {
- for (int i = 0; i < consoles.length; i++) {
- if (isAvailable()) {
- IConsole console = consoles[i];
- fStack.remove(console);
- ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)fConsoleToPart.get(console);
- if (part != null) {
- partClosed(part);
- }
- if (getConsole() == null) {
- IConsole[] available = getConsoleManager().getConsoles();
- if (available.length > 0) {
- display(available[available.length - 1]);
- }
- }
- }
- }
- }
- };
- asyncExec(r);
- }
- }
-
- /**
- * Constructs a console view
- */
- public ConsoleView() {
- super();
- fConsoleToPart = new HashMap();
- fPartToConsole = new HashMap();
- fConsoleToPageParticipants = new HashMap();
- }
-
- protected void createActions() {
- fPinAction = new PinConsoleAction(this);
- fDisplayConsoleAction = new ConsoleDropDownAction(this);
- ConsoleFactoryExtension[] extensions = ((ConsoleManager)ConsolePlugin.getDefault().getConsoleManager()).getConsoleFactoryExtensions();
- if (extensions.length > 0) {
- fOpenConsoleAction = new OpenConsoleAction();
- }
- }
-
- protected void configureToolBar(IToolBarManager mgr) {
- mgr.add(new Separator(IConsoleConstants.LAUNCH_GROUP));
- mgr.add(new Separator(IConsoleConstants.OUTPUT_GROUP));
- mgr.add(new Separator("fixedGroup")); //$NON-NLS-1$
- mgr.add(fPinAction);
- mgr.add(fDisplayConsoleAction);
- if (fOpenConsoleAction != null) {
- mgr.add(fOpenConsoleAction);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#display(org.eclipse.ui.console.IConsole)
- */
- public void display(IConsole console) {
- if (fPinned && fActiveConsole != null) {
- return;
- }
- ConsoleWorkbenchPart part = (ConsoleWorkbenchPart)fConsoleToPart.get(console);
- if (part != null) {
- partActivated(part);
- }
- }
-
- /*/* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#pin(org.eclipse.ui.console.IConsole)
- */
- public void setPinned(boolean pin) {
- fPinned = pin;
- if (fPinAction != null) {
- fPinAction.update();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#isPinned()
- */
- public boolean isPinned() {
- return fPinned;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.part.PageBookView#getBootstrapPart()
- */
- protected IWorkbenchPart getBootstrapPart() {
- return null;
- }
-
- /**
- * Registers the given runnable with the display
- * associated with this view's control, if any.
- *
- * @see org.eclipse.swt.widgets.Display#asyncExec(java.lang.Runnable)
- */
- public void asyncExec(Runnable r) {
- if (isAvailable()) {
- getPageBook().getDisplay().asyncExec(r);
- }
- }
-
- /**
- * Creates this view's underlying viewer and actions.
- * Hooks a pop-up menu to the underlying viewer's control,
- * as well as a key listener. When the delete key is pressed,
- * the <code>REMOVE_ACTION</code> is invoked. Hooks help to
- * this view. Subclasses must implement the following methods
- * which are called in the following order when a view is
- * created:<ul>
- * <li><code>createViewer(Composite)</code> - the context
- * menu is hooked to the viewer's control.</li>
- * <li><code>createActions()</code></li>
- * <li><code>configureToolBar(IToolBarManager)</code></li>
- * <li><code>getHelpContextId()</code></li>
- * </ul>
- * @see IWorkbenchPart#createPartControl(Composite)
- */
- public void createPartControl(Composite parent) {
- super.createPartControl(parent);
- createActions();
- IToolBarManager tbm= getViewSite().getActionBars().getToolBarManager();
- configureToolBar(tbm);
- updateForExistingConsoles();
- getViewSite().getActionBars().updateActionBars();
- WorkbenchHelp.setHelp(parent, IConsoleHelpContextIds.CONSOLE_VIEW);
- getViewSite().getPage().addPartListener((IPartListener2)this);
- }
-
- /**
- * Initialize for existing consoles
- */
- private void updateForExistingConsoles() {
- IConsoleManager manager = getConsoleManager();
- // create pages for consoles
- IConsole[] consoles = manager.getConsoles();
- consolesAdded(consoles);
- // add as a listener
- manager.addConsoleListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#warnOfContentChange(org.eclipse.ui.console.IConsole)
- */
- public void warnOfContentChange(IConsole console) {
- IWorkbenchPart part = (IWorkbenchPart)fConsoleToPart.get(console);
- if (part != null) {
- IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) part.getSite().getAdapter(IWorkbenchSiteProgressService.class);
- if (service != null) {
- service.warnOfContentChange();
- }
- }
- }
-
- public Object getAdapter(Class key) {
- Object adpater = super.getAdapter(key);
- if (adpater == null) {
- IConsole console = getConsole();
- if (console != null) {
- IConsolePageParticipant[] participants = (IConsolePageParticipant[]) fConsoleToPageParticipants.get(console);
- // an adapter can be asked for before the console participants are created
- if (participants != null) {
- for (int i = 0; i < participants.length; i++) {
- IConsolePageParticipant participant = participants[i];
- adpater = participant.getAdapter(key);
- if (adpater != null) {
- return adpater;
- }
- }
- }
- }
- }
- return adpater;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partActivated(IWorkbenchPartReference partRef) {
- if (isThisPart(partRef)) {
- fActive = true;
- activateParticipants(fActiveConsole);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partBroughtToTop(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partClosed(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partDeactivated(IWorkbenchPartReference partRef) {
- if (isThisPart(partRef)) {
- fActive = false;
- deactivateParticipants(fActiveConsole);
- }
- }
-
- protected boolean isThisPart(IWorkbenchPartReference partRef) {
- if (partRef instanceof IViewReference) {
- IViewReference viewRef = (IViewReference) partRef;
- if (viewRef.getId().equals(getViewSite().getId())) {
- String secId = viewRef.getSecondaryId();
- String mySec = null;
- if (getSite() instanceof IViewSite) {
- mySec = ((IViewSite)getSite()).getSecondaryId();
- }
- if (mySec == null) {
- return secId == null;
- }
- return mySec.equals(secId);
- }
- }
- return false;
- }
-
- /**
- * Deactivates participants for the given console, if any.
- *
- * @param console console to deactivate
- */
- private void deactivateParticipants(IConsole console) {
- // deactivate
- if (console != null) {
- IConsolePageParticipant[] participants = getParticipants(console);
- if (participants != null) {
- for (int i = 0; i < participants.length; i++) {
- // TODO: safe runnable
- participants[i].deactivated();
- }
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partOpened(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partHidden(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partVisible(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
- */
- public void partInputChanged(IWorkbenchPartReference partRef) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#setScrollLock(boolean)
- */
- public void setScrollLock(boolean scrollLock) {
- fScrollLock = scrollLock;
-
- IPage page = getCurrentPage();
- if (page instanceof IOConsolePage) {
- ((IOConsolePage)page).setAutoScroll(!scrollLock);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#getScrollLock()
- */
- public boolean getScrollLock() {
- return fScrollLock;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleView#pin(org.eclipse.ui.console.IConsole)
- */
- public void pin(IConsole console) {
- if (console == null) {
- setPinned(false);
- } else {
- if (isPinned()) {
- setPinned(false);
- }
- display(console);
- setPinned(true);
- }
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
deleted file mode 100644
index 34b014db0..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleFactory;
-
-public class ConsoleViewConsoleFactory implements IConsoleFactory {
-
- int counter = 1;
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.console.IConsoleFactory#openConsole()
- */
- public void openConsole() {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null) {
- IWorkbenchPage page = window.getActivePage();
- if (page != null) {
- try {
- String secondaryId = ConsoleMessages.getString("ConsoleViewConsoleFactory.0") + counter; //$NON-NLS-1$
- page.showView(IConsoleConstants.ID_CONSOLE_VIEW, secondaryId, 1);
- counter++;
- } catch (PartInitException e) {
- ConsolePlugin.log(e);
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
deleted file mode 100644
index d31018090..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.console.IConsole;
-
-/**
- * Fake part to use as keys in page book for console pages
- */
-public class ConsoleWorkbenchPart implements IWorkbenchPart {
-
- private IConsole fConsole = null;
- private IWorkbenchPartSite fSite = null;
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return (obj instanceof ConsoleWorkbenchPart) &&
- fConsole.equals(((ConsoleWorkbenchPart)obj).fConsole);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return fConsole.hashCode();
- }
-
- /**
- * Constructs a part for the given console that binds to the given
- * site
- */
- public ConsoleWorkbenchPart(IConsole console, IWorkbenchPartSite site) {
- fConsole = console;
- fSite = site;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#addPropertyListener(org.eclipse.ui.IPropertyListener)
- */
- public void addPropertyListener(IPropertyListener listener) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
- */
- public void createPartControl(Composite parent) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#dispose()
- */
- public void dispose() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#getSite()
- */
- public IWorkbenchPartSite getSite() {
- return fSite;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#getTitle()
- */
- public String getTitle() {
- return ""; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#getTitleImage()
- */
- public Image getTitleImage() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#getTitleToolTip()
- */
- public String getTitleToolTip() {
- return ""; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#removePropertyListener(org.eclipse.ui.IPropertyListener)
- */
- public void removePropertyListener(IPropertyListener listener) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPart#setFocus()
- */
- public void setFocus() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- return null;
- }
-
- /**
- * Returns the console associated with this part.
- *
- * @return console associated with this part
- */
- protected IConsole getConsole() {
- return fConsole;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
deleted file mode 100644
index 1c89b005e..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.IHyperlink;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * Follows a hyperlink in the console
- *
- * @since 3.1
- */
-public class FollowHyperlinkAction extends Action {
-
- private TextConsoleViewer viewer;
-
- /**
- * Constructs a follow link action
- */
- public FollowHyperlinkAction(TextConsoleViewer consoleViewer) {
- super(ConsoleMessages.getString("FollowHyperlinkAction.0")); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("FollowHyperlinkAction.1")); //$NON-NLS-1$
- this.viewer = consoleViewer;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#isEnabled()
- */
- public boolean isEnabled() {
- return viewer.getHyperlink() != null;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- IHyperlink link = viewer.getHyperlink();
- if (link != null) {
- link.linkActivated();
- }
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
deleted file mode 100644
index b81cbea77..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.ui.console.IConsoleConstants;
-
-/**
- * Help context ids for the debug ui.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- *
- */
-public interface IConsoleHelpContextIds {
-
- public static final String PREFIX = IConsoleConstants.PLUGIN_ID + "."; //$NON-NLS-1$
-
- // Actions
- public static final String CLEAR_CONSOLE_ACTION = PREFIX + "clear_console_action_context"; //$NON-NLS-1$
- public static final String CONSOLE_SCROLL_LOCK_ACTION = PREFIX + "console_scroll_lock_action_context"; //$NON-NLS-1$
-
- // Views
- public static final String CONSOLE_VIEW = PREFIX + "console_view_context"; //$NON-NLS-1$
-
- // Preference pages
- public static final String CONSOLE_PREFERENCE_PAGE = PREFIX + "console_preference_page_context"; //$NON-NLS-1$
-}
-
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
deleted file mode 100644
index 17a002a2f..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-public interface IInternalConsoleConstants {
-
- // tool images
- public static final String IMG_LCL_PIN = "IMG_LCL_PIN"; //$NON-NLS-1$
- public static final String IMG_LCL_LOCK = "IMG_LCL_LOCK"; //$NON-NLS-1$
-
- // disabled local tool images
- public static final String IMG_DLCL_PIN = "IMG_DLCL_PIN"; //$NON-NLS-1$
- public static final String IMG_DLCL_CLEAR= "IMG_DLCL_CLEAR"; //$NON-NLS-1$
- public static final String IMG_DLCL_LOCK = "IMG_DLCL_LOCK"; //$NON-NLS-1$
- public static final String IMG_DLCL_CLOSE = "IMG_DLCL_CLOSE"; //$NON-NLS-1$
-
- // enabled local tool images
- public static final String IMG_ELCL_PIN = "IMG_ELCL_PIN"; //$NON-NLS-1$
- public static final String IMG_ELCL_CLEAR= "IMG_ELCL_CLEAR"; //$NON-NLS-1$
- public static final String IMG_ELCL_LOCK = "IMG_ELCL_LOCK"; //$NON-NLS-1$
- public static final String IMG_ELCL_CLOSE = "IMG_ELCL_CLOSE"; //$NON-NLS-1$
- public static final String IMG_ELCL_NEW_CON = "IMG_ELCL_NEW_CON"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
deleted file mode 100644
index 52c03352c..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.console.TextConsolePage;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * A page for an IOConsole
- *
- * @since 3.1
- *
- */
-public class IOConsolePage extends TextConsolePage {
-
- private ScrollLockAction fScrollLockAction;
-
- private boolean fReadOnly;
-
- private IPropertyChangeListener fPropertyChangeListener;
-
- public IOConsolePage(TextConsole console, IConsoleView view) {
- super(console, view);
-
- fPropertyChangeListener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- String property = event.getProperty();
- if (property.equals(IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE)) {
- setReadOnly();
- }
- }
- };
- console.addPropertyChangeListener(fPropertyChangeListener);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- super.createControl(parent);
- if (fReadOnly) {
- IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
- viewer.setReadOnly();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.console.TextConsolePage#createViewer(org.eclipse.swt.widgets.Composite,
- * org.eclipse.ui.console.TextConsole)
- */
- protected TextConsoleViewer createViewer(Composite parent) {
- return new IOConsoleViewer(parent, (TextConsole)getConsole());
- }
-
- public void setAutoScroll(boolean scroll) {
- IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
- if (viewer != null) {
- viewer.setAutoScroll(scroll);
- }
- }
-
- /**
- * Informs the viewer that it's text widget should not be editable.
- */
- public void setReadOnly() {
- fReadOnly = true;
- IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
- if (viewer != null) {
- viewer.setReadOnly();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.TextConsolePage#createActions()
- */
- protected void createActions() {
- super.createActions();
- fScrollLockAction = new ScrollLockAction(getConsoleView());
- setAutoScroll(!fScrollLockAction.isChecked());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.TextConsolePage#contextMenuAboutToShow(org.eclipse.jface.action.IMenuManager)
- */
- protected void contextMenuAboutToShow(IMenuManager menuManager) {
- super.contextMenuAboutToShow(menuManager);
- menuManager.add(fScrollLockAction);
- IOConsoleViewer viewer = (IOConsoleViewer) getViewer();
- if (!viewer.isReadOnly()) {
- menuManager.remove(ActionFactory.CUT.getId());
- menuManager.remove(ActionFactory.PASTE.getId());
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.console.TextConsolePage#configureToolBar(org.eclipse.jface.action.IToolBarManager)
- */
- protected void configureToolBar(IToolBarManager mgr) {
- super.configureToolBar(mgr);
- mgr.appendToGroup(IConsoleConstants.OUTPUT_GROUP, fScrollLockAction);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.part.IPage#dispose()
- */
- public void dispose() {
- if (fScrollLockAction != null) {
- fScrollLockAction.dispose();
- fScrollLockAction = null;
- }
- getConsole().removePropertyChangeListener(fPropertyChangeListener);
- super.dispose();
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
deleted file mode 100644
index f243d35e9..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IOConsoleInputStream;
-import org.eclipse.ui.console.IOConsoleOutputStream;
-
-/**
- * A region in an IOConsole's document.
- * @since 3.1
- *
- */
-public class IOConsolePartition implements ITypedRegion {
- public static final String OUTPUT_PARTITION_TYPE = ConsolePlugin.getUniqueIdentifier() + ".io_console_output_partition_type"; //$NON-NLS-1$
- public static final String INPUT_PARTITION_TYPE = ConsolePlugin.getUniqueIdentifier() + ".io_console_input_partition_type"; //$NON-NLS-1$
-
- /**
- * The data contained by this partition.
- */
- private StringBuffer buffer;
- private String type;
- private int offset;
- /**
- * Output partitions are all read only.
- * Input partitions are read only once they have been appended to the console's input stream.
- */
- private boolean readOnly;
-
- /**
- * Only one of inputStream or outputStream will be null depending on the partitions type.
- */
- private IOConsoleOutputStream outputStream;
- private IOConsoleInputStream inputStream;
- private int length;
-
- /**
- * Creates a new partition to contain output to console.
- */
- public IOConsolePartition(IOConsoleOutputStream outputStream, int length) {
- this.outputStream = outputStream;
- this.length = length;
- this.type = OUTPUT_PARTITION_TYPE;
- this.readOnly = true;
- }
-
- /**
- * Creates a new partition to contain input from a console
- */
- public IOConsolePartition(IOConsoleInputStream inputStream, String text) {
- this.inputStream = inputStream;
- buffer = new StringBuffer(text);
- length = text.length();
- this.type = INPUT_PARTITION_TYPE;
- this.readOnly = false;
- }
-
- /**
- * Inserts a string into this partition
- * @param s The string to insert
- * @param offset the offset in the partition
- */
- public void insert(String s, int insertOffset) {
- buffer.insert(insertOffset, s);
- length += s.length();
- }
-
- /**
- * Deletes data from this partition.
- * @param delOffset
- * @param delLength
- */
- public void delete(int delOffset, int delLength) {
- buffer.delete(delOffset, delOffset+delLength);
- length -= delLength;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.ITypedRegion#getType()
- */
- public String getType() {
- return type;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IRegion#getLength()
- */
- public int getLength() {
- return length;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IRegion#getOffset()
- */
- public int getOffset() {
- return offset;
- }
-
- /**
- * Sets this partitions offset in the document.
- * @param offset This partitions offset in the document.
- */
- public void setOffset(int offset) {
- this.offset = offset;
- }
-
- /**
- * Sets this partitions length
- *
- * @param length
- */
- public void setLength(int length) {
- this.length = length;
- }
-
- /**
- * Returns the data contained in this partition.
- * @return The data contained in this partition.
- */
- public String getString() {
- return buffer != null ? buffer.toString() : ""; //$NON-NLS-1$
- }
-
- /**
- * Returns a StyleRange object which may be used for setting the style
- * of this partition in a viewer.
- */
- public StyleRange getStyleRange(int rangeOffset, int rangeLength) {
- return new StyleRange(rangeOffset, rangeLength, getColor(), null, getFontStyle());
- }
-
- private int getFontStyle() {
- if (type.equals(INPUT_PARTITION_TYPE)) {
- return inputStream.getFontStyle();
- }
- return outputStream.getFontStyle();
- }
-
- public Color getColor() {
- if (type.equals(INPUT_PARTITION_TYPE)) {
- return inputStream.getColor();
- }
- return outputStream.getColor();
- }
-
- public boolean isReadOnly() {
- return readOnly;
- }
-
- public void setReadOnly() {
- readOnly = true;
- }
-
- public void clearBuffer() {
- buffer = null;
- }
-
- IOConsoleOutputStream getStream() {
- return outputStream;
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
deleted file mode 100644
index 412fe0d0b..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
+++ /dev/null
@@ -1,669 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentPartitionerExtension;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-import org.eclipse.ui.console.IOConsole;
-import org.eclipse.ui.console.IOConsoleInputStream;
-import org.eclipse.ui.console.IOConsoleOutputStream;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * Partitions an IOConsole's document
- * @since 3.1
- *
- */
-public class IOConsolePartitioner implements IConsoleDocumentPartitioner, IDocumentPartitionerExtension {
- private PendingPartition consoleClosedPartition;
- private IDocument document;
- private ArrayList partitions;
- /**
- * Blocks of data that have not yet been appended to the document.
- */
- private ArrayList pendingPartitions;
- /**
- * A list of PendingPartitions to be appended by the updateJob
- */
- private ArrayList updatePartitions;
- /**
- * The last partition appended to the document
- */
- private IOConsolePartition lastPartition;
- /**
- * Job that appends pending partitions to the document.
- */
- private QueueProcessingJob queueJob;
- /**
- * The input stream attached to this document.
- */
- private IOConsoleInputStream inputStream;
- /**
- * Flag to indicate that the updateJob is updating the document.
- */
- private boolean updateInProgress;
- /**
- * A list of partitions containing input from the console, that have
- * not been appended to the input stream yet.
- */
- private ArrayList inputPartitions;
- /**
- * offset used by updateJob
- */
- private int firstOffset;
- /**
- * An array of legal line delimiters
- */
- private String[] lld;
- private int highWaterMark = -1;
- private int lowWaterMark = -1;
- private boolean connected = false;
-
- private IOConsole console;
-
- private TrimJob trimJob = new TrimJob();
- /**
- * Lock for appending to and removing from the document - used
- * to synchronize addition of new text/partitions in the update
- * job and handling buffer overflow/clearing of the console.
- */
- private Object overflowLock = new Object();
-
- public IOConsolePartitioner(IOConsoleInputStream inputStream, IOConsole console) {
- this.inputStream = inputStream;
- this.console = console;
- trimJob.setRule(console.getSchedulingRule());
- }
-
- public IDocument getDocument() {
- return document;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#connect(org.eclipse.jface.text.IDocument)
- */
- public void connect(IDocument doc) {
- document = doc;
- document.setDocumentPartitioner(this);
- lld = document.getLegalLineDelimiters();
- partitions = new ArrayList();
- pendingPartitions = new ArrayList();
- inputPartitions = new ArrayList();
- queueJob = new QueueProcessingJob();
- queueJob.setSystem(true);
- queueJob.setRule(console.getSchedulingRule());
- connected = true;
- }
-
- public int getHighWaterMark() {
- return highWaterMark;
- }
-
- public int getLowWaterMark() {
- return lowWaterMark;
- }
-
- public void setWaterMarks(int low, int high) {
- lowWaterMark = low;
- highWaterMark = high;
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
- public void run() {
- checkBufferSize();
- }
- });
- }
-
- /**
- * Notification from the console that all of its streams have been closed.
- */
- public void streamsClosed() {
- consoleClosedPartition = new PendingPartition(null, null);
- synchronized (pendingPartitions) {
- pendingPartitions.add(consoleClosedPartition);
- }
- queueJob.schedule(); //ensure that all pending partitions are processed.
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#disconnect()
- */
- public void disconnect() {
- synchronized (overflowLock) {
- document = null;
- partitions.clear();
- connected = false;
- try {
- inputStream.close();
- } catch (IOException e) {
- }
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#documentChanged(org.eclipse.jface.text.DocumentEvent)
- */
- public boolean documentChanged(DocumentEvent event) {
- return documentChanged2(event) != null;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#getLegalContentTypes()
- */
- public String[] getLegalContentTypes() {
- return new String[] { IOConsolePartition.OUTPUT_PARTITION_TYPE, IOConsolePartition.INPUT_PARTITION_TYPE };
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#getContentType(int)
- */
- public String getContentType(int offset) {
- return getPartition(offset).getType();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#computePartitioning(int, int)
- */
- public ITypedRegion[] computePartitioning(int offset, int length) {
- int rangeEnd = offset + length;
- int left= 0;
- int right= partitions.size() - 1;
- int mid= 0;
- IOConsolePartition position= null;
-
- if (left == right) {
- return new IOConsolePartition[]{(IOConsolePartition) partitions.get(0)};
- }
- while (left < right) {
-
- mid= (left + right) / 2;
-
- position= (IOConsolePartition) partitions.get(mid);
- if (rangeEnd < position.getOffset()) {
- if (left == mid)
- right= left;
- else
- right= mid -1;
- } else if (offset > (position.getOffset() + position.getLength() - 1)) {
- if (right == mid)
- left= right;
- else
- left= mid +1;
- } else {
- left= right= mid;
- }
- }
-
-
- List list = new ArrayList();
- int index = left - 1;
- if (index >= 0) {
- position= (IOConsolePartition) partitions.get(index);
- while (index >= 0 && (position.getOffset() + position.getLength()) > offset) {
- index--;
- if (index >= 0) {
- position= (IOConsolePartition) partitions.get(index);
- }
- }
- }
- index++;
- position= (IOConsolePartition) partitions.get(index);
- while (index < partitions.size() && (position.getOffset() < rangeEnd)) {
- list.add(position);
- index++;
- if (index < partitions.size()) {
- position= (IOConsolePartition) partitions.get(index);
- }
- }
-
- return (ITypedRegion[]) list.toArray(new IOConsolePartition[list.size()]);
- }
-
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.text.IDocumentPartitioner#getPartition(int)
- */
- public ITypedRegion getPartition(int offset) {
- for (int i = 0; i < partitions.size(); i++) {
- ITypedRegion partition = (ITypedRegion) partitions.get(i);
- int start = partition.getOffset();
- int end = start + partition.getLength();
- if (offset >= start && offset < end) {
- return partition;
- }
- }
-
- if (lastPartition == null) {
- synchronized(partitions) {
- lastPartition = new IOConsolePartition(inputStream, ""); //$NON-NLS-1$
- lastPartition.setOffset(offset);
- partitions.add(lastPartition);
- inputPartitions.add(lastPartition);
- }
- }
- return lastPartition;
- }
-
- /**
- * Enforces the buffer size.
- * When the number of lines in the document exceeds the high water mark, the
- * beginning of the document is trimmed until the number of lines equals the
- * low water mark.
- */
- private void checkBufferSize() {
- if (document != null && highWaterMark > 0) {
- int length = document.getLength();
- if (length > highWaterMark) {
- if (trimJob.getState() == Job.NONE) { //if the job isn't already running
- trimJob.setOffset(length - lowWaterMark);
- trimJob.schedule();
- }
- }
- }
- }
-
- /**
- * Clears the console
- */
- public void clearBuffer() {
- synchronized (overflowLock) {
- trimJob.setOffset(-1);
- trimJob.setRule(console.getSchedulingRule());
- trimJob.schedule();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.IDocumentPartitionerExtension#documentChanged2(org.eclipse.jface.text.DocumentEvent)
- */
- public IRegion documentChanged2(DocumentEvent event) {
- if (document == null) {
- return null; //another thread disconnected the partitioner
- }
- if (document.getLength() == 0) { //document cleared
- partitions.clear();
- inputPartitions.clear();
- pendingPartitions.clear();
- lastPartition = null;
- return new Region(0, 0);
- }
-
-
- if (updateInProgress) {
- synchronized(partitions) {
- if (updatePartitions != null) {
- for (Iterator i = updatePartitions.iterator(); i.hasNext(); ) {
- PendingPartition pp = (PendingPartition) i.next();
- if (pp == consoleClosedPartition) {
- continue;
- }
-
- int ppLen = pp.text.length();
- if (lastPartition != null && lastPartition.getStream() == pp.stream) {
- int len = lastPartition.getLength();
- lastPartition.setLength(len + ppLen);
- } else {
- IOConsolePartition partition = new IOConsolePartition(pp.stream, ppLen);
- partition.setOffset(firstOffset);
- lastPartition = partition;
- partitions.add(partition);
- }
- firstOffset += ppLen;
- }
- }
- }
- } else {// user input.
- int amountDeleted = event.getLength() ;
-
- if (amountDeleted > 0) {
- int offset = event.fOffset;
- IOConsolePartition partition = (IOConsolePartition) getPartition(offset);
- if(partition == lastPartition) {
- partition.delete(event.fOffset-partition.getOffset(), amountDeleted);
- }
- }
-
- synchronized(partitions) {
- if (lastPartition == null || lastPartition.isReadOnly()) {
- lastPartition = new IOConsolePartition(inputStream, event.fText); //$NON-NLS-1$
- lastPartition.setOffset(event.fOffset);
- partitions.add(lastPartition);
- inputPartitions.add(lastPartition);
- } else {
- lastPartition.insert(event.fText, (event.fOffset-lastPartition.getOffset()));
- }
-
- int lastLineDelimiter = -1;
- String partitionText = lastPartition.getString();
- for (int i = 0; i < lld.length; i++) {
- String ld = lld[i];
- int index = partitionText.lastIndexOf(ld);
- if (index != -1) {
- index += ld.length();
- }
- if (index > lastLineDelimiter) {
- lastLineDelimiter = index;
- }
- }
- if (lastLineDelimiter != -1) {
- StringBuffer input = new StringBuffer();
- Iterator it = inputPartitions.iterator();
- while (it.hasNext()) {
- IOConsolePartition partition = (IOConsolePartition) it.next();
- if (partition.getOffset() + partition.getLength() <= event.fOffset + lastLineDelimiter) {
- if (partition == lastPartition) {
- lastPartition = null;
- }
- input.append(partition.getString());
- partition.clearBuffer();
- partition.setReadOnly();
- it.remove();
- } else {
- //create a new partition containing everything up to the line delimiter
- //and append that to the string buffer.
- String contentBefore = partitionText.substring(0, lastLineDelimiter);
- IOConsolePartition newPartition = new IOConsolePartition(inputStream, contentBefore);
- newPartition.setOffset(partition.getOffset());
- newPartition.setReadOnly();
- newPartition.clearBuffer();
- int index = partitions.indexOf(partition);
- partitions.add(index, newPartition);
- input.append(contentBefore);
- //delete everything that has been appended to the buffer.
- partition.delete(0, lastLineDelimiter);
- partition.setOffset(lastLineDelimiter + partition.getOffset());
- lastLineDelimiter = 0;
- }
- }
- if (input.length() > 0) {
- inputStream.appendData(input.toString());
- }
-
- }
- }
- }
-
- return new Region(event.fOffset, event.fText.length());
- }
-
- private void setUpdateInProgress(boolean b) {
- updateInProgress = b;
- }
-
- /**
- * A stream has been appended, add to pendingPartions list and schedule updateJob.
- * updateJob is scheduled with a slight delay, this allows the console to run the job
- * less frequently and update the document with a greater amount of data each time
- * the job is run
- * @param stream The stream that was written to.
- * @param s The string that should be appended to the document.
- */
- public void streamAppended(IOConsoleOutputStream stream, String s) {
- synchronized(pendingPartitions) {
- PendingPartition last = (PendingPartition) (pendingPartitions.size() > 0 ? pendingPartitions.get(pendingPartitions.size()-1) : null);
- if (last != null && last.stream == stream) {
- last.append(s);
- } else {
- pendingPartitions.add(new PendingPartition(stream, s));
- queueJob.schedule(100);
- }
- }
- }
-
- /**
- * Holds data until updateJob can be run and the document can be updated.
- */
- private class PendingPartition {
- String text;
- IOConsoleOutputStream stream;
-
- PendingPartition(IOConsoleOutputStream stream, String text) {
- this.stream = stream;
- this.text=text;
- }
-
- void append(String moreText) {
- text += moreText;
- }
- }
-
- /**
- * Updates the document. Will append everything that is available before
- * finishing.
- */
- private class QueueProcessingJob extends Job {
-
- QueueProcessingJob() {
- super("IOConsole Updater"); //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
- synchronized (overflowLock) {
-
- Display display = ConsolePlugin.getStandardDisplay();
-
- ArrayList pendingCopy = new ArrayList();
- StringBuffer buffer = null;
- boolean consoleClosed = false;
- while (display != null && pendingPartitions.size() > 0) {
- synchronized(pendingPartitions) {
- pendingCopy.addAll(pendingPartitions);
- pendingPartitions.clear();
- }
-
- buffer = new StringBuffer();
- for (Iterator i = pendingCopy.iterator(); i.hasNext(); ) {
- PendingPartition pp = (PendingPartition) i.next();
- if (pp != consoleClosedPartition) {
- buffer.append(pp.text);
- } else {
- consoleClosed = true;
- }
- }
- }
-
- final ArrayList finalCopy = pendingCopy;
- final String toAppend = buffer.toString();
- final boolean notifyClosed = consoleClosed;
-
- display.asyncExec(new Runnable() {
- public void run() {
- if (connected) {
- setUpdateInProgress(true);
- updatePartitions = finalCopy;
- firstOffset = document.getLength();
- try {
- document.replace(firstOffset, 0, toAppend.toString());
- } catch (BadLocationException e) {
- }
- updatePartitions = null;
- setUpdateInProgress(false);
- }
- if (notifyClosed) {
- console.partitionerFinished();
- }
- checkBufferSize();
- }
- });
- }
-
- return Status.OK_STATUS;
- }
-
- /*
- * Job will process as much as it can each time it's run, but it gets
- * scheduled everytime a PendingPartition is added to the list, meaning
- * that this job could get scheduled unnecessarily in cases of heavy output.
- * Note however, that schedule() will only reschedule a running/scheduled Job
- * once even if it's called many times.
- */
- public boolean shouldRun() {
- boolean shouldRun = connected && pendingPartitions != null && pendingPartitions.size() > 0;
- return shouldRun;
- }
- }
-
-
-
-
-
-
-
- /**
- * Job to trim the console document, runs in the UI thread.
- */
- private class TrimJob extends UIJob {
-
- /**
- * trims output up to the line containing the given offset,
- * or all output if -1.
- */
- private int truncateOffset;
-
- /**
- * Creates a new job to trim the buffer.
- */
- TrimJob() {
- super("Trim Job"); //$NON-NLS-1$
- setSystem(true);
- }
-
- /**
- * Sets the trim offset.
- *
- * @param offset trims output up to the line containing the given offset
- */
- public void setOffset(int offset) {
- truncateOffset = offset;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus runInUIThread(IProgressMonitor monitor) {
- if (document == null) {
- return Status.OK_STATUS;
- }
-
- int length = document.getLength();
- if (truncateOffset < length) {
- synchronized (overflowLock) {
- try {
- if (truncateOffset < 0) {
- // clear
- setUpdateInProgress(true);
- document.set(""); //$NON-NLS-1$
- setUpdateInProgress(false);
- partitions.clear();
- } else {
- // overflow
- int cutoffLine = document.getLineOfOffset(truncateOffset);
- int cutOffset = document.getLineOffset(cutoffLine);
-
-
- // set the new length of the first partition
- IOConsolePartition partition = (IOConsolePartition) getPartition(cutOffset);
- partition.setLength(partition.getOffset() + partition.getLength() - cutOffset);
-
- setUpdateInProgress(true);
- document.replace(0, cutOffset, ""); //$NON-NLS-1$
- setUpdateInProgress(false);
-
- //remove partitions and reset Partition offsets
- int index = partitions.indexOf(partition);
- for (int i = 0; i < index; i++) {
- partitions.remove(0);
- }
-
- int offset = 0;
- for (Iterator i = partitions.iterator(); i.hasNext(); ) {
- IOConsolePartition p = (IOConsolePartition) i.next();
- p.setOffset(offset);
- offset += p.getLength();
- }
- }
- } catch (BadLocationException e) {
- }
- }
- }
- return Status.OK_STATUS;
- }
- }
-
-
-
-
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleDocumentPartitioner#isReadOnly(int)
- */
- public boolean isReadOnly(int offset) {
- return ((IOConsolePartition)getPartition(offset)).isReadOnly();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IConsoleDocumentPartitioner#computeStyleRange(int, int)
- */
- public StyleRange[] getStyleRanges(int offset, int length) {
- if (!connected) {
- return new StyleRange[0];
- }
- IOConsolePartition[] computedPartitions = (IOConsolePartition[])computePartitioning(offset, length);
- StyleRange[] styles = new StyleRange[computedPartitions.length];
- for (int i = 0; i < computedPartitions.length; i++) {
- int rangeStart = Math.max(computedPartitions[i].getOffset(), offset);
- int rangeLength = computedPartitions[i].getLength();
- styles[i] = computedPartitions[i].getStyleRange(rangeStart, rangeLength);
- }
- return styles;
- }
-
-
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
deleted file mode 100644
index 5b75e330d..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Common Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleDocumentPartitioner;
-import org.eclipse.ui.console.TextConsole;
-import org.eclipse.ui.console.TextConsoleViewer;
-
-/**
- * Viewer used to display an IOConsole
- *
- * @since 3.1
- */
-public class IOConsoleViewer extends TextConsoleViewer {
- /**
- * will always scroll with output if value is true.
- */
- private boolean fAutoScroll = true;
-
- private IDocumentListener fDocumentListener;
-
- public IOConsoleViewer(Composite parent, TextConsole console) {
- super(parent, console);
- }
-
- public boolean isAutoScroll() {
- return fAutoScroll;
- }
-
- public void setAutoScroll(boolean scroll) {
- fAutoScroll = scroll;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.text.TextViewer#handleVerifyEvent(org.eclipse.swt.events.VerifyEvent)
- */
- protected void handleVerifyEvent(VerifyEvent e) {
- IDocument doc = getDocument();
- String[] legalLineDelimiters = doc.getLegalLineDelimiters();
- String eventString = e.text;
-
- IConsoleDocumentPartitioner partitioner = (IConsoleDocumentPartitioner) doc.getDocumentPartitioner();
- if (!partitioner.isReadOnly(e.start)) {
- boolean isCarriageReturn = false;
- for (int i = 0; i < legalLineDelimiters.length; i++) {
- if (e.text.equals(legalLineDelimiters[i])) {
- isCarriageReturn = true;
- break;
- }
- }
-
- if (!isCarriageReturn) {
- super.handleVerifyEvent(e);
- return;
- }
- }
-
- int length = doc.getLength();
- if (e.start == length) {
- super.handleVerifyEvent(e);
- } else {
- try {
- doc.replace(length, 0, eventString);
- } catch (BadLocationException e1) {
- }
- e.doit = false;
- }
- }
-
- /**
- * makes the associated text widget uneditable.
- */
- public void setReadOnly() {
- ConsolePlugin.getStandardDisplay().asyncExec(new Runnable() {
- public void run() {
- StyledText text = getTextWidget();
- if (text != null) {
- text.setEditable(false);
- }
- }
- });
- }
-
- /**
- * @return <code>false</code> if text is editable
- */
- public boolean isReadOnly() {
- return !getTextWidget().getEditable();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.text.ITextViewer#setDocument(org.eclipse.jface.text.IDocument)
- */
- public void setDocument(IDocument document) {
- IDocument oldDocument= getDocument();
-
- super.setDocument(document);
-
- if (oldDocument != null) {
- oldDocument.removeDocumentListener(getDocumentListener());
- }
- if (document != null) {
- document.addDocumentListener(getDocumentListener());
- }
- }
-
- private IDocumentListener getDocumentListener() {
- if (fDocumentListener == null) {
- fDocumentListener= new IDocumentListener() {
- public void documentAboutToBeChanged(DocumentEvent event) {
- }
-
- public void documentChanged(DocumentEvent event) {
- if (fAutoScroll) {
- revealEndOfDocument();
- }
- }
- };
- }
- return fDocumentListener;
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
deleted file mode 100644
index 8b6190d91..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsoleFactory;
-
-/**
- * @since 3.1
- */
-public class OpenConsoleAction extends Action implements IMenuCreator {
-
- private ConsoleFactoryExtension[] fFactoryExtensions;
- private Menu fMenu;
-
- public OpenConsoleAction() {
- fFactoryExtensions = ((ConsoleManager)ConsolePlugin.getDefault().getConsoleManager()).getConsoleFactoryExtensions();
- setText(ConsoleMessages.getString("OpenConsoleAction.0")); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("OpenConsoleAction.1")); //$NON-NLS-1$
- setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_NEW_CON));
- setMenuCreator(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#dispose()
- */
- public void dispose() {
- fFactoryExtensions = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
- */
- public Menu getMenu(Control parent) {
- if (fMenu != null) {
- fMenu.dispose();
- }
-
- fMenu= new Menu(parent);
- int accel = 1;
- for (int i = 0; i < fFactoryExtensions.length; i++) {
- ConsoleFactoryExtension extension = fFactoryExtensions[i];
- if (!WorkbenchActivityHelper.filterItem(extension) && extension.isEnabled()) {
- String label = extension.getLabel();
- ImageDescriptor image = extension.getImageDescriptor();
- addActionToMenu(fMenu, new ConsoleFactoryAction(label, image, extension), accel);
- accel++;
- }
- }
- return fMenu;
- }
-
- private void addActionToMenu(Menu parent, Action action, int accelerator) {
- if (accelerator < 10) {
- StringBuffer label= new StringBuffer();
- //add the numerical accelerator
- label.append('&');
- label.append(accelerator);
- label.append(' ');
- label.append(action.getText());
- action.setText(label.toString());
- }
-
- ActionContributionItem item= new ActionContributionItem(action);
- item.fill(parent, -1);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
- */
- public Menu getMenu(Menu parent) {
- return null;
- }
-
- private class ConsoleFactoryAction extends Action {
-
- private ConsoleFactoryExtension fConfig;
- private IConsoleFactory fFactory;
-
- public ConsoleFactoryAction(String label, ImageDescriptor image, ConsoleFactoryExtension extension) {
- setText(label);
- if (image != null) {
- setImageDescriptor(image);
- }
- fConfig = extension;
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- try {
- if (fFactory == null) {
- fFactory = fConfig.createFactory();
- }
-
- fFactory.openConsole();
- } catch (CoreException e) {
- ConsolePlugin.log(e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#runWithEvent(org.eclipse.swt.widgets.Event)
- */
- public void runWithEvent(Event event) {
- run();
- }
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
deleted file mode 100644
index 1c3eecb17..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.IPatternMatchListenerDelegate;
-import org.eclipse.ui.console.PatternMatchEvent;
-import org.eclipse.ui.console.TextConsole;
-
-public class PatternMatchListener implements IPatternMatchListener {
-
- private PatternMatchListenerExtension fExtension;
- private IPatternMatchListenerDelegate fDelegate;
-
- public PatternMatchListener(PatternMatchListenerExtension extension) throws CoreException {
- fExtension = extension;
- fDelegate = fExtension.createDelegate();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getPattern()
- */
- public String getPattern() {
- return fExtension.getPattern();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getCompilerFlags()
- */
- public int getCompilerFlags() {
- return fExtension.getCompilerFlags();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#matchFound(org.eclipse.ui.console.PatternMatchEvent)
- */
- public void matchFound(PatternMatchEvent event) {
- fDelegate.matchFound(event);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListenerDelegate#connect(org.eclipse.ui.console.TextConsole)
- */
- public void connect(TextConsole console) {
- fDelegate.connect(console);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#disconnect()
- */
- public void disconnect() {
- fDelegate.disconnect();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getQuickPattern()
- */
- public String getLineQualifier() {
- return fExtension.getQuickPattern();
- }
-
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
deleted file mode 100644
index 25c622658..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IPatternMatchListenerDelegate;
-
-public class PatternMatchListenerExtension implements IPluginContribution {
-
- private IConfigurationElement fConfig;
- private Expression fEnablementExpression;
- private String fPattern;
- private int fFlags = -1;
-
- public PatternMatchListenerExtension(IConfigurationElement extension) {
- fConfig = extension;
- }
-
- /*
- * returns the integer value of the flags defined in java.util.regex.Pattern.
- * Both <code>Pattern.MULTILINE</code> and <code>MULTILINE</code> will return
- * the same value.
- */
- public int parseFlags(String flagsElement) {
- int val = 0;
- if (flagsElement == null) {
- return val;
- }
-
- try {
- flagsElement = flagsElement.replaceAll("Pattern.", ""); //$NON-NLS-1$ //$NON-NLS-2$
- String[] tokens = flagsElement.split("\\s\\|\\s"); //$NON-NLS-1$
- Class clazz = Class.forName("java.util.regex.Pattern"); //$NON-NLS-1$
-
- for (int i = 0; i < tokens.length; i++) {
- Field field = clazz.getDeclaredField(tokens[i]);
- val |= field.getInt(null);
- }
- } catch (ClassNotFoundException e) {
- ConsolePlugin.log(e);
- } catch (NoSuchFieldException e) {
- ConsolePlugin.log(e);
- } catch (IllegalAccessException e) {
- ConsolePlugin.log(e);
- }
- return val;
- }
-
- public boolean isEnabledFor(IConsole console) throws CoreException {
- EvaluationContext context = new EvaluationContext(null, console);
- EvaluationResult evaluationResult = getEnablementExpression().evaluate(context);
- return evaluationResult == EvaluationResult.TRUE;
- }
-
- public IPatternMatchListenerDelegate createDelegate() throws CoreException {
- return (IPatternMatchListenerDelegate) fConfig.createExecutableExtension("class"); //$NON-NLS-1$
- }
-
- public Expression getEnablementExpression() throws CoreException {
- if (fEnablementExpression == null) {
- IConfigurationElement[] elements = fConfig.getChildren(ExpressionTagNames.ENABLEMENT);
- IConfigurationElement enablement = elements.length > 0 ? elements[0] : null;
-
- if (enablement != null) {
- fEnablementExpression = ExpressionConverter.getDefault().perform(enablement);
- }
- }
- return fEnablementExpression;
- }
-
- /*
- * returns the regular expression to be matched.
- */
- public String getPattern() {
- if (fPattern == null) {
- fPattern = fConfig.getAttributeAsIs("regex"); //$NON-NLS-1$
- }
- return fPattern;
- }
-
- /*
- * returns the flags to be used by <code>Pattern.compile(pattern, flags)</code>
- */
- public int getCompilerFlags() {
- if(fFlags < 0) {
- String flagsAttribute = fConfig.getAttributeAsIs("flags"); //$NON-NLS-1$
- fFlags = parseFlags(flagsAttribute);
- }
- return fFlags;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getLocalId()
- */
- public String getLocalId() {
- return fConfig.getAttribute("id"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPluginContribution#getPluginId()
- */
- public String getPluginId() {
- return fConfig.getNamespace();
- }
-
- public String getQuickPattern() {
- return fConfig.getAttribute("qualifier"); //$NON-NLS-1$
- }
-}
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
deleted file mode 100644
index f8d89f771..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.console.IConsoleView;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Pins the currently visible console in a console view.
- */
-public class PinConsoleAction extends Action implements IUpdate {
-
- private IConsoleView fView = null;
-
- /**
- * Constructs a 'pin console' action
- */
- public PinConsoleAction(IConsoleView view) {
- super(ConsoleMessages.getString("PinConsoleAction.0"), IAction.AS_CHECK_BOX); //$NON-NLS-1$
- setToolTipText(ConsoleMessages.getString("PinConsoleAction.1")); //$NON-NLS-1$
- setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_PIN));
- setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_PIN));
- setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_LCL_PIN));
- fView = view;
- update();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- fView.setPinned(isChecked());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.texteditor.IUpdate#update()
- */
- public void update() {
- setEnabled(fView.getConsole() != null);
- setChecked(fView.isPinned());
- }
-} \ No newline at end of file
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
deleted file mode 100644
index 0b0bd369c..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.IConsoleView;
-
-/**
- * Toggles console auto-scroll
- *
- * @since 3.1
- */
-public class ScrollLockAction extends Action {
-
- private IConsoleView fConsoleView;
-
- public ScrollLockAction(IConsoleView consoleView) {
- super(ConsoleMessages.getString("ScrollLockAction.0")); //$NON-NLS-1$
- fConsoleView = consoleView;
-
- setToolTipText(ConsoleMessages.getString("ScrollLockAction.1")); //$NON-NLS-1$
- setHoverImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_LCL_LOCK));
- setDisabledImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_DLCL_LOCK));
- setImageDescriptor(ConsolePluginImages.getImageDescriptor(IInternalConsoleConstants.IMG_ELCL_LOCK));
-
- boolean checked = fConsoleView.getScrollLock();
- setChecked(checked);
- }
-
- /**
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- fConsoleView.setScrollLock(isChecked());
- }
-
- public void dispose() {
- fConsoleView = null;
- }
-
-}
-
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java b/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
deleted file mode 100644
index 17d562e66..000000000
--- a/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.console;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleView;
-
-/**
- * Shows a specific console in the console view
- */
-public class ShowConsoleAction extends Action {
-
- private IConsole fConsole;
- private IConsoleView fView;
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- if (!fConsole.equals(fView.getConsole())) {
- boolean pinned = fView.isPinned();
- if (pinned) {
- fView.setPinned(false);
- }
- fView.display(fConsole);
- if (pinned) {
- fView.setPinned(true);
- }
- }
- }
-
- /**
- * Constructs an action to display the given console.
- *
- * @param view the console view in which the given console is contained
- * @param console the console
- */
- public ShowConsoleAction(IConsoleView view, IConsole console) {
- super();
- fConsole = console;
- fView = view;
- setText(console.getName());
- setImageDescriptor(console.getImageDescriptor());
- }
-}
diff --git a/org.eclipse.ui.externaltools/.classpath b/org.eclipse.ui.externaltools/.classpath
deleted file mode 100644
index 26de43bd1..000000000
--- 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.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <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 1fb8f5b9f..000000000
--- 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/.options b/org.eclipse.ui.externaltools/.options
deleted file mode 100644
index d127194c3..000000000
--- a/org.eclipse.ui.externaltools/.options
+++ /dev/null
@@ -1 +0,0 @@
-# Debugging options for the org.eclipse.ui.externaltools plugin.
diff --git a/org.eclipse.ui.externaltools/.project b/org.eclipse.ui.externaltools/.project
deleted file mode 100644
index 28c5bcf1c..000000000
--- a/org.eclipse.ui.externaltools/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.ui.externaltools</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3c5515b6f..000000000
--- a/org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 01 18:53:31 GMT-08:00 2004
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-eclipse.preferences.version=1
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
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 4c5630dee..000000000
--- 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/ExternalToolsBuilderTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
deleted file mode 100644
index 6f6a13792..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-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.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-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.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.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetEditWizard;
-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.help.WorkbenchHelp;
-import org.eclipse.ui.ide.IDE;
-
-public class ExternalToolsBuilderTab extends AbstractLaunchConfigurationTab {
-
- private Button afterClean;
- private Button autoBuildButton;
- private Button manualBuild;
- private Button workingSetButton;
- private Button specifyResources;
- protected Button fLaunchInBackgroundButton;
- private IWorkingSet workingSet;
-
- private 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= 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);
- WorkbenchHelp.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());
- 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.getString("ExternalToolsBuilderTab.14")); //$NON-NLS-1$
- GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- data.horizontalSpan = 2;
- fLaunchInBackgroundButton.setLayoutData(data);
- fLaunchInBackgroundButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- updateLaunchConfigurationDialog();
- }
- });
- }
-
- private void createBuildScheduleComponent(Composite parent) {
- Label label= new Label(parent, SWT.NONE);
- label.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Run_this_builder_for__1")); //$NON-NLS-1$
- label.setFont(parent.getFont());
- afterClean= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Full_builds_2"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Full"), 2); //$NON-NLS-1$ //$NON-NLS-2$
- manualBuild= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Incremental_builds_4"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Inc"), 2); //$NON-NLS-1$ //$NON-NLS-2$
- autoBuildButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Auto_builds_(Not_recommended)_6"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Auto"), 2); //$NON-NLS-1$ //$NON-NLS-2$
-
- createVerticalSpacer(parent, 2);
-
- workingSetButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.workingSet_label"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.workingSet_tooltip"), 1); //$NON-NLS-1$ //$NON-NLS-2$
- specifyResources= createPushButton(parent, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.13"), null); //$NON-NLS-1$
- GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
- specifyResources.setLayoutData(gd);
- specifyResources.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- selectResources();
- }
- });
- }
-
- /*
- * Creates a check button in the given composite with the given text
- */
- private 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);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void initializeFrom(ILaunchConfiguration configuration) {
-
- afterClean.setSelection(false);
- manualBuild.setSelection(false);
- autoBuildButton.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_BUILD_SCOPE, (String)null);
- } catch (CoreException e) {
- }
-
- workingSetButton.setSelection(buildScope != null);
- workingSetButton.setEnabled(buildScope != null);
-
- if (buildScope != null) {
- workingSet = RefreshTab.getWorkingSet(buildScope);
- }
-
- int buildTypes[]= ExternalToolBuilder.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;
- }
- }
- boolean enabled= autoBuildButton.getSelection() || manualBuild.getSelection();
- workingSetButton.setEnabled(enabled);
- specifyResources.setEnabled(enabled && workingSetButton.getSelection());
- updateRunInBackground(configuration);
- }
-
- protected void updateRunInBackground(ILaunchConfiguration configuration) {
- fLaunchInBackgroundButton.setSelection(isLaunchInBackground(configuration));
- }
-
- /**
- * 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) {
- 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(',');
- }
- configuration.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-
- if (workingSetButton.getSelection()) {
- String scope = RefreshTab.getRefreshAttribute(workingSet);
- configuration.setAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, scope);
- } else {
- configuration.setAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, (String)null);
- }
- configuration.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, fLaunchInBackgroundButton.getSelection());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
- */
- public String getName() {
- return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Build_Options_9"); //$NON-NLS-1$
- }
-
- /* (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);
-
- boolean buildKindSelected= afterClean.getSelection() || manualBuild.getSelection() || autoBuildButton.getSelection();
- if (!buildKindSelected) {
- setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.buildKindError")); //$NON-NLS-1$
- return false;
- }
- if (workingSetButton.getSelection() && (workingSet == null || workingSet.getElements().length == 0)) {
- setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.16")); //$NON-NLS-1$
- }
-
- return true;
- }
- /* (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.getString("ExternalToolsBuilderTab.15"), new IAdaptable[0]); //$NON-NLS-1$
- }
- 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
- }
-
-}
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 e1e1695db..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsLaunchConfigurationMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsLaunchConfigurationMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE =
- ResourceBundle.getBundle(BUNDLE_NAME);
-
- private ExternalToolsLaunchConfigurationMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
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 cca674c06..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-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=Br&owse File System...
-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...
-
-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=&After 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 (not applied for the build after a clean)
-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 \ No newline at end of file
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 3df683e6e..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 group 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.getString("ExternalToolsMainTab.&Browse_Workspace..._3"), null); //$NON-NLS-1$
- workspaceLocationButton.addSelectionListener(fListener);
- addControlAccessibleListener(workspaceLocationButton, group.getText() + " " + workspaceLocationButton.getText()); //$NON-NLS-1$
-
- fileLocationButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Brows&e_File_System..._4"), null); //$NON-NLS-1$
- fileLocationButton.addSelectionListener(fListener);
- addControlAccessibleListener(fileLocationButton, group.getText() + " " + fileLocationButton.getText()); //$NON-NLS-1$
-
- variablesLocationButton = createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.31"), null); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.&Location___2"); //$NON-NLS-1$
- }
-
- /**
- * 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.getString("ExternalToolsMainTab.Browse_Wor&kspace..._6"), null); //$NON-NLS-1$
- workspaceWorkingDirectoryButton.addSelectionListener(fListener);
- addControlAccessibleListener(workspaceWorkingDirectoryButton, group.getText() + " " + workspaceWorkingDirectoryButton.getText()); //$NON-NLS-1$
-
- fileWorkingDirectoryButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Browse_F&ile_System..._7"), null); //$NON-NLS-1$
- fileWorkingDirectoryButton.addSelectionListener(fListener);
- addControlAccessibleListener(fileWorkingDirectoryButton, group.getText() + " " + fileLocationButton.getText()); //$NON-NLS-1$
-
- variablesWorkingDirectoryButton = createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.32"), null); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.Working_&Directory__5"); //$NON-NLS-1$
- }
-
- /**
- * 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.getString("ExternalToolsMainTab.&Arguments___1"); //$NON-NLS-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.getString("ExternalToolsMainTab.Varia&bles..._2"), null); //$NON-NLS-1$
- argumentVariablesButton.addSelectionListener(fListener);
- addControlAccessibleListener(argumentVariablesButton, argumentVariablesButton.getText()); // need to strip the mnemonic from buttons
-
- Label instruction = new Label(group, SWT.NONE);
- instruction.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.3")); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.Error_reading_configuration_10"), ce); //$NON-NLS-1$
- }
- 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.getString("ExternalToolsMainTab.Error_reading_configuration_10"), ce); //$NON-NLS-1$
- }
- 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.getString("ExternalToolsMainTab.Error_reading_configuration_7"), ce); //$NON-NLS-1$
- }
- 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.getString("ExternalToolsMainTab.&Main_17"); //$NON-NLS-1$
- }
-
- /* (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.getString("ExternalToolsMainTab.30")); //$NON-NLS-1$
- } else {
- setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_location_cannot_be_empty_18")); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.External_tool_location_does_not_exist_19")); //$NON-NLS-1$
- }
- return false;
- }
- if (!file.isFile()) {
- if (!newConfig) {
- setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_location_specified_is_not_a_file_20")); //$NON-NLS-1$
- }
- 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.getString("ExternalToolsMainTab.External_tool_working_directory_does_not_exist_or_is_invalid_21")); //$NON-NLS-1$
- return false;
- }
- if (!file.isDirectory()) {
- setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Not_a_directory")); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.Select_a_resource_22")); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.23")); //$NON-NLS-1$
- 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.getString("ExternalToolsMainTab.23")); //$NON-NLS-1$
- 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;
- }
-
- }
-} \ No newline at end of file
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 2050d0bc3..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Keith Seitz (keiths@redhat.com) - Bug 27243 (environment variables contribution)
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.io.File;
-import java.text.MessageFormat;
-
-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.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(MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.Location_not_specified_by_{0}_1"), new String[] { configuration.getName()}), null, 0); //$NON-NLS-1$
- } else {
- String expandedLocation = getStringVariableManager().performStringSubstitution(location);
- if (expandedLocation == null || expandedLocation.length() == 0) {
- String msg = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidLocation_{0}"), new Object[] { configuration.getName()}); //$NON-NLS-1$
- abort(msg, null, 0);
- } else {
- File file = new File(expandedLocation);
- if (file.isFile()) {
- return new Path(expandedLocation);
- }
-
- String msg = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidLocation_{0}"), new Object[] { configuration.getName()}); //$NON-NLS-1$
- 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 = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidDirectory_{0}"), new Object[] { expandedLocation, configuration.getName()}); //$NON-NLS-1$
- 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_BUILD_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 f2f93146d..000000000
--- 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, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 cd8fea5d2..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 c387f4529..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 69b97795d..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 e253213e0..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 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.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$
-
- /**
- * 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);
- } catch (CoreException exception) {
- Shell shell= ExternalToolsPlugin.getActiveWorkbenchShell();
- if (shell != null) {
- MessageDialog.openError(shell, ExternalToolsModelMessages.getString("BuilderUtils.5"), ExternalToolsModelMessages.getString("BuilderUtils.6")); //$NON-NLS-1$ //$NON-NLS-2$
- }
- return null;
- }
- return newCommand;
- }
-
- /**
- * 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= null;
- attributes= config.getAttributes();
- String newName= new StringBuffer(config.getName()).append(ExternalToolsModelMessages.getString("BuilderUtils.7")).toString(); //$NON-NLS-1$
- 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();
- }
-} \ No newline at end of file
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 d3a003ba4..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.ILaunchManager;
-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 final String BUILD_TYPE_SEPARATOR = ","; //$NON-NLS-1$
- private static final int[] DEFAULT_BUILD_TYPES= new int[] {
- IncrementalProjectBuilder.INCREMENTAL_BUILD,
- IncrementalProjectBuilder.FULL_BUILD};
-
- private static String buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-
- private static IProject buildProject= null;
-
- private List projectsWithinScope;
-
- private boolean buildKindCompatible(int kind, ILaunchConfiguration config) throws CoreException {
- int[] buildKinds = buildTypesToArray(config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, "")); //$NON-NLS-1$
- for (int j = 0; j < buildKinds.length; j++) {
- if (kind == buildKinds[j]) {
- return true;
- }
- }
- return false;
- }
-
- /* (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;
- }
-
- projectsWithinScope= new ArrayList();
- ILaunchConfiguration config = BuilderUtils.configFromBuildCommandArgs(getProject(), args, new String[1]);
- if (config == null) {
- throw ExternalToolsPlugin.newError(ExternalToolsModelMessages.getString("ExternalToolBuilder.0"), null); //$NON-NLS-1$
- }
- if (buildKindCompatible(kind, config) && configEnabled(config)) {
- doBuildBasedOnScope(kind, config, monitor);
- }
- return getProjectsWithinScope();
- }
-
- /**
- * 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 IProject[] getProjectsWithinScope() {
- if (projectsWithinScope == null || projectsWithinScope.isEmpty()) {
- projectsWithinScope = null;
- return null;
- }
- return (IProject[])projectsWithinScope.toArray(new IProject[projectsWithinScope.size()]);
- }
-
- private void doBuildBasedOnScope(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
- boolean buildForChange = true;
- if (kind != FULL_BUILD) { //scope not applied for full builds
- IResource[] resources = ExternalToolsUtil.getResourcesForBuildScope(config);
- if (resources != null && resources.length > 0) {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- projectsWithinScope.add(resource.getProject());
- }
- buildForChange = buildScopeIndicatesBuild(resources);
- }
- }
-
- if (buildForChange) {
- launchBuild(kind, config, monitor);
- }
- }
-
- private void launchBuild(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
- monitor.subTask(MessageFormat.format(ExternalToolsModelMessages.getString("ExternalToolBuilder.Running_{0}..._1"), new String[] { config.getName()})); //$NON-NLS-1$
- 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;
- }
-
- /**
- * 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;
- break;
- case IncrementalProjectBuilder.FULL_BUILD :
- buildType = IExternalToolConstants.BUILD_TYPE_FULL;
- break;
- case IncrementalProjectBuilder.AUTO_BUILD :
- buildType = IExternalToolConstants.BUILD_TYPE_AUTO;
- break;
- default :
- buildType = IExternalToolConstants.BUILD_TYPE_NONE;
- break;
- }
- buildProject= getProject();
- }
-
- /**
- * Clears the current build kind and build project when a build finishes.
- */
- private void buildEnded() {
- buildType= IExternalToolConstants.BUILD_TYPE_NONE;
- buildProject= 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;
- }
-
- /**
- * 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;
-
- 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++;
- }
- }
- }
-
- 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++;
- }
-
- return results;
- }
-} \ 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 5ba59682a..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 java.util.HashMap;
-import java.util.Map;
-
-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;
-
- /**
- * A table of all the <code>ImageDescriptor</code>s.
- */
- private static Map imageDescriptors;
-
- /* 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$
- }
-
- /**
- * 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);
- imageDescriptors.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());
- imageDescriptors = new HashMap(30);
- 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) {
- if (imageDescriptors == null) {
- initializeImageRegistry();
- }
- return (ImageDescriptor)imageDescriptors.get(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();
- }
- }
-} \ No newline at end of file
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 75bd41e71..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsModelMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.model.ExternalToolsModelMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private ExternalToolsModelMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
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 75efe1075..000000000
--- 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, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-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 project's build commands
-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 d412fb51e..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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);
- }
- }
-} \ No newline at end of file
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 93eddffd3..000000000
--- 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 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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);
- }
-} \ No newline at end of file
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 a0cd1ecb6..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-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>incremental</code>).
- */
- public static final String BUILD_TYPE_AUTO = "auto"; //$NON-NLS-1$
-
- /**
- * Build type indicating an 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$
-
- // ------- 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_BUILD_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$
-} \ No newline at end of file
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 409bcac67..000000000
--- 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, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 fe9307e0e..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 3e20c1de8..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Assert;
-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.getString("ImageDescriptorRegistry.Allocating_image_for_wrong_display_1")); //$NON-NLS-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 01ab9bcea..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.getString("ExternalToolMigration.37"), e); //$NON-NLS-1$
- }
- try {
- ILaunchConfigurationWorkingCopy workingCopy= config.getWorkingCopy();
- workingCopy.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, runInBackground);
- config= workingCopy.doSave();
- } catch (CoreException e) {
- ExternalToolsPlugin.getDefault().log(ExternalToolsUIMessages.getString("ExternalToolMigration.38"), e); //$NON-NLS-1$
- }
- }
- 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 40be6be30..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-import java.text.MessageFormat;
-
-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.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.getString("BuilderPropertyPage.invalidBuildTool"); //$NON-NLS-1$
- }
- 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 = MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.missingBuilder"), new Object[] { builderID }); //$NON-NLS-1$
- }
- 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();
- }
-} \ No newline at end of file
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 1eecf1761..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
+++ /dev/null
@@ -1,1144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.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.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.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.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.help.WorkbenchHelp;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * Property page to add external tools builders.
- */
-public final class BuilderPropertyPage extends PropertyPage implements ICheckStateListener {
-
- //locally mark a command's enabled state so it can be processed correctly on performOK
- private static final String COMMAND_ENABLED= "CommandEnabled"; //$NON-NLS-1$
-
- private Button upButton, downButton, newButton, importButton, editButton, removeButton;
-
- private boolean userHasMadeChanges= false;
-
- private List configsToBeDeleted= null;
- private List commandsToBeDeleted= null;
-
- private CheckboxTableViewer viewer= null;
-
- private ILabelProvider labelProvider= new BuilderLabelProvider();
-
- /**
- * Error configs are objects representing entries pointing to
- * invalid launch configurations
- */
- public class ErrorConfig {
- private ICommand command;
- public ErrorConfig(ICommand command) {
- this.command= command;
- }
- public ICommand getCommand() {
- return command;
- }
- }
-
- /**
- * Collection of configurations created while the page is open.
- * Stored here so they can be deleted if the page is cancelled.
- */
- private List newConfigList= new ArrayList();
-
- private SelectionListener buttonListener= new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- handleButtonPressed((Button) e.widget);
- }
- };
-
- /**
- * Launch configuration listener which is responsible for updating items in
- * the tree when the user renames configurations in the dialog.
- *
- * This is necessary because when we tell the configuration dialog to open
- * on a launch config and the user renames that config, the old config (the
- * one in the tree) is made obsolete and a new config is created. This
- * listener hears when new configurations are created this way and replaces
- * the old configuration with the new.
- */
- private ILaunchConfigurationListener configurationListener= new ILaunchConfigurationListener() {
- /**
- * A launch configuration has been added. If this config has been
- * movedFrom a configuration in the tree, replace the old config with
- * the new.
- */
- public void launchConfigurationAdded(final ILaunchConfiguration configuration) {
- ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
- final ILaunchConfiguration oldConfig= manager.getMovedFrom(configuration);
- if (oldConfig == null) {
- return;
- }
-
- 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;
- }
- }
- //Also replace the movedFrom config in the list of newly created configs
- if (newConfigList.remove(oldConfig)) {
- newConfigList.add(configuration);
- }
- }
- });
- }
- 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);
- }
-
- 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])) { //$NON-NLS-1$
- // 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()) {
- IStatus status = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.Exists"), new String[]{config.getLocation().toOSString()}), null); //$NON-NLS-1$
- ErrorDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.errorTitle"), //$NON-NLS-1$
- MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.External_Tool_Builder_{0}_Not_Added_2"), new String[]{config.getName()}), //$NON-NLS-1$
- 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) {
- MessageDialogWithToggle dialog= MessageDialogWithToggle.openYesNoQuestion(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.0"), ExternalToolsUIMessages.getString("BuilderPropertyPage.1"), ExternalToolsUIMessages.getString("BuilderPropertyPage.2"), false, null, null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- proceed= dialog.getReturnCode() == IDialogConstants.YES_ID;
- store.setValue(IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION, !dialog.getToggleState());
- }
- if (!proceed) {
- // Open the page read-only
- viewer.getTable().setEnabled(false);
- downButton.setEnabled(false);
- editButton.setEnabled(false);
- importButton.setEnabled(false);
- newButton.setEnabled(false);
- removeButton.setEnabled(false);
- }
- }
- }
-
- /**
- * Creates and returns a button with the given label, id, and enablement.
- */
- private Button createButton(Composite parent, String label) {
- Button button = new Button(parent, SWT.PUSH);
- GridData data = new GridData();
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
- button.setLayoutData(data);
- button.setFont(parent.getFont());
- button.setText(label);
- button.setEnabled(false);
- button.addSelectionListener(buttonListener);
- return button;
- }
-
- /* (non-Javadoc)
- * Method declared on PreferencePage.
- */
- protected Control createContents(Composite parent) {
-
- WorkbenchHelp.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.getString("BuilderPropertyPage.description")); //$NON-NLS-1$
- 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.getString("BuilderPropertyPage.newButton")); //$NON-NLS-1$
- importButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.&Import..._3")); //$NON-NLS-1$
- editButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.editButton")); //$NON-NLS-1$
- removeButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.removeButton")); //$NON-NLS-1$
- new Label(buttonArea, SWT.LEFT);
- upButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.upButton")); //$NON-NLS-1$
- downButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.downButton")); //$NON-NLS-1$
-
- newButton.setEnabled(true);
- importButton.setEnabled(true);
-
- //populate widget contents
- addBuildersToTable();
-
- return topLevel;
- }
-
- /**
- * Turns autobuilding 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();
- }
- 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();
- if (element instanceof ILaunchConfiguration) {
- enableLaunchConfiguration((ILaunchConfiguration) element, event.getChecked());
- } else if (element instanceof ICommand) {
- if (MessageDialog.openConfirm(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.6"), ExternalToolsUIMessages.getString("BuilderPropertyPage.7"))) { //$NON-NLS-1$ //$NON-NLS-2$
- enableCommand((ICommand)element, event.getChecked());
- } 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++) {
- configurations.add(configs[i]);
- }
- } catch (CoreException e) {
- }
- }
- ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), new BuilderLabelProvider());
- dialog.setTitle(ExternalToolsUIMessages.getString("BuilderPropertyPage.4")); //$NON-NLS-1$
- dialog.setMessage(ExternalToolsUIMessages.getString("BuilderPropertyPage.5")); //$NON-NLS-1$
- 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.getString("BuilderPropertyPage.New_Builder_7")); //$NON-NLS-1$
- 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);
- int code= DebugUITools.openLaunchConfigurationPropertiesDialog(getShell(), 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);
-
- ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new BuilderLabelProvider());
- dialog.setElements(externalToolTypes.toArray());
- dialog.setMultipleSelection(false);
- dialog.setTitle(ExternalToolsUIMessages.getString("BuilderPropertyPage.Choose_configuration_type_8")); //$NON-NLS-1$
- dialog.setMessage(ExternalToolsUIMessages.getString("BuilderPropertyPage.Choose_an_external_tool_type_to_create_9")); //$NON-NLS-1$
- 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);
- }
- }
- }
- }
- }
-
- /**
- * 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;
- }
- // Warn the user that editing an old config will cause storage migration.
- MessageDialogWithToggle dialog= MessageDialogWithToggle.openYesNoQuestion(getShell(),
- ExternalToolsUIMessages.getString("BuilderPropertyPage.Migrate_project_builder_10"), //$NON-NLS-1$
- ExternalToolsUIMessages.getString("BuilderPropertyPage.Not_Support"), //$NON-NLS-1$
- ExternalToolsUIMessages.getString("BuilderPropertyPage.Prompt"), //$NON-NLS-1$
- false,
- ExternalToolsPlugin.getDefault().getPreferenceStore(),
- IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION);
- return dialog.getReturnCode() == IDialogConstants.YES_ID;
- }
-
- /**
- * Handles unexpected internal exceptions
- */
- private void handleException(Exception e) {
- IStatus status;
- if (e instanceof CoreException) {
- status = ((CoreException) e).getStatus();
- } else {
- status = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsUIMessages.getString("BuilderPropertyPage.statusMessage"), e); //$NON-NLS-1$
- }
- ErrorDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.errorTitle"), //$NON-NLS-1$
- ExternalToolsUIMessages.getString("BuilderPropertyPage.errorMessage"), //$NON-NLS-1$
- status);
- }
-
- /**
- * The user has selected a different builder in table.
- * Update button enablement.
- */
- private void handleTableSelectionChanged() {
- newButton.setEnabled(true);
- Table builderTable= viewer.getTable();
- TableItem[] items = builderTable.getSelection();
- boolean validSelection= items != null && items.length > 0;
- boolean enableEdit= validSelection;
- boolean enableRemove= validSelection;
- boolean enableUp= validSelection;
- boolean enableDown= validSelection;
- if (validSelection) {
- if (items.length > 1) {
- enableEdit= false;
- }
- int indices[]= builderTable.getSelectionIndices();
- int max = builderTable.getItemCount();
- enableUp= indices[0] != 0;
- enableDown= indices[indices.length - 1] < max - 1;
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- Object data= item.getData();
- if (data instanceof ILaunchConfiguration) {
- ILaunchConfiguration config= (ILaunchConfiguration)data;
- String builderName= null;
- try {
- builderName = config.getAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, (String)null);
- } catch (CoreException e) {
- }
- if (builderName != null) {
- //do not allow "wrapped" builders to be removed or edited if they are valid
- IExtension ext= Platform.getExtensionRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, builderName);
- enableEdit= false;
- enableRemove= ext == null;
- }
- } else {
- enableEdit= false;
-
- if (data instanceof ErrorConfig) {
- continue;
- }
- IExtension ext= Platform.getExtensionRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, ((ICommand)data).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.getString("BuilderPropertyPage.3"), numCommands + 1); //$NON-NLS-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) {
- MessageDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.39"), MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.40"), new String[] {workingCopy.getName()})); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
- 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);
- }
- }
-
- 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) {
- MessageDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.13"), ExternalToolsUIMessages.getString("BuilderPropertyPage.error")); //$NON-NLS-1$ //$NON-NLS-2$
- return null;
- }
- }
-
- /**
- * Disables a builder by wrappering the builder command as a disabled external tool builder.
- * The details of the command is persisted in the launch configuration.
- */
- private ILaunchConfiguration disableCommand(ICommand command) {
- Map arguments= command.getArguments();
- if (arguments != null) {
- arguments.remove(COMMAND_ENABLED);
- }
- List externalToolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY);
- if (externalToolTypes.size() == 0) {
- return null;
- }
- ILaunchConfigurationType type= (ILaunchConfigurationType)externalToolTypes.get(0);
- if (type == null) {
- return null;
- }
- boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
- try {
- ILaunchConfigurationWorkingCopy workingCopy = null;
- String builderName = command.getBuilderName();
- String name= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(builderName);
- workingCopy = type.newInstance(BuilderUtils.getBuilderFolder(getInputProject(), true), name);
-
- workingCopy.setAttribute(IExternalToolConstants.ATTR_DISABLED_BUILDER, builderName);
- if (arguments != null) {
- workingCopy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
- }
- workingCopy.setAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, false);
- ILaunchConfiguration config = null;
- setAutobuild(false);
- config = workingCopy.doSave();
- return config;
- } catch (CoreException e) {
- handleException(e);
- } finally {
- try {
- setAutobuild(wasAutobuilding);
- } catch (CoreException e) {
- handleException(e);
- }
- }
- return null;
- }
-
- private void deleteConfigurations() {
- boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
- try {
- setAutobuild(false);
-
- Iterator itr= configsToBeDeleted.iterator();
- while (itr.hasNext()) {
- ILaunchConfiguration element = (ILaunchConfiguration) itr.next();
- element.delete();
- }
-
- checkBuilderFolder();
- } catch (CoreException e) {
- handleException(e);
- } finally {
- try {
- setAutobuild(wasAutobuilding);
- } catch (CoreException e) {
- handleException(e);
- }
- }
- }
-
- /**
- * Returns whether any of the commands have changed.
- */
- private boolean checkCommandsForChange(ICommand[] newCommands) {
- try {
- ICommand[] oldCommands = getInputProject().getDescription().getBuildSpec();
- if (oldCommands.length != newCommands.length) {
- return true;
- }
- IgnoreWhiteSpaceComparator comparator= new IgnoreWhiteSpaceComparator();
- for (int i = 0; i < oldCommands.length; i++) {
- ICommand oldCommand = oldCommands[i];
- ICommand newCommand= newCommands[i];
- String oldName= oldCommand.getBuilderName();
- String newName= newCommand.getBuilderName();
- if (oldName == null && newName != null) {
- return true;
- }
-
- if(oldName != null && !oldName.equals(newName)) {
- return true;
- }
- Map oldArgs= oldCommand.getArguments();
- Map newArgs= newCommand.getArguments();
- if (oldArgs == null && newArgs != null) {
- return true;
- }
- if (oldArgs == null && newArgs == null) {
- continue;
- }
- if(oldArgs.size() != newArgs.size()) {
- return true;
- }
- Iterator keySet= oldArgs.keySet().iterator();
- while (keySet.hasNext()) {
- Object key = keySet.next();
- Object oldArg= oldArgs.get(key);
- Object newArg= newArgs.get(key);
- if (oldArg instanceof String && newArg instanceof String) {
- if (comparator.compare(oldArg, newArg) != 0) {
- return true;
- }
- } else if (!oldArg.equals(newArg)){
- return true;
- }
- }
- }
- } 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();
- }
-} \ No newline at end of file
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 a13cba11f..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.IPreferenceConstants;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * 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.getString("ExternalToolsPreferencePage.External_tool_project_builders_migration_2")); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
- protected Control createContents(Composite parent) {
- WorkbenchHelp.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.getString("ExternalToolsPreferencePage.Prompt_before_migrating_3"), IPreferenceConstants.PROMPT_FOR_TOOL_MIGRATION); //$NON-NLS-1$
- promptForProjectMigrationButton= createCheckButton(composite, ExternalToolsUIMessages.getString("ExternalToolsPreferencePage.1"), IPreferenceConstants.PROMPT_FOR_PROJECT_MIGRATION); //$NON-NLS-1$
-
- 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 576ea366c..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public final class ExternalToolsUIMessages {
- private static final String BUNDLE_NAME= "org.eclipse.ui.externaltools.internal.ui.ExternalToolsUIMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE =
- ResourceBundle.getBundle(BUNDLE_NAME);
-
- private ExternalToolsUIMessages(){
- // prevent instantiation of class
- }
-
- /**
- * Returns the message with the given key in
- * the resource bundle. If there isn't any value under
- * the given key, the key is returned.
- *
- * @param key the message name
- * @return the message
- */
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
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 4827229f0..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
+++ /dev/null
@@ -1,54 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-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
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 fe909e17e..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.help.WorkbenchHelp;
-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.getString("FileSelectionDialog.Choose_Location_1"), null, message, MessageDialog.NONE, new String[] { ExternalToolsUIMessages.getString("FileSelectionDialog.Ok_2"), ExternalToolsUIMessages.getString("FileSelectionDialog.Cancel_3")}, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- 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);
- WorkbenchHelp.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;
- }
-} \ No newline at end of file
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 48f387ab1..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.ViewerSorter;
-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.ResourceSorter;
-
-/**
- * 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.setSorter(new ResourceSorter(ResourceSorter.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.setSorter(new ResourceSorter(ResourceSorter.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(ViewerSorter sorter) {
- listViewer.setSorter(sorter);
- }
- /**
- * 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) {
- this.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 sorter that is to be applied to self's tree viewer
- */
- public void setTreeSorter(ViewerSorter sorter) {
- treeViewer.setSorter(sorter);
- }
-
- /**
- * Set the focus on to the list widget.
- */
- public void setFocus() {
-
- this.treeViewer.getTree().setFocus();
- }
-}
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 ac6fee703..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import java.text.MessageFormat;
-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.ui.externaltools.internal.model.ExternalToolBuilder;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-
-public class BuildProjectResolver implements IDynamicVariableResolver {
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.stringsubstitution.IContextVariableResolver#resolveValue(org.eclipse.debug.internal.core.stringsubstitution.IContextVariable, 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(MessageFormat.format(VariableMessages.getString("BuildProjectResolver.3"), new String[]{getReferenceExpression(variable, argument)}), null); //$NON-NLS-1$
- 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 8418aa5ca..000000000
--- 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, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.debug.internal.core.stringsubstitution.IContextVariableResolver#resolveValue(org.eclipse.debug.internal.core.stringsubstitution.IContextVariable, 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/VariableMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
deleted file mode 100644
index bdc20f643..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class VariableMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.variables.VariableMessages";//$NON-NLS-1$
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
- private VariableMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-} \ 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 5d9477d1a..000000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-
-BuildProjectResolver.3=Variable references non-existent resource : {0}
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 2b19d3b78..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.getString("BackgroundResourceRefresher.0")) { //$NON-NLS-1$
- 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();
- }
-} \ No newline at end of file
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 ae2e9ccfb..000000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsProgramMessages {
-
- private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.program.launchConfigurations.ExternalToolsProgramMessages"; //$NON-NLS-1$
-
- private static final ResourceBundle RESOURCE_BUNDLE =
- ResourceBundle.getBundle(BUNDLE_NAME);
-
- private ExternalToolsProgramMessages() {
- }
-
- public static String getString(String key) {
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
-}
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 0e39f0374..000000000
--- 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, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-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: \ No newline at end of file
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 6ae363d44..000000000
--- 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, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 56511394e..000000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Keith Seitz (keiths@redhat.com) - environment variables contribution (Bug 27243)
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-
-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.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.RefreshTab;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Launch delegate for a program.
- */
-public class ProgramLaunchDelegate implements ILaunchConfigurationDelegate {
-
- private static IWindowListener windowListener;
-
- /**
- * 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.getString("ProgramLaunchDelegate.Workbench_Closing_1"), ExternalToolsProgramMessages.getString("ProgramLaunchDelegate.The_workbench_is_exiting")); //$NON-NLS-1$ //$NON-NLS-2$
- 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 (windowListener == null) {
- windowListener= new ProgramLaunchWindowListener();
- PlatformUI.getWorkbench().addWindowListener(windowListener);
- }
- 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(MessageFormat.format(ExternalToolsProgramMessages.getString("ProgramLaunchDelegate.3"), new String[] {configuration.getName()}), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
- process = DebugPlugin.newProcess(launch, p, location.toOSString(), processAttributes);
- if (process == null) {
- p.destroy();
- throw new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, IExternalToolConstants.ERR_INTERNAL_ERROR, ExternalToolsProgramMessages.getString("ProgramLaunchDelegate.4"), null)); //$NON-NLS-1$
- }
-
- }
- 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();
- }
-
-}
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 14db303de..000000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.ui.FileSelectionDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-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.getString("ProgramMainTab.Select")); //$NON-NLS-1$
- 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);
- WorkbenchHelp.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 188678fa4..000000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.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;
-
-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 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 9db411aab..000000000
--- a/org.eclipse.ui.externaltools/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>20th June, 2002</p>
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;). A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</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 6bd0c1eb9..000000000
--- a/org.eclipse.ui.externaltools/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-source.externaltools.jar = External Tools Base/,\
- Program Tools Support/
-
-src.includes=about.html
-
-bin.includes = icons/,\
- .options,\
- plugin.properties,\
- plugin.xml,\
- about.html,\
- *.jar,\
-
-jars.compile.order=externaltools.jar
-jars.extra.classpath=../org.apache.ant/ant.jar
diff --git a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml b/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
deleted file mode 100644
index 99aa388ae..000000000
--- a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
+++ /dev/null
@@ -1,36 +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 jarfile="${dest}/externaltools.jar">
- <fileset dir="bin">
- </fileset>
- </jar>
- <!-- Create the source zip -->
- <zip zipfile="${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 4122d9a26..000000000
--- 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 b05bf3e3d..000000000
--- 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/builder.gif b/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
deleted file mode 100644
index 903bbec3b..000000000
--- 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 cb55e33b5..000000000
--- 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 b05bf3e3d..000000000
--- 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 0bc60689c..000000000
--- 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 0193dbeab..000000000
--- 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.gif b/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif
deleted file mode 100644
index 38a9ab97e..000000000
--- a/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif
+++ /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 03669dfbb..000000000
--- a/org.eclipse.ui.externaltools/plugin.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-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.
-
-ExtPoint.configurationDuplicationMaps = Launch Configuration Duplication Maps
-ExtPoint.toolTypes = External Tool Types
-ExtPoint.refreshVariables = Refresh Scope Variables
-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.main = Main
-PropertyPage.option = Options
-PropertyPage.refresh = Refresh Scope
-PropertyPage.antTargets = Targets
-PropertyPage.externalToolsBuilders = Builders
-
-Builder.externalTools = Integrated External Tool Builder
-View.externalToolView = External Tools
-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 \ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/plugin.xml b/org.eclipse.ui.externaltools/plugin.xml
deleted file mode 100644
index 1b0846cd1..000000000
--- a/org.eclipse.ui.externaltools/plugin.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.ui.externaltools"
- name="%Plugin.name"
- version="3.1.0"
- provider-name="%Plugin.providerName"
- class="org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin">
-
- <runtime>
- <library name="externaltools.jar">
- <export name="*"/>
- </library>
- </runtime>
- <requires>
- <import plugin="org.eclipse.ui.ide" optional="true"/>
- <import plugin="org.eclipse.core.resources"/>
- <import plugin="org.eclipse.core.variables"/>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.debug.core"/>
- <import plugin="org.eclipse.debug.ui"/>
- <import plugin="org.eclipse.core.runtime"/>
- </requires>
-
-
-<!-- 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="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="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>
- <keyBinding
- keySequence=""
- contextId="org.eclipse.ui.globalScope"
- commandId="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar"
- keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration">
- </keyBinding>
- <command
- name="%ActionDefinition.openExternalToolsConfigurations.name"
- categoryId="org.eclipse.debug.ui.category.run"
- description="%ActionDefinition.openExternalToolsConfigurations.description"
- id="org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations">
- </command>
- <keyBinding
- keySequence=""
- contextId="org.eclipse.ui.globalScope"
- commandId="org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations"
- keyConfigurationId="org.eclipse.ui.defaultAcceleratorConfiguration">
- </keyBinding>
- </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
- objectClass="org.eclipse.core.resources.IProject"
- adaptable="true"
- name="%PropertyPage.externalToolsBuilders"
- class="org.eclipse.ui.externaltools.internal.ui.BuilderPropertyPage"
- id="org.eclipse.ui.externaltools.propertypages.BuilderPropertyPage">
- <filter
- name="open"
- value="true">
- </filter>
- </page>
- </extension>
- <extension
- id="ExternalToolBuilder"
- name="%Builder.externalTools"
- point="org.eclipse.core.resources.builders">
- <builder>
- <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="icons/full/obj16/external_tools.gif"
- configTypeID="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
- id="org.eclipse.ui.externaltools.launchConfigurationTypeImage.program">
- </launchConfigurationTypeImage>
- <launchConfigurationTypeImage
- icon="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="icons/full/wizban/ext_tools_wiz.gif"
- category="org.eclipse.ui.externaltools"
- image="icons/full/obj16/external_tools.gif"
- mode="run"
- id="org.eclipse.ui.externaltools.launchGroup"
- title="%ExternalToolsLaunchGroup.title">
- </launchGroup>
- <launchGroup
- label="%ExternalToolsLaunchGroup.label"
- bannerImage="icons/full/wizban/ext_tools_wiz.gif"
- category="org.eclipse.ui.externaltools.builder"
- image="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>
- </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 ca36e05e9..000000000
--- a/org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.externaltools">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.ui.externaltools" id="configurationDuplicationMaps" name="Configuration Duplication Maps"/>
- </appInfo>
- <documentation>
-This is an internal extension point to declare the launch configuration type that
-should be created when duplicating an existing configuration as a project builder.
-
-Clients are not intended to use this extension point.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="configurationMap" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="configurationMap">
- <complexType>
- <attribute name="sourceType" type="string" use="required">
- <annotation>
- <documentation>
- specifies the identifier of the launch configuration type for which this mapping is provided
- </documentation>
- </annotation>
- </attribute>
- <attribute name="builderType" type="string" use="required">
- <annotation>
- <documentation>
- specifies the identifier of the launch configuration type which should be created when a configuration of type "sourceType" is imported to be a project builder
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
-The following example specifies that when the user chooses to import a launch configuration
-of the type &quot;org.eclipse.ui.externaltools.ProgramLaunchConfigurationType&quot;, a new launch
-configuration of the type&quot;org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType&quot;
-should be created.
-
-&lt;pre&gt;
-&lt;extension
- point=&quot;org.eclipse.ui.externaltools.configurationDuplicationMaps&quot;&gt;
- &lt;configurationMap
- sourceType=&quot;org.eclipse.ui.externaltools.ProgramLaunchConfigurationType&quot;
- builderType=&quot;org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType&quot;&gt;
- &lt;/configurationMap&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2003, 2004 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Common Public License v1.0 which
-accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
- </documentation>
- </annotation>
-
-</schema>

Back to the top