###############################################################################
# Copyright (c) 2007 WSO2 Inc. 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:
# WSO2 Inc. - initial API and implementation
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20070405   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
###############################################################################
#

#
# Messages in plugin.xml.
#
PLUGIN_NAME=Webservice Axis2 Core Plug-in
PLUGIN_PROVIDER=WSO2

AXIS2_CATOGERY_LABEL=Axis2 Web Services
AXIS2_CATOGERY_DISCRIPTION=Enables Web Services generation through Axis2 Web services engine.

AXIS2_FACET_CORE_LABEL=Axis2 Web Services Core
AXIS2_FACET_CORE_DISCRIPTION=Prepare the Project for Web Services generation through Axis2 Web services engine.


AXIS2_FACET_EXT_LABEL=Axis2 Web Services Extensions
AXIS2_FACET_EXT_DISCRIPTION=Prepare the Project for additional Web services support with the Axis2 Web services runtime.
