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

pluginName = Web Standard Tools (WST)
providerName = Eclipse.org

# Activity names and descriptions
activity.database        = Database Development
activity.database.desc   = Create, update, delete, and view database information.
activity.xml             = XML Development
activity.xml.desc        = Develop XML applications.
activity.web             = Web Development
activity.web.desc        = Develop Web applications. 
activity.webservice      = Web Service Development
activity.webservice.desc = Develop Web service applications.
