Package org.eclipse.jdt.launching
Class AbstractJavaLaunchConfigurationDelegate
- java.lang.Object
-
- org.eclipse.debug.core.model.LaunchConfigurationDelegate
-
- org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate
-
- All Implemented Interfaces:
IDebugEventSetListener
,ILaunchConfigurationDelegate
,ILaunchConfigurationDelegate2
- Direct Known Subclasses:
JavaLaunchDelegate
,JUnitLaunchConfigurationDelegate
public abstract class AbstractJavaLaunchConfigurationDelegate extends LaunchConfigurationDelegate implements IDebugEventSetListener
Abstract implementation of a Java launch configuration delegate. Provides convenience methods for accessing and verifying launch configuration attributes.Clients implementing Java launch configuration delegates should subclass this class.
- Since:
- 2.0
-
-
Field Summary
-
Fields inherited from class org.eclipse.debug.core.model.LaunchConfigurationDelegate
complileErrorProjectPromptStatus, complileErrorPromptStatus, promptStatus, saveScopedDirtyEditors, switchToDebugPromptStatus
-
-
Constructor Summary
Constructors Constructor Description AbstractJavaLaunchConfigurationDelegate()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
abort(String message, Throwable exception, int code)
Throws a core exception with an error status object built from the given message, lower level exception, and error code.protected void
allowAdvancedSourcelookup()
Enabled advanced sourcelookup for this launch delegate.String[]
getBootpath(ILaunchConfiguration configuration)
Returns entries that should appear on the bootstrap portion of the classpath as specified by the given launch configuration, as an array of resolved strings.String[][]
getBootpathExt(ILaunchConfiguration configuration)
Returns three sets of entries which represent the boot classpath specified in the launch configuration, as an array of three arrays of resolved strings.protected IBreakpoint[]
getBreakpoints(ILaunchConfiguration configuration)
protected IProject[]
getBuildOrder(ILaunchConfiguration configuration, String mode)
String[]
getClasspath(ILaunchConfiguration configuration)
Deprecated.use getClasspathAndModulepathString[][]
getClasspathAndModulepath(ILaunchConfiguration config)
Returns the entries that should appear on the user portion of the classpath and modulepath as specified by the given launch configuration, as an array of resolved strings.protected File
getDefaultWorkingDirectory(ILaunchConfiguration configuration)
Returns the default working directory for the given launch configuration, ornull
if none.String[]
getEnvironment(ILaunchConfiguration configuration)
Returns an array of environment variables to be used when launching the given configuration ornull
if unspecified.String[]
getJavaLibraryPath(ILaunchConfiguration configuration)
Returns an array of paths to be used for thejava.library.path
system property, ornull
if unspecified.IJavaProject
getJavaProject(ILaunchConfiguration configuration)
Returns the Java project specified by the given launch configuration, ornull
if none.String
getJavaProjectName(ILaunchConfiguration configuration)
Returns the Java project name specified by the given launch configuration, ornull
if none.ILaunch
getLaunch(ILaunchConfiguration configuration, String mode)
protected ILaunchManager
getLaunchManager()
Convenience method to get the launch manager.String
getMainTypeName(ILaunchConfiguration configuration)
Returns the main type name specified by the given launch configuration, ornull
if none.String
getModuleCLIOptions(ILaunchConfiguration configuration)
Returns the module-related command line options for the configuration that are needed at runtime as equivalents of those options specified byIClasspathAttribute
s of the following names:IClasspathAttribute.ADD_EXPORTS
IClasspathAttribute.ADD_READS
IClasspathAttribute.LIMIT_MODULES
IClasspathAttribute.PATCH_MODULE
String
getProgramArguments(ILaunchConfiguration configuration)
Returns the program arguments specified by the given launch configuration, as a string.protected IProject[]
getProjectsForProblemSearch(ILaunchConfiguration configuration, String mode)
String
getVMArguments(ILaunchConfiguration configuration)
Returns the VM arguments specified by the given launch configuration, as a string.String
getVMArguments(ILaunchConfiguration configuration, String mode)
Returns the VM arguments specified by the given launch configuration, as a string.String
getVMConnectorId(ILaunchConfiguration configuration)
Returns the VM connector identifier specified by the given launch configuration, ornull
if none.IVMInstall
getVMInstall(ILaunchConfiguration configuration)
Returns the VM install specified by the given launch configuration, ornull
if none.String
getVMInstallName(ILaunchConfiguration configuration)
Returns the VM install name specified by the given launch configuration, ornull
if none.IVMInstallType
getVMInstallType(ILaunchConfiguration configuration)
Returns the VM install type specified by the given launch configuration, ornull
if none.String
getVMInstallTypeId(ILaunchConfiguration configuration)
Returns the VM install type identifier specified by the given launch configuration, ornull
if none.IVMRunner
getVMRunner(ILaunchConfiguration configuration, String mode)
Returns the VM runner for the given launch mode to use when launching the given configuration.Map<String,Object>
getVMSpecificAttributesMap(ILaunchConfiguration configuration)
Returns the Map of VM-specific attributes specified by the given launch configuration, ornull
if none.File
getWorkingDirectory(ILaunchConfiguration configuration)
Returns the working directory specified by the given launch configuration, ornull
if none.IPath
getWorkingDirectoryPath(ILaunchConfiguration configuration)
Returns the working directory path specified by the given launch configuration, ornull
if none.void
handleDebugEvents(DebugEvent[] events)
Handles the "stop-in-main" option.boolean
isAllowTerminate(ILaunchConfiguration configuration)
Returns whether the given launch configuration specifies that termination is allowed.protected boolean
isLaunchProblem(IMarker problemMarker)
boolean
isStopInMain(ILaunchConfiguration configuration)
Returns whether the given launch configuration specifies that execution should suspend on entry of the main method.boolean
preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor)
protected void
prepareStopInMain(ILaunchConfiguration configuration)
Determines if the given launch configuration specifies the "stop-in-main" attribute, and sets up an event listener to handle the option if required.protected void
setDefaultSourceLocator(ILaunch launch, ILaunchConfiguration configuration)
Assigns a default source locator to the given launch if a source locator has not yet been assigned to it, and the associated launch configuration does not specify a source locator.protected boolean
supportsModule()
Supports modular class for launching.protected boolean
supportsPreviewFeatures(ILaunchConfiguration configuration)
Supports Preview Features for launching.IJavaProject
verifyJavaProject(ILaunchConfiguration configuration)
Verifies a Java project is specified by the given launch configuration, and returns the Java project.String
verifyMainTypeName(ILaunchConfiguration configuration)
Verifies a main type name is specified by the given launch configuration, and returns the main type name.IVMInstall
verifyVMInstall(ILaunchConfiguration configuration)
Verifies the VM install specified by the given launch configuration exists and returns the VM install.File
verifyWorkingDirectory(ILaunchConfiguration configuration)
Verifies the working directory specified by the given launch configuration exists, and returns the working directory, ornull
if none is specified.-
Methods inherited from class org.eclipse.debug.core.model.LaunchConfigurationDelegate
addReferencedProjects, buildForLaunch, buildProjects, computeBuildOrder, computeReferencedBuildOrder, existsProblems, finalLaunchCheck, saveBeforeLaunch
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.debug.core.model.ILaunchConfigurationDelegate
launch, showCommandLine
-
-
-
-
Method Detail
-
getLaunchManager
protected ILaunchManager getLaunchManager()
Convenience method to get the launch manager.- Returns:
- the launch manager
-
abort
protected void abort(String message, Throwable exception, int code) throws CoreException
Throws a core exception with an error status object built from the given message, lower level exception, and error code.- Parameters:
message
- the status messageexception
- lower level exception associated with the error, ornull
if nonecode
- error code- Throws:
CoreException
- the "abort" core exception
-
getVMInstall
public IVMInstall getVMInstall(ILaunchConfiguration configuration) throws CoreException
Returns the VM install specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the VM install specified by the given launch configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getVMInstallName
public String getVMInstallName(ILaunchConfiguration configuration) throws CoreException
Returns the VM install name specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the VM install name specified by the given launch configuration,
or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getVMInstallType
public IVMInstallType getVMInstallType(ILaunchConfiguration configuration) throws CoreException
Returns the VM install type specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the VM install type specified by the given launch configuration,
or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getVMInstallTypeId
public String getVMInstallTypeId(ILaunchConfiguration configuration) throws CoreException
Returns the VM install type identifier specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the VM install type identifier specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
verifyVMInstall
public IVMInstall verifyVMInstall(ILaunchConfiguration configuration) throws CoreException
Verifies the VM install specified by the given launch configuration exists and returns the VM install.- Parameters:
configuration
- launch configuration- Returns:
- the VM install specified by the given launch configuration
- Throws:
CoreException
- if unable to retrieve the attribute, the attribute is unspecified, or if the home location is unspecified or does not exist
-
getVMConnectorId
public String getVMConnectorId(ILaunchConfiguration configuration) throws CoreException
Returns the VM connector identifier specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the VM connector identifier specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getBootpath
public String[] getBootpath(ILaunchConfiguration configuration) throws CoreException
Returns entries that should appear on the bootstrap portion of the classpath as specified by the given launch configuration, as an array of resolved strings. The returned array isnull
if all entries are standard (i.e. appear by default), or empty to represent an empty bootpath.- Parameters:
configuration
- launch configuration- Returns:
- the bootpath specified by the given launch configuration. An
empty bootpath is specified by an empty array, and
null
represents a default bootpath. - Throws:
CoreException
- if unable to retrieve the attribute
-
getBootpathExt
public String[][] getBootpathExt(ILaunchConfiguration configuration) throws CoreException
Returns three sets of entries which represent the boot classpath specified in the launch configuration, as an array of three arrays of resolved strings. The first array represents the classpath that should be prepended to the boot classpath. The second array represents the main part of the boot classpath -null
represents the default bootclasspath. The third array represents the classpath that should be appended to the boot classpath.- Parameters:
configuration
- launch configuration- Returns:
- a description of the boot classpath specified by the given launch configuration.
- Throws:
CoreException
- if unable to retrieve the attribute- Since:
- 3.0
-
getClasspath
@Deprecated public String[] getClasspath(ILaunchConfiguration configuration) throws CoreException
Deprecated.use getClasspathAndModulepathReturns the entries that should appear on the user portion of the classpath as specified by the given launch configuration, as an array of resolved strings. The returned array is empty if no classpath is specified.- Parameters:
configuration
- launch configuration- Returns:
- the classpath specified by the given launch configuration, possibly an empty array
- Throws:
CoreException
- if unable to retrieve the attribute
-
getClasspathAndModulepath
public String[][] getClasspathAndModulepath(ILaunchConfiguration config) throws CoreException
Returns the entries that should appear on the user portion of the classpath and modulepath as specified by the given launch configuration, as an array of resolved strings. The returned array is empty if no classpath and modulepath is specified.- Parameters:
config
- launch configuration- Returns:
- the classpath and modulepath specified by the given launch configuration, possibly an empty array
- Throws:
CoreException
- if unable to retrieve the attribute- Since:
- 3.10
-
getJavaProject
public IJavaProject getJavaProject(ILaunchConfiguration configuration) throws CoreException
Returns the Java project specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the Java project specified by the given launch configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getJavaProjectName
public String getJavaProjectName(ILaunchConfiguration configuration) throws CoreException
Returns the Java project name specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the Java project name specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getMainTypeName
public String getMainTypeName(ILaunchConfiguration configuration) throws CoreException
Returns the main type name specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the main type name specified by the given launch configuration,
or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getProgramArguments
public String getProgramArguments(ILaunchConfiguration configuration) throws CoreException
Returns the program arguments specified by the given launch configuration, as a string. The returned string is empty if no program arguments are specified.- Parameters:
configuration
- launch configuration- Returns:
- the program arguments specified by the given launch configuration, possibly an empty string
- Throws:
CoreException
- if unable to retrieve the attribute
-
getVMArguments
public String getVMArguments(ILaunchConfiguration configuration) throws CoreException
Returns the VM arguments specified by the given launch configuration, as a string. The returned string is empty if no VM arguments are specified.- Parameters:
configuration
- launch configuration- Returns:
- the VM arguments specified by the given launch configuration, possibly an empty string
- Throws:
CoreException
- if unable to retrieve the attribute
-
getVMArguments
public String getVMArguments(ILaunchConfiguration configuration, String mode) throws CoreException
Returns the VM arguments specified by the given launch configuration, as a string. The returned string is empty if no VM arguments are specified.- Parameters:
configuration
- launch configurationmode
- the mode in which to launch, one of the mode constants defined byILaunchManager
-RUN_MODE
orDEBUG_MODE
.- Returns:
- the VM arguments specified by the given launch configuration, possibly an empty string
- Throws:
CoreException
- if unable to retrieve the attribute- Since:
- 3.10
-
getVMSpecificAttributesMap
public Map<String,Object> getVMSpecificAttributesMap(ILaunchConfiguration configuration) throws CoreException
Returns the Map of VM-specific attributes specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the
Map
of VM-specific attributes - Throws:
CoreException
- if unable to retrieve the attribute
-
getWorkingDirectory
public File getWorkingDirectory(ILaunchConfiguration configuration) throws CoreException
Returns the working directory specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the working directory specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
getWorkingDirectoryPath
public IPath getWorkingDirectoryPath(ILaunchConfiguration configuration) throws CoreException
Returns the working directory path specified by the given launch configuration, ornull
if none.- Parameters:
configuration
- launch configuration- Returns:
- the working directory path specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
verifyJavaProject
public IJavaProject verifyJavaProject(ILaunchConfiguration configuration) throws CoreException
Verifies a Java project is specified by the given launch configuration, and returns the Java project.- Parameters:
configuration
- launch configuration- Returns:
- the Java project specified by the given launch configuration
- Throws:
CoreException
- if unable to retrieve the attribute or the attribute is unspecified
-
verifyMainTypeName
public String verifyMainTypeName(ILaunchConfiguration configuration) throws CoreException
Verifies a main type name is specified by the given launch configuration, and returns the main type name.- Parameters:
configuration
- launch configuration- Returns:
- the main type name specified by the given launch configuration
- Throws:
CoreException
- if unable to retrieve the attribute or the attribute is unspecified
-
verifyWorkingDirectory
public File verifyWorkingDirectory(ILaunchConfiguration configuration) throws CoreException
Verifies the working directory specified by the given launch configuration exists, and returns the working directory, ornull
if none is specified.- Parameters:
configuration
- launch configuration- Returns:
- the working directory specified by the given launch
configuration, or
null
if none - Throws:
CoreException
- if unable to retrieve the attribute
-
isAllowTerminate
public boolean isAllowTerminate(ILaunchConfiguration configuration) throws CoreException
Returns whether the given launch configuration specifies that termination is allowed.- Parameters:
configuration
- launch configuration- Returns:
- whether termination is allowed
- Throws:
CoreException
- if unable to retrieve the attribute
-
isStopInMain
public boolean isStopInMain(ILaunchConfiguration configuration) throws CoreException
Returns whether the given launch configuration specifies that execution should suspend on entry of the main method.- Parameters:
configuration
- launch configuration- Returns:
- whether execution should suspend in main
- Throws:
CoreException
- if unable to retrieve the attribute- Since:
- 2.1
-
setDefaultSourceLocator
protected void setDefaultSourceLocator(ILaunch launch, ILaunchConfiguration configuration) throws CoreException
Assigns a default source locator to the given launch if a source locator has not yet been assigned to it, and the associated launch configuration does not specify a source locator.- Parameters:
launch
- launch objectconfiguration
- configuration being launched- Throws:
CoreException
- if unable to set the source locator
-
prepareStopInMain
protected void prepareStopInMain(ILaunchConfiguration configuration) throws CoreException
Determines if the given launch configuration specifies the "stop-in-main" attribute, and sets up an event listener to handle the option if required.- Parameters:
configuration
- configuration being launched- Throws:
CoreException
- if unable to access the attribute- Since:
- 2.1
-
handleDebugEvents
public void handleDebugEvents(DebugEvent[] events)
Handles the "stop-in-main" option.- Specified by:
handleDebugEvents
in interfaceIDebugEventSetListener
- Parameters:
events
- the debug events.- See Also:
IDebugEventSetListener.handleDebugEvents(DebugEvent[])
-
getBuildOrder
protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException
- Overrides:
getBuildOrder
in classLaunchConfigurationDelegate
- Throws:
CoreException
-
getProjectsForProblemSearch
protected IProject[] getProjectsForProblemSearch(ILaunchConfiguration configuration, String mode) throws CoreException
- Overrides:
getProjectsForProblemSearch
in classLaunchConfigurationDelegate
- Throws:
CoreException
-
isLaunchProblem
protected boolean isLaunchProblem(IMarker problemMarker) throws CoreException
- Overrides:
isLaunchProblem
in classLaunchConfigurationDelegate
- Throws:
CoreException
-
preLaunchCheck
public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException
- Specified by:
preLaunchCheck
in interfaceILaunchConfigurationDelegate2
- Overrides:
preLaunchCheck
in classLaunchConfigurationDelegate
- Throws:
CoreException
-
getBreakpoints
protected IBreakpoint[] getBreakpoints(ILaunchConfiguration configuration)
- Overrides:
getBreakpoints
in classLaunchConfigurationDelegate
-
getVMRunner
public IVMRunner getVMRunner(ILaunchConfiguration configuration, String mode) throws CoreException
Returns the VM runner for the given launch mode to use when launching the given configuration.- Parameters:
configuration
- launch configurationmode
- launch node- Returns:
- VM runner to use when launching the given configuration in the given mode
- Throws:
CoreException
- if a VM runner cannot be determined- Since:
- 3.1
-
getEnvironment
public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException
Returns an array of environment variables to be used when launching the given configuration ornull
if unspecified.- Parameters:
configuration
- launch configuration- Returns:
- an array of environment variables to use when launching the given configuration or null if unspecified
- Throws:
CoreException
- if unable to access associated attribute or if unable to resolve a variable in an environment variable's value- Since:
- 3.1
-
getJavaLibraryPath
public String[] getJavaLibraryPath(ILaunchConfiguration configuration) throws CoreException
Returns an array of paths to be used for thejava.library.path
system property, ornull
if unspecified.- Parameters:
configuration
- the config- Returns:
- an array of paths to be used for the
java.library.path
system property, ornull
- Throws:
CoreException
- if unable to determine the attribute- Since:
- 3.1
-
getDefaultWorkingDirectory
protected File getDefaultWorkingDirectory(ILaunchConfiguration configuration) throws CoreException
Returns the default working directory for the given launch configuration, ornull
if none. Subclasses may override as necessary.- Parameters:
configuration
- the config- Returns:
- default working directory or
null
if none - Throws:
CoreException
- if an exception occurs computing the default working directory- Since:
- 3.2
-
getLaunch
public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) throws CoreException
- Specified by:
getLaunch
in interfaceILaunchConfigurationDelegate2
- Overrides:
getLaunch
in classLaunchConfigurationDelegate
- Throws:
CoreException
-
allowAdvancedSourcelookup
protected final void allowAdvancedSourcelookup()
Enabled advanced sourcelookup for this launch delegate. Advanced source lookup is disabled by default. This call has not effect if advanced source lookup is disabled at workspace level, i.e. advanced source lookup will remain disabled even if this method is called for the launch delegate instance.- Since:
- 3.10
-
getModuleCLIOptions
public String getModuleCLIOptions(ILaunchConfiguration configuration) throws CoreException
Returns the module-related command line options for the configuration that are needed at runtime as equivalents of those options specified byIClasspathAttribute
s of the following names:- Throws:
CoreException
- Since:
- 3.10
-
supportsModule
protected boolean supportsModule()
Supports modular class for launching.- Since:
- 3.12
-
supportsPreviewFeatures
protected boolean supportsPreviewFeatures(ILaunchConfiguration configuration)
Supports Preview Features for launching.- Since:
- 3.14
-
-