################################################################################
# Copyright (c) 2020 Obeo.
# 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:
#     Obeo - initial API and implementation
################################################################################
featureName=Acceleo 3 to Acceleo 4 migrator
providerName=Eclipse Modeling Project
description=Tool for the migration of Acceleo 3 porjects to Acceleo 4.

copyright = Copyright (c) 2020 Obeo, France. \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 \n\
 \n\
Contributors: \n\
   Obeo - initial API and implementation
