###############################################################################
# Copyright (c) 2004 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
###############################################################################

#
# Messages for AxisDeployCommand
#
MSG_ERROR_PROJECT_URL_PARAM_NOT_SET=IWAB0054E Web project URL for deployment of Web service is not set in AxisDeployCommand
MSG_ERROR_DEPLOY_FILE_PARAM_NOT_SET=IWAB0488E Location of Axis deployment file is not set in AxisDeployCommand
MSG_ERROR_AXIS_DEPLOY=IWAB0489E Error when deploying Web service to Axis runtime
MSG_AXIS_DEPLOY=Deploying Web service to Axis run-time environment
MSG_AXIS_DEPLOY_OK=Web service successfuly deployed to Axis run-time environment

TASK_LABEL_WSDL_JAVA_COMMAND=WSDL2JavaCommand
TASK_DESC_WSDL_JAVA_COMMAND=Calls to AXIS WSDL2JavaCommand.
#
# Messages for Java2WSDLCommand
#
TASK_LABEL_JAVA_WSDL_COMMAND=Java2WSDLCommand
TASK_DESC_JAVA_WSDL_COMMAND=Calls to AXIS Java2WSDLCommand.
MSG_GENERATE_WSDL=Generating WSDL file: {0}
MSG_ERROR_JAVA_WSDL_GENERATE=IWAB0398E Error in generating WSDL from Java

#
# Messages for WSDL2JavaCommand
#
TASK_LABEL_WSDL_JAVA_COMMAND=WSDL2JavaCommand
TASK_DESC_WSDL_JAVA_COMMAND=Calls to AXIS WSDL2JavaCommand.
MSG_PARSING_WSDL=Parsing WSDL file: {0}
MSG_ERROR_WSDL_JAVA_GENERATE=IWAB0399E Error in generating Java from WSDL

#
# Messages common for all
#
MSG_ERROR_JAVA_WSDL_PARAM_NOT_SET=IWAB0397E JavaWSDLParam not set

#
# Messages common for Java2WSDLCommand and  WSDL2JavaCommand
#
