blob: 8ba085d4d81d1c46f1c51f24bc50d37eae61cc8d [file] [log] [blame]
<html>
<head>
<title>3.0 JDT Launching Change Notes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>3.0 JDT Launching Change Notes</h1>
<p>This document describes important changes in the 3.0 JDT launching support, relative
to the 2.1 release.</p>
<h2>API Changes</h2>
<h3>VMRunnerConfiguration contains environment</h3>
<p>Two methods have been added to the <code>VMRunnerConfiguration</code> type
to support the setting and retrieving of environment variables.
<p>Implementors of <code>IVMRunner</code> should call <code>VMRunnerConfiguration.getEnvironment()</code>
and pass that environment into the executed VM. Clients who use <code>DebugPlugin#exec(String[]
cmdLine, File workingDirectory)</code> can do this by calling <code>DebugPlugin#exec(String[]
cmdLine, File workingDirectory, String[] envp)</code> instead. Simply passing
in the result from <code>getEnvironment()</code> is sufficient.</p>
<h3>VMRunnerConfiguration and Bootstrap Classes</h3>
<p>In prior releases, the <code>VMRunnerConfiguration</code> had one attribute
to describe a boot path. The attribute is a collection of <code>Strings</code>
to be specified in the -<code>Xbootclasspath</code> argument. Three new attributes
have been added to the VM specific attributes map to support VMs that allow
for prepending and appending to the boot path. The newly added attributes are
defined in <code>IJavaLanuchConfigurationConstants</code>:</p>
<ul>
<li><code>ATTR_BOOTPAH_PREPEND</code> - an array of strings describing paths
in the local file system to be prepended to the boot path (the <code>-Xbootclasspath/p</code>
argument)</li>
<li><code>ATTR_BOOTPATH</code> - an array of strings describing paths in the
local file system to be placed on the boot path (the <code>-Xbootclasspath</code>
argument)</li>
<li><code>ATTR_BOOTPATH_APPEND</code> - an array of strings describing paths
in the local file system to be appended to the boot path (the <code>-Xbootclasspath/a</code>
argument)</li>
</ul>
<p>The old attribute,<code> getBootClassPath()</code> still exists, and contains
a complete path equivalent to that of the three new attributes. However, <code>VMRunners</code>
that support the new boot path options should take advantage of the new attributes,
found in the VM specific attributes map (i.e. <code>VMRunnerConfiguration.getVMSpecificAttributesMap()</code>).
The attributes are computed dynamically at launch time based on the classpath
attribute associated with a launch configiuration. The boothpath attributes
themselves are not stored in launch configurations.</p>
<h3>Default VM Arguments</h3>
<p>To allow a specific set of VM arguments to be used every time a specific VM
is launched (without having to specify the arguments on all associated launch
configurations), a new &quot;VM arguments&quot; attribute has been added to
<code>IVMInstall</code>, along with getter and setter methods. Although clients
may implement this interface, the additional API is intended to be non-breaking,
since clients who implement the interface should be subclassing <code>AbstractVMInstall</code>,
where the new feature is implemented. Existing VM runners need to honor the
new attributes when launching a VM. A convenience method (<code>combineVmArgs</code>)
has been added to <code>AbstractVMRunner</code> to combine VM arguments specified
on a runner configuration and a VM install.</p>
</body>
</html>