###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

AbstractJavaLaunchConfigurationDelegate.Java_project_not_specified_9=Java project not specified
AbstractJavaLaunchConfigurationDelegate.JRE_home_directory_for_{0}_does_not_exist__{1}_6=JRE home directory for {0} does not exist: {1}
AbstractJavaLaunchConfigurationDelegate.JRE_home_directory_not_specified_for_{0}_5=JRE home directory not specified for {0}
AbstractJavaLaunchConfigurationDelegate.Main_type_not_specified_11=Main type not specified
AbstractJavaLaunchConfigurationDelegate.Project_does_not_exist_or_is_not_a_Java_project_10=Project does not exist or is not a Java project
AbstractJavaLaunchConfigurationDelegate.The_specified_JRE_installation_does_not_exist_4=The specified JRE installation does not exist
AbstractJavaLaunchConfigurationDelegate.Working_directory_does_not_exist__{0}_12=Working directory does not exist: {0}

ClasspathContainerSourceContainerTypeDelegate.5=Missing required <path> attribute in Java classpath container source container memento.
ClasspathContainerSourceContainerTypeDelegate.6=Missing required <classpathContainer> attribute in Java classpath container source container memento.
ClasspathContainerSourceContainerTypeDelegate.7=Invalid format for Java classpath container source container memento.

ClasspathVariableSourceContainerTypeDelegate.5=Missing required <path> attribute in Java classpath variable source container memento.
ClasspathVariableSourceContainerTypeDelegate.6=Missing required <classpathVariable> attribute in Java classpath variable source container memento.
ClasspathVariableSourceContainerTypeDelegate.7=Invalid format for Java classpath variable source container memento.

DefaultProjectClasspathEntry.3=Invalid memento - expecting name attribute
DefaultProjectClasspathEntry.4={0} (default classpath)

JavaLaunchConfigurationUtils.Main_type_does_not_exist_4=Main type does not exist
JavaLaunchConfigurationUtils.Main_type_not_specified_3=Main type not specified

JavaLocalApplicationLaunchConfigurationDelegate.Verifying_launch_attributes..._1=Verifying launch attributes...
JavaLocalApplicationLaunchConfigurationDelegate.Creating_source_locator..._2=Creating source locator...
JavaLocalApplicationLaunchConfigurationDelegate.0=JRE {0} does not support debug mode.
JavaLocalApplicationLaunchConfigurationDelegate.1=JRE {0} does not support run mode.

JavaProjectSourceContainerTypeDelegate.5=Missing required <name> attribute in Java project source container memento.
JavaProjectSourceContainerTypeDelegate.6=Missing required <javaProject> attribute in Java project source container memento.
JavaProjectSourceContainerTypeDelegate.7=Invalid format for Java project source container memento.

JavaRemoteApplicationLaunchConfigurationDelegate.Connector_not_specified_2=Connector not specified
JavaRemoteApplicationLaunchConfigurationDelegate.Attaching_to_{0}..._1=Attaching to {0}...
JavaRemoteApplicationLaunchConfigurationDelegate.Verifying_launch_attributes..._1=Verifying launch attributes...
JavaRemoteApplicationLaunchConfigurationDelegate.Creating_source_locator..._2=Creating source locator...

JavaAppletLaunchConfigurationDelegate.Starting_Applet_{0}..._1=Starting Applet {0}...
JavaAppletLaunchConfigurationDelegate.Verifying_launch_attributes..._1=Verifying launch attributes...
JavaAppletLaunchConfigurationDelegate.Creating_source_locator..._2=Creating source locator...

JavaRuntime.badFormat=Invalid format
JavaRuntime.exceptionOccurred=Exceptions occurred
JavaRuntime.exceptionsOccurred=Exceptions occurred while saving VMs
JavaRuntime.Library_location_element_incorrectly_specified_3=Library location element is specified incorrectly
JavaRuntime.VM_element_specified_with_no_id_attribute_2=id attribute missing from VM element specification
JavaRuntime.VM_type_element_with_unknown_id_1=VM type element with unknown id
JavaRuntime.Specified_VM_install_type_does_not_exist__{0}_2=Specified VM install type does not exist: {0}
JavaRuntime.VM_not_fully_specified_in_launch_configuration_{0}_-_missing_VM_name._Reverting_to_default_VM._1=VM not fully specified in launch configuration {0} - missing VM name. Reverting to default VM.
JavaRuntime.Specified_VM_install_not_found__type_{0},_name_{1}_2=Specified VM install not found: type {0}, name {1}
JavaRuntime.Launch_configuration_{0}_references_non-existing_project_{1}._1=Launch configuration {0} references non-existing project {1}.
JavaRuntime.Could_not_resolve_classpath_container__{0}_1=Could not resolve classpath container: {0}
JavaRuntime.Classpath_references_non-existant_project__{0}_1=Project: {0} referenced by classpath, does not exist.
JavaRuntime.Classpath_references_closed_project__{0}_2=Classpath references closed project: {0}
JavaRuntime.Classpath_references_non-existant_project__{0}_3=The project: {0} which is referenced by the classpath, does not exist.
JavaRuntime.Classpath_references_non-existant_archive__{0}_4=The archive: {0} which is referenced by the classpath, does not exist.
JavaRuntime.26=Referenced classpath provider does not exist: {0}
JavaRuntime.27=Referenced source lookup provider does not exist: {0}
JavaRuntime.28=Launch configuration {0} references closed project {1}
JavaRuntime.31=Unable to restore classpath entry.
JavaRuntime.32=Unable to restore classpath entry.

