Copyright (c) 2000, 2019 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.launching;
import java.util.List;
import java.util.Map;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.ILaunch;
import com.sun.jdi.connect.Connector;
A VM connector establishes a JDI connection with a debuggable
virtual machine. This extension point provides a mechanism for
abstracting the connection to a remote virtual machine.
A VM connector extension is defined in plugin.xml
.
Following is an example definition of a VM connector extension.
<extension point="org.eclipse.jdt.launching.vmConnectors">
<vmConnector
id="com.example.VMConnector"
class="com.example.VMConnectorClass"
</vmConnector>
</extension>
The attributes are specified as follows:
id
specifies a unique identifier for this VM connector.
class
specifies the fully qualified name of the Java class
that implements IVMConnector
.
Since: 2.0
/**
* A VM connector establishes a JDI connection with a debuggable
* virtual machine. This extension point provides a mechanism for
* abstracting the connection to a remote virtual machine.
* <p>
* A VM connector extension is defined in <code>plugin.xml</code>.
* Following is an example definition of a VM connector extension.
* <pre>
* <extension point="org.eclipse.jdt.launching.vmConnectors">
* <vmConnector
* id="com.example.VMConnector"
* class="com.example.VMConnectorClass"
* </vmConnector>
* </extension>
* </pre>
* The attributes are specified as follows:
* <ul>
* <li><code>id</code> specifies a unique identifier for this VM connector.</li>
* <li><code>class</code> specifies the fully qualified name of the Java class
* that implements <code>IVMConnector</code>.</li>
* </ul>
* @since 2.0
*/
public interface IVMConnector {
Establishes a JDI connection with a debuggable VM using the arguments
specified in the given map, contributing results (debug targets and processes),
to the given launch.
Params: - arguments – Argument map to use in establishing a connection. The keys of
the map are strings corresponding to the names of arguments returned by this
connector's
getDefaultAgruments()
method. The values of the map
are strings corresponding to the (String) values of the associated
com.sun.jdi.connect.Connector.Argument
s to use. - monitor – progress monitor
- launch – launch to contribute debug target(s) and/or process(es) to
Throws: - CoreException – if unable to establish a connection with the target VM
/**
* Establishes a JDI connection with a debuggable VM using the arguments
* specified in the given map, contributing results (debug targets and processes),
* to the given launch.
*
* @param arguments Argument map to use in establishing a connection. The keys of
* the map are strings corresponding to the names of arguments returned by this
* connector's <code>getDefaultAgruments()</code> method. The values of the map
* are strings corresponding to the (String) values of the associated
* <code>com.sun.jdi.connect.Connector.Argument</code>s to use.
* @param monitor progress monitor
* @param launch launch to contribute debug target(s) and/or process(es) to
* @exception CoreException if unable to establish a connection with the target VM
*/
public void connect(Map<String, String> arguments, IProgressMonitor monitor, ILaunch launch) throws CoreException;
Returns the name of this connector.
Returns: the name of this connector
/**
* Returns the name of this connector.
*
* @return the name of this connector
*/
public String getName();
Returns a unique identifier for this kind of connector.
Returns: a unique identifier for this kind of connector
/**
* Returns a unique identifier for this kind of connector.
*
* @return a unique identifier for this kind of connector
*/
public String getIdentifier();
Returns a map of default arguments used by this connector.
The keys of the map are names of arguments used by this
connector, and the values are of type
com.sun.jdi.connect.Connector.Argument
.
Throws: - CoreException – if unable to retrieve a default argument map
Returns: argument map with default values
/**
* Returns a map of default arguments used by this connector.
* The keys of the map are names of arguments used by this
* connector, and the values are of type
* <code>com.sun.jdi.connect.Connector.Argument</code>.
*
* @return argument map with default values
* @exception CoreException if unable to retrieve a default argument map
*/
public Map<String, Connector.Argument> getDefaultArguments() throws CoreException;
Returns a list of argument names found in this connector's
default argument map, defining the order in which arguments
should be presented to the user. Since a map is not ordered,
this provides control on how arguments will be presented to
the user.
Returns: list of argument names
/**
* Returns a list of argument names found in this connector's
* default argument map, defining the order in which arguments
* should be presented to the user. Since a map is not ordered,
* this provides control on how arguments will be presented to
* the user.
*
* @return list of argument names
*/
public List<String> getArgumentOrder();
}