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

#
# Messages in plugin.xml.
#
PLUGIN_NAME=Web service Axis Consumption Core
PLUGIN_PROVIDER=Eclipse Web Tools Platform

xpWSDDContentType = Axis Web Service Deployment Descriptor

X_WEB_SERVICE_LOCATOR_AXIS=Apache Axis Web Service Locator
X_WEB_SERVICE_LOCATOR_CATEGORY_AXIS=Apache Axis Components


#runtime labels

LABEL_RUNTIME_AXIS=Apache Axis

#scenario labels

LABEL_BOTTOM_UP_JAVA_BEAN=Bottom up Java bean Web Service
LABEL_TOP_DOWN_JAVA_BEAN=Top down Java bean Web Service
LABEL_CLIENT=Client