LaunchingPlugin.Exception_occurred_reading_vmConnectors_extensions_1=Exception occurred reading vmConnectors extensions
LaunchingPlugin.32=Unable to create runtime classpath entry for unknown type {0}
LaunchingPlugin.33=Unable to create XML parser.
LaunchingPlugin.34=Unable to create XML parser.

libraryLocation.assert.libraryNotNull=library cannot be null

SocketAttachConnector.Failed_to_connect_to_remote_VM_1=Failed to connect to remote VM
SocketAttachConnector.Socket_attaching_connector_not_available_3=Socket attaching connector not available
SocketAttachConnector.Standard_(Socket_Attach)_4=Standard (Socket Attach)
SocketAttachConnector.Failed_to_connect_to_remote_VM_because_of_unknown_host___{0}__1=Failed to connect to remote VM because of unknown host \"{0}"
SocketAttachConnector.Failed_to_connect_to_remote_VM_as_connection_was_refused_2=Failed to connect to remote VM. Connection refused.
SocketAttachConnector.Connecting..._1=Connecting...
SocketAttachConnector.Configuring_connection..._1=Configuring connection...
SocketAttachConnector.Establishing_connection..._2=Establishing connection...

StandardVMDebugger.Could_not_find_a_free_socket_for_the_debugger_1=Cannot find a free socket for the debugger
StandardVMDebugger.Couldn__t_connect_to_VM_4=Cannot connect to VM
StandardVMDebugger.Couldn__t_connect_to_VM_5=Cannot connect to VM
StandardVMDebugger.Couldn__t_find_an_appropriate_debug_connector_2=Cannot find an appropriate debug connector
StandardVMDebugger.Launching_VM..._1=Launching VM...
StandardVMDebugger.Finding_free_socket..._2=Finding free socket...
StandardVMDebugger.Constructing_command_line..._3=Constructing command line...
StandardVMDebugger.Starting_virtual_machine..._4=Starting virtual machine...
StandardVMDebugger.Establishing_debug_connection..._5=Establishing debug connection...

StandardVMRunner.{0}_({1})_2={0} ({1})
StandardVMRunner.{0}_at_localhost_{1}_1={0} at localhost:{1}
StandardVMRunner.Specified_working_directory_does_not_exist_or_is_not_a_directory__{0}_3=Specified working directory does not exist or is not a directory: {0}
StandardVMRunner.Launching_VM..._1=Launching VM...
StandardVMRunner.Constructing_command_line..._2=Constructing command line...
StandardVMRunner.Starting_virtual_machine..._3=Starting virtual machine...
StandardVMRunner.Unable_to_locate_executable_for_{0}_1=Unable to locate executable for {0}
StandardVMRunner.Specified_executable_{0}_does_not_exist_for_{1}_4=Specified executable {0} does not exist for {1}

StandardVMType.Not_a_JDK_Root;_Java_executable_was_not_found_1=Target is not a JDK Root. Java executable was not found
StandardVMType.ok_2=ok
StandardVMType.Standard_VM_3=Standard VM
StandardVMType.Not_a_JDK_root._System_library_was_not_found._1=Target is not a JDK root. System library was not found.
StandardVMType.Standard_VM_not_supported_on_MacOS._1=Standard VM not supported on MacOS.

vmInstall.assert.idNotNull=id cannot be null
vmInstall.assert.typeNotNull=VM type cannot be null

vmInstallType.duplicateVM=Duplicate VM: {0}

vmRunnerConfig.assert.classNotNull=classToLaunch cannot be null
vmRunnerConfig.assert.classPathNotNull=classPath cannot be null
vmRunnerConfig.assert.programArgsNotNull=args cannot be null
vmRunnerConfig.assert.vmArgsNotNull=args cannot be null

RuntimeClasspathEntry.An_exception_occurred_generating_runtime_classpath_memento_8=An exception occurred generating runtime classpath memento
RuntimeClasspathEntry.Unable_to_recover_runtime_class_path_entry_type_2=Unable to recover runtime class path entry type
RuntimeClasspathEntry.Unable_to_recover_runtime_class_path_entry_location_3=Unable to recover runtime class path entry location
RuntimeClasspathEntry.Unable_to_recover_runtime_class_path_entry_-_missing_project_name_4=Unable to recover runtime class path entry - missing project name
RuntimeClasspathEntry.Unable_to_recover_runtime_class_path_entry_-_missing_archive_path_5=Unable to recover runtime class path entry - missing archive path
RuntimeClasspathEntry.Unable_to_recover_runtime_class_path_entry_-_missing_variable_name_6=Unable to recover runtime class path entry - missing variable name
RuntimeClasspathEntry.Illegal_classpath_entry_{0}_1=Illegal classpath entry {0}

