###############################################################################
# Copyright (c) 2000, 2017 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-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)
DefaultProjectClasspathEntry_2={0} (default classpath - exported entries only)

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.

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...

JavaRuntime_badFormat=Invalid format
JavaRuntime_Specified_VM_install_type_does_not_exist___0__2=Specified VM install type does not exist: {0}
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__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_24=Failed to create installed JRE
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_25=JRE
JavaRuntime_32=Unable to restore classpath entry.
LaunchingPlugin_32=Unable to create runtime classpath entry for unknown type {0}
LaunchingPlugin_34=Unable to create XML parser.
LaunchingPlugin_35=Build path specifies execution environment {0}. There are no JREs installed in the workspace that are strictly compatible with this environment. 
LaunchingPlugin_36=Build path specifies execution environment {0}. A compatible JRE is available but has been overridden.
LaunchingPlugin_37=Build path
LaunchingPlugin_38=Build path specifies execution environment {0}. There are no compatible JREs installed in the workspace.
LaunchingPlugin_0=Updating build paths
LaunchingPlugin_1=Update Installed JREs

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_0=Failed to connect to remote VM. Connection timed out.
SocketListenConnector_0=Socket listening connector not available
SocketListenConnector_1=Standard (Socket Listen)
SocketListenConnector_2=Initializing listening connector...
SocketListenConnector_3=Starting listening connector on port {0}...
SocketListenConnector_4=Listening for remote VM connection failed
SocketListenConnectorProcess_0=Cannot terminate, process has already been terminated
SocketListenConnectorProcess_1=Waiting for vm to connect at port {0}...
SocketListenConnectorProcess_4=Listening for incoming remote VM connection failed.
SocketListenConnectorProcess_5=Problem stopping the listening connector
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.

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_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 [{0}]

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_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_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_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_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_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_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
AbstractVMInstall_0=Unable to retrieve system properties: {0}
AbstractVMInstall_1=Evaluating system properties
AbstractVMInstall_3=Reading system properties
AbstractVMInstall_4=Exception retrieving system properties: {0}
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
ProjectClasspathVariableResolver_1=Specified Java project ''{0}'' does not exist.
ProjectClasspathVariableResolver_2=Unable to resolve project for: ${project_classpath}
ProjectClasspathVariableResolver_3=Variable references empty selection: ${project_classpath}
EEVMType_1=Description is missing required property ''{0}''
EEVMType_2=Execution Environment Description
EEVMType_3=Install location (-Djava.home) does not exist: {0}
EEVMType_4=Unable to validate install location
EEVMType_5=Problem with EE file -Dee.source.map property. Wildcards in source location do not match wildcards in library location. Entry was: {0}
EEVMType_6=Problem with EE file -Dee.source.map property. Library location and source location must be separated by a ''='' character. Entry was: {0}
ExecutionEnvironmentDescription_0=Description file not found {0}
ExecutionEnvironmentDescription_1=Error reading description file {0}
MacInstalledJREs_0=Parsing installed VM information
MacInstalledJREs_1=Found installed JRE: {0} ({1})
VMDefinitionsContainer_0=Installed JRE ''{0}'' removed due to missing VM type extension.
VMDefinitionsContainer_2=Installed JRE of type ''{0}'' removed due to missing VM type extension.
VMDefinitionsContainer_3=Installed JRE of type ''{0}'' removed due to missing install path and name.
VMDefinitionsContainer_4=Installed JRE ''{0}'' removed due to missing name.
VMDefinitionsContainer_5=Installed JRE ''{0}'' removed due to missing install path.
VMDefinitionsContainer_6=Unable to restore Javadoc location for installed JRE ''{0}''.
VMDefinitionsContainer_7=Installed JRE ''{0}'' removed due to missing id.
VMDefinitionsContainer_9=Installed JRE of type ''{0}'' removed due to missing install path, name, and id.
VMDefinitionsContainer_10=Installed JREs
RunnerBootpathError=Xbootclasspath option have been removed as not supported beyond Java 8.
RunnerBootpathPError=Xbootclasspath/p option have been removed as not supported beyond Java 8.