###############################################################################
# Copyright (c) 2000, 2010 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.
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_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
AbstractVMInstall_1=Evaluating system properties
AbstractVMInstall_3=Reading system properties
AbstractVMInstall_4=Exception retrieving system properties
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}
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
