###############################################################################
# Copyright (c) 2007, 2009 WSO2 Inc. and others.
# All rights reserved. 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:
# WSO2 Inc. - initial API and implementation
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20070118   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
# 20070501   184617 sandakith@wso2.com - Lahiru Sandakith, Provide plugin details
# 20080530   234841 kathy@ca.ibm.com - Kathy Chan, Change plugin provider to Eclipse.org
###############################################################################
#

#
# Messages in plugin.xml.
PLUGIN_NAME=Axis2 Tools
PLUGIN_PROVIDER=Eclipse Web Tools Platform

# Web Services Preferance Pages
# Categories
PREFERENCE_CATEGORY_AXIS2_RUNTIME=Axis2 Preferences 
