###############################################################################
# Copyright (c) 2006, 2007 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
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20060424   138060 kathy@ca.ibm.com - Kathy Chan
# 20070327   172339 kathy@ca.ibm.com - Kathy Chan
###############################################################################

#
# Messages in plugin.xml.
#
PLUGIN_NAME=Java Web Services Tools Tests
PLUGIN_PROVIDER=Eclipse.org

POPUP_TEST_WSDL=Test with Web Services Explorer
ACTION_GENERATE_JAVA_SKELETON=Generate Java bean skeleton
ACTION_GENERATE_JAVA_PROXY=Generate Client

