1 /*******************************************************************************
2  * Copyright (c) 2000, 2019 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.jdt.launching;
15 
16 import org.eclipse.jdt.internal.launching.LaunchingPlugin;
17 
18 
19 /**
20  * Constant definitions for Java launch configurations.
21  * <p>
22  * Constant definitions only
23  * </p>
24  * @since 2.0
25  * @noimplement This interface is not intended to be implemented by clients.
26  * @noextend This interface is not intended to be extended by clients.
27  */
28 public interface IJavaLaunchConfigurationConstants {
29 
30 	/**
31 	 * Identifier for the Local Java Application launch configuration type
32 	 * (value <code>"org.eclipse.jdt.launching.localJavaApplication"</code>).
33 	 */
34 	public static final String ID_JAVA_APPLICATION = LaunchingPlugin.getUniqueIdentifier() + ".localJavaApplication"; //$NON-NLS-1$
35 
36 	/**
37 	 * Identifier for the Remote Java Application launch configuration type
38 	 * (value <code>"org.eclipse.jdt.launching.remoteJavaApplication"</code>).
39 	 */
40 	public static final String ID_REMOTE_JAVA_APPLICATION = LaunchingPlugin.getUniqueIdentifier() + ".remoteJavaApplication"; //$NON-NLS-1$
41 
42 	/**
43 	 * Identifier for the Java Applet launch configuration type
44 	 * (value <code>"org.eclipse.jdt.launching.javaApplet"</code>).
45 	 */
46 	public static final String ID_JAVA_APPLET = LaunchingPlugin.getUniqueIdentifier() + ".javaApplet"; //$NON-NLS-1$
47 
48 	/**
49 	 * Identifier for the standard Socket Attaching VM connector
50 	 * (value <code>"org.eclipse.jdt.launching.socketAttachConnector"</code>).
51 	 */
52 	public static final String ID_SOCKET_ATTACH_VM_CONNECTOR = LaunchingPlugin.getUniqueIdentifier() + ".socketAttachConnector"; //$NON-NLS-1$
53 
54 	/**
55 	 * Identifier for the standard Socket Listening VM connector
56 	 * (value <code>"org.eclipse.jdt.launching.socketListenConnector"</code>).
57 	 * @since 3.4
58 	 */
59 	public static final String ID_SOCKET_LISTEN_VM_CONNECTOR = LaunchingPlugin.getUniqueIdentifier() + ".socketListenConnector"; //$NON-NLS-1$
60 
61 	/**
62 	 * Identifier for the java process type, which is annotated on processes created
63 	 * by the local java application launch delegate.
64 	 *
65 	 * (value <code>"java"</code>).
66 	 */
67 	public static final String ID_JAVA_PROCESS_TYPE = "java"; //$NON-NLS-1$
68 
69 	/**
70 	 * Launch configuration attribute key. The value is a name of
71 	 * a Java project associated with a Java launch configuration.
72 	 */
73 	/*
74 	 * This constant is referenced from an upper-layer bundle
75 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget#prepareBreakpointsSearchScope()
76 	 */
77 	public static final String ATTR_PROJECT_NAME = LaunchingPlugin.getUniqueIdentifier() + ".PROJECT_ATTR"; //$NON-NLS-1$
78 
79 	/**
80 	 * Launch configuration attribute key. The value is a fully qualified name
81 	 * of a main type to launch.
82 	 */
83 	public static final String ATTR_MAIN_TYPE_NAME = LaunchingPlugin.getUniqueIdentifier() + ".MAIN_TYPE";	 //$NON-NLS-1$
84 
85 	/**
86 	 * Launch configuration attribute key. The value is the module name for the main type to launch.
87 	 *
88 	 * @since 3.17
89 	 */
90 	public static final String ATTR_MODULE_NAME = LaunchingPlugin.getUniqueIdentifier() + ".MODULE_NAME"; //$NON-NLS-1$
91 
92 	/**
93 	 * Launch configuration attribute key. The value is a boolean specifying
94 	 * whether execution should stop when main is entered. The default value
95 	 * is <code>false</code>.
96 	 *
97 	 * @since 2.1
98 	 */
99 	public static final String ATTR_STOP_IN_MAIN = LaunchingPlugin.getUniqueIdentifier() + ".STOP_IN_MAIN";	 //$NON-NLS-1$
100 
101 	/**
102 	 * Launch configuration attribute key. The value is a string specifying
103 	 * program arguments for a Java launch configuration, as they should appear
104 	 * on the command line.
105 	 */
106 	public static final String ATTR_PROGRAM_ARGUMENTS = LaunchingPlugin.getUniqueIdentifier() + ".PROGRAM_ARGUMENTS"; //$NON-NLS-1$
107 
108 	/**
109 	 * Launch configuration attribute key. The value is a string specifying
110 	 * VM arguments for a Java launch configuration, as they should appear
111 	 * on the command line.
112 	 */
113 	public static final String ATTR_VM_ARGUMENTS = LaunchingPlugin.getUniqueIdentifier() + ".VM_ARGUMENTS";	 //$NON-NLS-1$
114 
115 	/**
116 	 * Launch configuration attribute key. The value is a string specifying a
117 	 * path to the working directory to use when launching a local VM.
118 	 * When specified as an absolute path, the path represents a path in the local
119 	 * file system. When specified as a full path, the path represents a workspace
120 	 * relative path. When unspecified, the working directory defaults to the project
121 	 * associated with a launch configuration. When no project is associated with a
122 	 * launch configuration, the working directory is inherited from the current
123 	 * process.
124 	 */
125 	public static final String ATTR_WORKING_DIRECTORY = LaunchingPlugin.getUniqueIdentifier() + ".WORKING_DIRECTORY";	 //$NON-NLS-1$
126 
127 	/**
128 	 * Launch configuration attribute key. The value is a path identifying the JRE used
129 	 * when launching a local VM. The path is a classpath container corresponding
130 	 * to the <code>JavaRuntime.JRE_CONTAINER</code> classpath container.
131 	 * <p>
132 	 * When unspecified the default JRE for a launch configuration is used (which is the
133 	 * JRE associated with the project being launched, or the workspace default JRE when
134 	 * no project is associated with a configuration). The default JRE classpath container
135 	 * refers explicitly to the workspace default JRE.
136 	 * </p>
137 	 * @since 3.2
138 	 */
139 	public static final String ATTR_JRE_CONTAINER_PATH = JavaRuntime.JRE_CONTAINER;
140 
141 	/**
142 	 * Launch configuration attribute key. The value is a name of a VM install
143 	 * to use when launching a local VM. This attribute must be qualified
144 	 * by a VM install type, via the <code>ATTR_VM_INSTALL_TYPE</code>
145 	 * attribute. When unspecified, the default VM is used.
146 	 *
147 	 * @deprecated use <code>ATTR_JRE_CONTAINER_PATH</code>
148 	 */
149 	@Deprecated
150 	public static final String ATTR_VM_INSTALL_NAME = LaunchingPlugin.getUniqueIdentifier() + ".VM_INSTALL_NAME"; //$NON-NLS-1$
151 
152 	/**
153 	 * Launch configuration attribute key. The value is an identifier of
154 	 * a VM install type. Used in conjunction with a VM install name, to
155 	 * specify the VM to use when launching a local Java application.
156 	 * The associated VM install name is specified via the attribute
157 	 * <code>ATTR_VM_INSTALL_NAME</code>.
158 	 *
159 	 * @deprecated use <code>ATTR_JRE_CONTAINER_PATH</code>
160 	 */
161 	@Deprecated
162 	public static final String ATTR_VM_INSTALL_TYPE = LaunchingPlugin.getUniqueIdentifier() + ".VM_INSTALL_TYPE_ID"; //$NON-NLS-1$
163 
164 	/**
165 	 * Launch configuration attribute key. The value is a Map of attributes specific
166 	 * to a particular VM install type, used when launching a local Java
167 	 * application. The map is passed to a <code>VMRunner</code> via a <code>VMRunnerConfiguration</code>
168 	 * when launching a VM. The attributes in the map are implementation dependent
169 	 * and are limited to String keys and values.
170 	 */
171 	public static final String ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP = LaunchingPlugin.getUniqueIdentifier() + "VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP"; //$NON-NLS-1$
172 
173 	/**
174 	 * Launch configuration attribute key. The value is an identifier of
175 	 * a VM connector, specifying a connector to use when attaching to
176 	 * a remote VM.
177 	 */
178 	public static final String ATTR_VM_CONNECTOR= LaunchingPlugin.getUniqueIdentifier() + ".VM_CONNECTOR_ID"; //$NON-NLS-1$
179 
180 	/**
181 	 * Launch configuration attribute key. The attribute value is an ordered list of strings
182 	 * which are mementos for runtime class path entries. When unspecified, a default
183 	 * classpath is generated by the classpath provider associated with a launch
184 	 * configuration (via the <code>ATTR_CLASSPATH_PROVIDER</code> attribute).
185 	 */
186 	public static final String ATTR_CLASSPATH = LaunchingPlugin.getUniqueIdentifier() + ".CLASSPATH";	 //$NON-NLS-1$
187 
188 	/**
189 	 * Launch configuration attribute key. The attribute value is an ordered list of strings which are mementos for runtime module path entries. When
190 	 * unspecified, a default modulepath is generated by the dependency provider associated with a launch configuration (via the
191 	 * <code>ATTR_CLASSPATH_PROVIDER</code> attribute).
192 	 *
193 	 * @since 3.10
194 	 */
195 	public static final String ATTR_MODULEPATH = LaunchingPlugin.getUniqueIdentifier() + ".MODULEPATH"; //$NON-NLS-1$
196 
197 	/**
198 	 * Launch configuration attribute key. The value is a boolean specifying
199 	 * whether a default classpath should be used when launching a local
200 	 * Java application. When <code>false</code>, a classpath must be specified
201 	 * via the <code>ATTR_CLASSPATH</code> attribute. When <code>true</code> or
202 	 * unspecified, a classpath is computed by the classpath provider associated
203 	 * with a launch configuration.
204 	 */
205 	/*
206 	 * This constant is referenced from an upper-layer bundle
207 	 * @see org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget#prepareBreakpointsSearchScope()
208 	 */
209 	public static final String ATTR_DEFAULT_CLASSPATH = LaunchingPlugin.getUniqueIdentifier() + ".DEFAULT_CLASSPATH"; //$NON-NLS-1$
210 
211 	/**
212 	 * Launch configuration attribute key. The value is a boolean specifying whether a default build path module cli options should be used when
213 	 * launching a local Java application. When <code>false</code>, a module cli option must be specified via the <code>ATTR_MODULE_CLI_OPTIONS</code>
214 	 * attribute. When <code>true</code> or unspecified, a classpath is computed by the classpath provider associated with a launch configuration.
215 	 *
216 	 * @since 3.10
217 	 */
218 	public static final String ATTR_DEFAULT_MODULE_CLI_OPTIONS = LaunchingPlugin.getUniqueIdentifier() + ".DEFAULT_MODULE_CLI_OPTIONS"; //$NON-NLS-1$
219 
220 	/**
221 	 * Launch configuration attribute key. The value is a string with module cli options if the default is not used for launching a local Java
222 	 * application.
223 	 *
224 	 * @since 3.10
225 	 */
226 	public static final String ATTR_MODULE_CLI_OPTIONS = LaunchingPlugin.getUniqueIdentifier() + ".MODULE_CLI_OPTIONS"; //$NON-NLS-1$
227 
228 	/**
229 	 * Launch configuration attribute key. The value is an identifier of a
230 	 * classpath provider extension used to compute the classpath
231 	 * for a launch configuration. When unspecified, the default classpath
232 	 * provider is used - <code>StandardClasspathProvider</code>.
233 	 */
234 	public static final String ATTR_CLASSPATH_PROVIDER = LaunchingPlugin.getUniqueIdentifier() + ".CLASSPATH_PROVIDER";	 //$NON-NLS-1$
235 
236 	/**
237 	 * Launch configuration attribute key. The value is an ordered list of
238 	 * strings which are mementos for associated runtime classpath entries
239 	 * interpreted as locations in which to look for source code. When unspecified,
240 	 * a default source lookup path is generated by the source path provider
241 	 * associated with a launch configurations (via the
242 	 * <code>ATTR_SOURCE_PATH_PROVIDER</code> attribute).
243 	 */
244 	public static final String ATTR_SOURCE_PATH = LaunchingPlugin.getUniqueIdentifier() + ".SOURCE_PATH";	 //$NON-NLS-1$
245 
246 	/**
247 	 * Launch configuration attribute key. The value is a boolean specifying
248 	 * whether a default source lookup path should be used. When
249 	 * <code>false</code> a source path must be specified via the
250 	 * <code>ATTR_SOURCE_PATH</code> attribute. When <code>true</code> or
251 	 * unspecified, a source lookup path is computed by the source path
252 	 * provider associated with a launch configuration.
253 	 */
254 	public static final String ATTR_DEFAULT_SOURCE_PATH = LaunchingPlugin.getUniqueIdentifier() + ".DEFAULT_SOURCE_PATH"; //$NON-NLS-1$
255 
256 	/**
257 	 * Launch configuration attribute key. The value is an identifier of a
258 	 * source path provider extension used to compute the source lookup path
259 	 * for a launch configuration. When unspecified, the default source lookup
260 	 * path provider is used - <code>StandardSourcePathProvider</code>.
261 	 */
262 	public static final String ATTR_SOURCE_PATH_PROVIDER = LaunchingPlugin.getUniqueIdentifier() + ".SOURCE_PATH_PROVIDER";	 //$NON-NLS-1$
263 
264 	/**
265 	 * Launch configuration attribute key. The value is a boolean, indicating
266 	 * whether a VM will support/allow the terminate action.
267 	 * This attribute is used for remote debugging.
268 	 */
269 	public static final String ATTR_ALLOW_TERMINATE = LaunchingPlugin.getUniqueIdentifier() + ".ALLOW_TERMINATE";	 //$NON-NLS-1$
270 
271 	/**
272 	 * Attribute key for VM specific attributes found in the
273 	 * <code>ATTR_VM_INSTALL_TYPE_SPECIFIC_ATTRS_MAP</code>. The value is a String,
274 	 * indicating the String to use to invoke the JRE.
275 	 */
276 	public static final String ATTR_JAVA_COMMAND = LaunchingPlugin.getUniqueIdentifier() + ".JAVA_COMMAND";	 //$NON-NLS-1$
277 
278 	/**
279 	 * Launch configuration attribute key. The value is
280 	 * a map. Keys in the map correspond to arguments names
281 	 * returned by <code>IVMConnector#getDefaultArguments()</code>.
282 	 * Values are strings corresponding to the values to use when
283 	 * establishing a connection to a remote VM.
284 	 */
285 	public static final String ATTR_CONNECT_MAP = LaunchingPlugin.getUniqueIdentifier() + ".CONNECT_MAP";	 //$NON-NLS-1$
286 
287 	/**
288 	 * Launch configuration attribute key. The value is an integer
289 	 * indicating the width of the applet viewing area.
290 	 *
291 	 * @since 2.1
292 	 */
293 	public static final String ATTR_APPLET_WIDTH = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_WIDTH";	 //$NON-NLS-1$
294 
295 	/**
296 	 * Launch configuration attribute key. The value is an integer
297 	 * indicating the height of the applet viewing area.
298 	 *
299 	 * @since 2.1
300 	 */
301 	public static final String ATTR_APPLET_HEIGHT = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_HEIGHT";	 //$NON-NLS-1$
302 
303 	/**
304 	 * Launch configuration attribute key. The value is a String indicating the
305 	 * HTML name of the applet.
306 	 *
307 	 * @since 2.1
308 	 */
309 	public static final String ATTR_APPLET_NAME = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_NAME";	 //$NON-NLS-1$
310 
311 	/**
312 	 * Launch configuration attribute key. The value is a Map. Keys in the map
313 	 * represent applet parameter names and the values in the map are the
314 	 * corresponding parameter values
315 	 *
316 	 * @since 2.1
317 	 */
318 	public static final String ATTR_APPLET_PARAMETERS = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_PARAMETERS";	 //$NON-NLS-1$
319 
320 	/**
321 	 * Launch configuration attribute key. The value is a String indicating the
322 	 * fully qualified name of the applet viewer utility class to use.
323 	 *
324 	 * @since 2.1
325 	 */
326 	public static final String ATTR_APPLET_APPLETVIEWER_CLASS = LaunchingPlugin.getUniqueIdentifier() + ".APPLET_APPLETVIEWER_CLASS";	 //$NON-NLS-1$
327 
328 	/**
329 	 * Attribute key for a VM specific argument. Value is an array
330 	 * of strings describing paths in the local file system that
331 	 * should be prepended to the bootpath, or <code>null</code>
332 	 * if none. The value is computed dynamically at launch time
333 	 * and placed in the VM specific arguments map by the Java
334 	 * application launch delegate.
335 	 *
336 	 * @since 3.0
337 	 */
338 	public static final String ATTR_BOOTPATH_PREPEND = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath/p:";	 //$NON-NLS-1$
339 
340 	/**
341 	 * Attribute key for a VM specific argument. Value is an array
342 	 * of strings describing paths in the local file system that
343 	 * should be placed on the bootpath explicitly, or <code>null</code>
344 	 * if none. The value is computed dynamically at launch time
345 	 * and placed in the VM specific arguments map by the Java
346 	 * application launch delegate.
347 	 *
348 	 * @since 3.0
349 	 */
350 	public static final String ATTR_BOOTPATH = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath:";	 //$NON-NLS-1$
351 
352 	/**
353 	 * Attribute key for a VM specific argument. Value is an array
354 	 * of strings describing paths in the local file system that
355 	 * should be appended to the bootpath, or <code>null</code>
356 	 * if none. The value is computed dynamically at launch time
357 	 * and placed in the VM specific arguments map by the Java
358 	 * application launch delegate.
359 	 *
360 	 * @since 3.0
361 	 */
362 	public static final String ATTR_BOOTPATH_APPEND = LaunchingPlugin.getUniqueIdentifier() + ".-Xbootclasspath/a:";	 //$NON-NLS-1$
363 
364 	/**
365 	 * Attribute key for a Mac OSX VM-specific argument. Value is a boolean
366 	 * indicating if the <code>-XStartOnFirstThread</code> argument should be used
367 	 * when launching.
368 	 *
369 	 * @since 3.7
370 	 */
371 	public static final String ATTR_USE_START_ON_FIRST_THREAD = LaunchingPlugin.getUniqueIdentifier() + ".ATTR_USE_START_ON_FIRST_THREAD"; //$NON-NLS-1$
372 
373 	/**
374 	 * Launch configuration attribute key. The value is a boolean specifying whether output folders corresponding to test sources should not be added
375 	 * to the runtime classpath and test dependencies should not be added to the default classpath.
376 	 *
377 	 * @since 3.10
378 	 */
379 	public static final String ATTR_EXCLUDE_TEST_CODE = LaunchingPlugin.getUniqueIdentifier() + ".ATTR_EXCLUDE_TEST_CODE"; //$NON-NLS-1$
380 
381 	/**
382 	 * Launch configuration attribute key. When set, the JPMS option {@code --add-modules} will be added to the command line with the provided string
383 	 * value as the option's argument. This attribute is specifically designed to support the special arguments "ALL-DEFAULT", "ALL-SYSTEM", and
384 	 * "ALL-MODULE-PATH".
385 	 *
386 	 * @since 3.16
387 	 */
388 	public static final String ATTR_SPECIAL_ADD_MODULES = LaunchingPlugin.getUniqueIdentifier() + ".ATTR_SPECIAL_ADD_MODULES"; //$NON-NLS-1$
389 
390 	/**
391 	 * @since 3.11
392 	 */
393 	public static final String ATTR_USE_CLASSPATH_ONLY_JAR = LaunchingPlugin.getUniqueIdentifier() + ".ATTR_USE_CLASSPATH_ONLY_JAR"; //$NON-NLS-1$
394 
395 	/**
396 	 * Status code indicating a launch configuration does not specify a project when a project is required.
397 	 */
398 	public static final int ERR_UNSPECIFIED_PROJECT = 100;
399 
400 	/**
401 	 * Status code indicating a launch configuration does not
402 	 * specify a main type to launch.
403 	 */
404 	public static final int ERR_UNSPECIFIED_MAIN_TYPE = 101;
405 
406 	/**
407 	 * Status code indicating a launch configuration does not
408 	 * specify a VM Install Type.
409 	 */
410 	public static final int ERR_UNSPECIFIED_VM_INSTALL_TYPE = 102;
411 
412 	/**
413 	 * Status code indicating a launch configuration does not
414 	 * specify a VM Install
415 	 */
416 	public static final int ERR_UNSPECIFIED_VM_INSTALL = 103;
417 
418 	/**
419 	 * Status code indicating a launch configuration's VM install
420 	 * type could not be found.
421 	 */
422 	public static final int ERR_VM_INSTALL_TYPE_DOES_NOT_EXIST = 104;
423 
424 	/**
425 	 * Status code indicating a launch configuration's VM install
426 	 * could not be found.
427 	 */
428 	public static final int ERR_VM_INSTALL_DOES_NOT_EXIST = 105;
429 
430 	/**
431 	 * Status code indicating a VM runner could not be located
432 	 * for the VM install specified by a launch configuration.
433 	 */
434 	public static final int ERR_VM_RUNNER_DOES_NOT_EXIST = 106;
435 
436 	/**
437 	 * Status code indicating the project associated with
438 	 * a launch configuration is not a Java project.
439 	 */
440 	public static final int ERR_NOT_A_JAVA_PROJECT = 107;
441 
442 	/**
443 	 * Status code indicating the specified working directory
444 	 * does not exist.
445 	 */
446 	public static final int ERR_WORKING_DIRECTORY_DOES_NOT_EXIST = 108;
447 
448 	/**
449 	 * Status code indicating a launch configuration does not
450 	 * specify a host name value
451 	 */
452 	public static final int ERR_UNSPECIFIED_HOSTNAME = 109;
453 
454 	/**
455 	 * Status code indicating a launch configuration has
456 	 * specified an invalid host name attribute
457 	 */
458 	public static final int ERR_INVALID_HOSTNAME = 110;
459 
460 	/**
461 	 * Status code indicating a launch configuration does not
462 	 * specify a port number value
463 	 */
464 	public static final int ERR_UNSPECIFIED_PORT = 111;
465 
466 	/**
467 	 * Status code indicating a launch configuration has
468 	 * specified an invalid port number attribute
469 	 */
470 	public static final int ERR_INVALID_PORT = 112;
471 
472 	/**
473 	 * Status code indicating an attempt to connect to a remote VM
474 	 * has failed or an attempt to listen for a remote VM connecting
475 	 * has failed.
476 	 */
477 	public static final int ERR_REMOTE_VM_CONNECTION_FAILED = 113;
478 
479 	/**
480 	 * Status code indicating that the shared memory attach or listen
481 	 * connector could not be found.
482 	 */
483 	public static final int ERR_SHARED_MEMORY_CONNECTOR_UNAVAILABLE = 114;
484 
485 	/**
486 	 * Status code indicating that the Eclipse runtime does not support
487 	 * launching a program with a working directory. This feature is only
488 	 * available if Eclipse is run on a 1.3 runtime or higher.
489 	 * <p>
490 	 * A status handler may be registered for this error condition,
491 	 * and should return a Boolean indicating whether the program
492 	 * should be relaunched with the default working directory.
493 	 * </p>
494 	 */
495 	public static final int ERR_WORKING_DIRECTORY_NOT_SUPPORTED = 115;
496 
497 	/**
498 	 * Status code indicating that an error occurred launching a VM.
499 	 * The status error message is the text that
500 	 * the VM wrote to standard error before exiting.
501 	 */
502 	public static final int ERR_VM_LAUNCH_ERROR = 116;
503 
504 	/**
505 	 * Status code indicating that a timeout has occurred waiting for
506 	 * the VM to connect with the debugger.
507 	 * <p>
508 	 * A status handler may be registered for this error condition,
509 	 * and should return a Boolean indicating whether the program
510 	 * should continue waiting for a connection for the associated
511 	 * timeout period.
512 	 * </p>
513 	 */
514 	public static final int ERR_VM_CONNECT_TIMEOUT = 117;
515 
516 	/**
517 	 * Status code indicating that a free socket was not available to
518 	 * communicate with the VM.
519 	 */
520 	public static final int ERR_NO_SOCKET_AVAILABLE = 118;
521 
522 	/**
523 	 * Status code indicating that the JDI connector required for a
524 	 * debug launch was not available.
525 	 */
526 	public static final int ERR_CONNECTOR_NOT_AVAILABLE = 119;
527 
528 	/**
529 	 * Status code indicating that the debugger failed to connect
530 	 * to the VM.
531 	 */
532 	public static final int ERR_CONNECTION_FAILED = 120;
533 
534 	/**
535 	 * Status code indicating that the applet launcher was asked to
536 	 * launch a resource that did not extend <code>java.applet.Applet</code>.
537 	 *
538 	 * @since 2.1
539 	 */
540 	public static final int ERR_NOT_AN_APPLET = 121;
541 
542 	/**
543 	 * Status code indicating that no launch configuration was specified.
544 	 *
545 	 * @since 2.1
546 	 */
547 	public static final int ERR_UNSPECIFIED_LAUNCH_CONFIG = 122;
548 
549 	/**
550 	 * Status code indicating that the .html file used to initiate an applet
551 	 * launch could not be built.
552 	 *
553 	 * @since 2.1
554 	 */
555 	public static final int ERR_COULD_NOT_BUILD_HTML = 123;
556 
557 	/**
558 	 * Status code indicating that the project referenced by a launch configuration
559 	 * is closed.
560 	 *
561 	 * @since 3.0
562 	 */
563 	public static final int ERR_PROJECT_CLOSED = 124;
564 
565 	/**
566 	 * @since 3.11
567 	 */
568 	public static final int ERR_CLASSPATH_TOO_LONG = 125;
569 
570 	/**
571 	 * Status code indicating an unexpected internal error.
572 	 */
573 	public static final int ERR_INTERNAL_ERROR = 150;
574 
575 	/**
576 	 * Default value for the 'ATTR_APPLET_APPLETVIEWER' attribute.
577 	 *
578 	 * @since 2.1
579 	 */
580 	public static final String DEFAULT_APPLETVIEWER_CLASS = "sun.applet.AppletViewer";	 //$NON-NLS-1$
581 
582 
583 	/**
584 	 * Detail code for a custom debug event that is fired when a remote debug configuration with
585 	 * a standard socket listen connector is ready to accept connections from a remote VM.
586 	 *
587 	 * @since 3.4
588 	 * @see org.eclipse.jdt.internal.launching.SocketListenConnector
589 	 * @see org.eclipse.jdt.internal.launching.SocketListenConnectorProcess
590 	 */
591 	public static final int DETAIL_CONFIG_READY_TO_ACCEPT_REMOTE_VM_CONNECTION = 1001;
592 }
593