# ====================================================================
# 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 Core (Incubation)
providerName=Eclipse Modeling Project

description=Sphinx model workspace management enabling model instances to be to centrally created and shared across the whole workspace such all views, editors, builders, and processors \
that need to access these models operate on the same model instance. This includes the mapping of model files to editing domains, the management of the models' load/unload \
and dirty state/save lifecycles as well as the synchronization of the loaded model instances with changes in the underlying resources. Along with that, a number of common runtime-level \
enhancements of EMF and the Eclipse Platform are provided such as descriptors of metamodels that may consist of a single of multiple EPackages, dynamically modifiable resource scopes to \
determine which resources belong to which shared model instance, model migration services, on-the-fly XML and XSD validation and problem marker creation while model are being loaded and \
saved, as well as a couple of performance optimizations and utilities.

copyright=Copyright (c) 2008-2011 See4sys, BMW Car IT, Continental, 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