JREContainer.JRE_System_Library_1=JRE System Library

SocketAttachConnector.Port_unspecified_for_remote_connection._2=Port unspecified for remote connection.
SocketAttachConnector.Hostname_unspecified_for_remote_connection._4=Hostname unspecified for remote connection.

JREContainerInitializer.JRE_referenced_by_classpath_container_{0}_does_not_exist._1=JRE referenced by classpath container {0} does not exist.
JREContainerInitializer.Classpath_entry_{0}_does_not_refer_to_an_existing_library._2=Classpath entry {0} does not refer to an existing library.
JREContainerInitializer.Classpath_entry_{0}_does_not_refer_to_a_library._3=Classpath entry {0} does not refer to a library.
JREContainerInitializer.Default_System_Library_1=Default System Library

ArchiveSourceLocation.Unable_to_create_memento_for_archive_source_location_{0}_1=Unable to create memento for archive source location {0}
ArchiveSourceLocation.Unable_to_initialize_source_location_-_missing_archive_path._3=Unable to initialize source location - missing archive path.
ArchiveSourceLocation.Exception_occurred_initializing_source_location._5=Exception occurred initializing source location.
ArchiveSourceLocation.Unable_to_locate_source_element_in_archive_{0}_1=Unable to locate source element in archive {0}
ArchiveSourceLocation.Exception_occurred_while_detecting_root_source_directory_in_archive_{0}_1=Exception occurred while detecting root source directory in archive {0}
ArchiveSourceLocation.Exception_occurred_while_detecting_root_source_directory_in_archive_{0}_2=Exception occurred while detecting root source directory in archive {0}

DirectorySourceLocation.Unable_to_create_memento_for_directory_source_location_{0}_1=Unable to create memento for directory source location {0}
DirectorySourceLocation.Unable_to_initialize_source_location_-_missing_directory_path_3=Unable to initialize source location - missing directory path
DirectorySourceLocation.Unable_to_initialize_source_location_-_directory_does_not_exist__{0}_4=Unable to initialize source location - directory does not exist: {0}
DirectorySourceLocation.Exception_occurred_initializing_source_location._5=Exception occurred initializing source location.

JavaProjectSourceLocation.Unable_to_create_memento_for_Java_project_source_location_{0}_1=Unable to create memento for Java project source location {0}
JavaProjectSourceLocation.Unable_to_initialize_source_location_-_missing_project_name_3=Unable to initialize source location - missing project name
JavaProjectSourceLocation.Exception_occurred_initializing_source_location._4=Exception occurred initializing source location.

JavaSourceLocator.Illegal_to_have_a_container_resolved_to_a_container_1=A container cannot resolve to another container
JavaSourceLocator.Unable_to_create_memento_for_Java_source_locator._4=Unable to create memento for Java source locator.
JavaSourceLocator.Unable_to_restore_Java_source_locator_-_invalid_format._6=Unable to restore Java source locator - invalid format.
JavaSourceLocator.Unable_to_restore_Java_source_locator_-_invalid_format._10=Unable to restore Java source locator - invalid format.
JavaSourceLocator.Unable_to_restore_source_location_-_class_not_found__{0}_11=Unable to restore source location - class not found: {0}
JavaSourceLocator.Unable_to_restore_source_location._12=Unable to restore source location.
JavaSourceLocator.Unable_to_restore_Java_source_locator_-_invalid_format._14=Unable to restore Java source locator - invalid format.
JavaSourceLocator.Exception_occurred_initializing_source_locator._15=Exception occurred initializing source locator.

Standard11xVMType.Standard_1.1.x_VM_1=Standard 1.1.x VM

PackageFragmentRootSourceLocation.Unable_to_create_memento_for_package_fragment_root_source_location_{0}_5=Unable to create memento for package fragment root source location {0}
PackageFragmentRootSourceLocation.Unable_to_initialize_source_location_-_missing_handle_identifier_for_package_fragment_root._6=Unable to initialize source location - missing handle identifier for package fragment root.
PackageFragmentRootSourceLocation.Unable_to_initialize_source_location_-_package_fragment_root_does_not_exist._7=Unable to initialize source location - package fragment root does not exist.
PackageFragmentRootSourceLocation.Exception_occurred_initializing_source_location._8=Exception occurred initializing source location.
JavaAppletLaunchConfigurationDelegate.No_launch_configuration_specified_1=No launch configuration specified
JavaAppletLaunchConfigurationDelegate.Could_not_build_HTML_file_for_applet_launch_1=Could not build HTML file for applet launch
AbstractVMRunner.0=An IProcess could not be created for the launch
AbstractJavaLaunchConfigurationDelegate.20=Building prerequisite project list

PackageFragmentRootSourceContainerTypeDelegate.6=Missing required <handle> attribute
PackageFragmentRootSourceContainerTypeDelegate.7=Unable to restore package fragment root source container
PackageFragmentRootSourceContainerTypeDelegate.8=Missing required <packageFragmentRoot> attribute
