###############################################################################
# Copyright (c) 2000, 2011 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

InternalAntRunner_Build_file=Buildfile: {0}
InternalAntRunner_Arguments=Arguments: {0}
InternalAntRunner_Unable_to_instantiate_logger=Unable to instantiate logger: {0}
InternalAntRunner_Could_not_load_the_version_information=Could not load the version information: {0}
InternalAntRunner_Using_file_as_build_log=Using {0} file as build log.
InternalAntRunner_Could_not_write_to_log_file=Cannot write on the specified log file: {0}. Make sure the path exists and you have write permissions.
InternalAntRunner_BUILD_SUCCESSFUL_1=BUILD SUCCESSFUL
InternalAntRunner_Unknown_argument=Unknown argument: {0}
InternalAntRunner_Buildfile_does_not_exist=Buildfile: {0} does not exist
InternalAntRunner_not_an_instance_of_apache_ant_BuildListener={0} which was specified to be a build listener is not an instance of org.apache.tools.ant.BuildListener.
InternalAntRunner_not_an_instance_of_apache_ant_BuildLogger={0} which was specified to perform logging is not an instance of org.apache.tools.ant.BuildLogger.
InternalAntRunner_specify_a_classname_using_the_listener_argument=You must specify a classname when using the -listener argument
InternalAntRunner_specify_a_classname_using_the_logger_argument=You must specify a classname when using the -logger argument
InternalAntRunner_specify_a_log_file_using_the_log_argument=You must specify a log file when using the -log argument
InternalAntRunner_specify_a_buildfile_using_the_buildfile_argument=You must specify a buildfile when using the -buildfile argument
InternalAntRunner_Class_not_found_for_task=Class {0} not found for task {1}
InternalAntRunner_Class_not_found_for_type=Class {0} not found for type {1}
InternalAntRunner_Only_one_logger_class_may_be_specified=Only one logger class may be specified
InternalAntRunner_specify_a_classname_the_inputhandler_argument=You must specify a classname when using the -inputhandler argument
InternalAntRunner_Only_one_input_handler_class_may_be_specified=Only one input handler class may be specified.
InternalAntRunner_specify_a_property_filename_when_using_propertyfile_argument=You must specify a property filename when using the -propertyfile argument
InternalAntRunner_could_not_load_property_file=Could not load property file: {0}
InternalAntRunner_ant_1_7_needed_for_help_info=Run with at least Ant 1.7.0 to print project help information
InternalAntRunner_ant_1_7_needed_for_help_message=Run with at least Ant 1.7.0 to print the help message
InternalAntRunner_handler_does_not_implement_InputHandler5=The specified input handler class {0} does not implement the org.apache.tools.ant.input.InputHandler interface
InternalAntRunner_Unable_to_instantiate_input_handler_class=Unable to instantiate specified input handler class {0} : {1}
InternalAntRunner_Specifying_an_InputHandler_is_an_Ant_1_5_feature=Specifying an InputHandler is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_The_diagnositics_options_is_an_Ant_1_5_feature=The diagnostics options is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature=Specifying property files is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_Default_target_does_not_exist=Default target {0}{1}{2} does not exist in this project
InternalAntRunner_anthome_must_be_set_to_use_ant_diagnostics=ANT_HOME must be set to use Ant diagnostics
InternalAntRunner_Buildfile_is_not_a_file=Buildfile: {0} is not a file
InternalAntRunner_find_not_supported=-find not supported.\nCan be emulated using Run As > Ant Build located\nin the Run > External Tools menu
InternalAntRunner_Error_setting_Ant_task=Error setting Ant task {0}
InternalAntRunner_Missing_Class=Could not load a class required for parsing targets
InternalAntRunner_157=-lib not supported\nConfigure the Ant runtime classpath using either the\nglobal Ant runtime classpath or the Ant runtime classpath\n for this particular build
InternalAntRunner_unknown_target=Unknown target: {0}
InternalAntRunner_no_known_target=No known target specified.
ProgressBuildListener_Build_cancelled=Build cancelled.
InternalProject_could_not_create_type=Could not create type {0} due to {1}
