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> * &lt;extension point="org.eclipse.jdt.launching.vmConnectors"&gt; * &lt;vmConnector * id="com.example.VMConnector" * class="com.example.VMConnectorClass" * &lt;/vmConnector&gt; * &lt;/extension&gt; * </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.Arguments 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:
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(); }