################################################################################
# Copyright (c) 2006, 2011 Wind River Systems, Inc. and others.
# 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/ 
# 
# Contributors: 
# Martin Oberhuber - initial API and implementation 
################################################################################

pluginName = RSE Test Framework Examples
providerName = Eclipse TM Project
 