######################################################################
# Copyright (c) 2000, 2002 IBM Corp. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v0.5
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v05.html
#
# Contributors:
#    IBM Corporation - Initial 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}

AbstractVMRunner.Eclipse_runtime_does_not_support_working_directory_2=Eclipse runtime does not support working directory
AbstractVMRunner.Exception_starting_process_1=Exception starting process

JavaLaunchConfigurationUtils.Invalid_project_specified_2=Invalid project specified
JavaLaunchConfigurationUtils.Main_type_does_not_exist_4=Main type does not exist
JavaLaunchConfigurationUtils.Main_type_not_specified_3=Main type not specified
JavaLaunchConfigurationUtils.No_project_specified_1=No project specified

JavaLocalApplicationLaunchConfigurationDelegate.JRE_{0}_does_not_support_debug_mode._1=JRE {0} does not support debug mode.
JavaLocalApplicationLaunchConfigurationDelegate.JRE_{0}_does_not_support_run_mode._2=JRE {0} does not support run mode.

JavaRemoteApplicationLaunchConfigurationDelegate.Connector_not_specified_2=Connector not specified

JavaRuntime.badFormat=bad format
JavaRuntime.detectedSuffix=Detected VM
JavaRuntime.exceptionOccurred=Exceptions occurred
JavaRuntime.ioExceptionOccurred=An IOException occurred while saving vm's
JavaRuntime.Library_location_element_incorrectly_specified_3=Library location element incorrectly specified
JavaRuntime.VM_element_specified_with_no_id_attribute_2=VM element specified with no id attribute
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}.


LaunchingPlugin.Exception_occurred_reading_vmConnectors_extensions_1=Exception occurred reading vmConnectors extensions

libraryLocation.assert.libraryNotNull=library may not 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 as connection was refused

StandardVMDebugger.Could_not_find_a_free_socket_for_the_debugger_1=Could not find a free socket for the debugger
StandardVMDebugger.Couldn__t_connect_to_VM_4=Could not connect to VM
StandardVMDebugger.Couldn__t_connect_to_VM_5=Could not connect to VM
StandardVMDebugger.Couldn__t_find_an_appropriate_debug_connector_2=Could not find an appropriate debug connector

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}

StandardVMType.Not_a_JDK_Root;_Java_executable_was_not_found_1=Not a JDK Root; Java executable was not found
StandardVMType.ok_2=ok
StandardVMType.Standard_VM_3=Standard VM

vmInstall.assert.idNotNull=id must not be null
vmInstall.assert.typeNotNull=vm type must not be null

vmInstallType.duplicateVM=Duplicate VM: {0}

vmRunnerConfig.assert.bootClassPathNotNull=bootClassPath may not be null
vmRunnerConfig.assert.classNotNull=classToLaunch may not be null
vmRunnerConfig.assert.classPathNotNull=classPath may not be null
vmRunnerConfig.assert.programArgsNotNull=args may not be null
vmRunnerConfig.assert.vmArgsNotNull=args may not 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.Unable_to_recover_runtime_class_path_entry_-_parsing_error_8=Unable to recover runtime class path entry - parsing error
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.Unable_to_locate_JRE_named_{0}_to_build_project_{1}._1=Unable to locate JRE named {0} to build project {1}.
JREContainerInitializer.Updating_JRE_system_library_containers..._1=Updating JRE system library containers...

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}

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=Illegal to have a container resolved to a 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.

JavaLocalApplicationLaunchConfigurationDelegate.Launching..._1=Launching...
JavaRemoteApplicationLaunchConfigurationDelegate.Connecting..._1=Connecting...

Standard11xVMType.Standard_1.1.x_VM_1=Standard 1.1.x VM
