# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

featureName=Sphinx Dynamic MWE Workflow Support (Incubation)
providerName=Eclipse Modeling Project

description=Extended runtime-level services allowing users to implement and dynamically execute MWE workflows performing batch manipulations of models or model fragments within the same Eclipse instance.

copyright=Copyright (c) 2014 itemis and others.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Public License v1.0\n\
which accompanies this distribution, and is available at\n\
http://www.eclipse.org/legal/epl-v10.html