###############################################################################
# Copyright (c) 2006 University College London.
# 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
#
###############################################################################
pluginName = Eclipse BPEL Designer Runtimes
providerName = University College London Software Systems Engineering 

MODULE_TYPE_NAME=BPEL 2.0 Process
MODULE_TYPE_DESCRIPTION=Module representing a BPEL process

BPEL_CORE_FACET_LABEL=BPEL 2.0 Facet
BPEL_CORE_FACET_DESCRIPTION=Enables modelling and deployment of BPEL processes.
BPEL_FACET_CATEGORY_LABEL=BPEL 2.0
BPEL_FACET_TEMPLATE_LABEL=BPEL 2.0 Project
NEW_BPEL_CATEGORY=BPEL 2.0
NEW_BPEL_PROJECT=BPEL Project
NEW_BPEL_PROJECT_DESCRIPTION=Create a new BPEL project. 
