###############################################################################
# Copyright (c) 2000, 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 in plugin.xml.
#
PLUGIN_NAME=Web Services Graphical User Interface
PLUGIN_PROVIDER=Eclipse.org

PLUGIN_NEW_CATEGORY_NAME_WS=Web Services

#
#	Web Services Preferance Pages
#
# Categories
PREFERENCE_CATEGORY_RESOURCE_MANAGEMENT=Resource Management

#
#  WS-I Preference pages
#
# WS-I Compliance Page
#
PREFERENCE_CATEGORY_WSI=WS-I Compliance

#
# Popup action Category
#
LABEL_POPUP_CATEGORY_WEB_SERVICES=Web Services






