# Copyright (c) 2019 CEA LIST.
# 
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0/
# 
#  SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
#  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation


# "featureName" property - name of the feature
featureName=Papyrus-Model2Doc Tests Feature (Incubation)

# "providerName" property - name of the company that provides the feature
providerName=Eclipse Modeling Project 

description=This feature provides the JUnits tests for Model2Doc.

################ end of description property ##################################

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2019 CEA LIST.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Public License 2.0\n\
which accompanies this distribution, and is available at\n\
https://www.eclipse.org/legal/epl-2.0/\n\
\n\
SPDX-License-Identifier: EPL-2.0/\n\
Contributors:/\n\
Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation\n
################ end of copyright property ####################################
