################################################################################
# Copyright (c) 2011, 2014 EclipseSource and others.
# 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:
#    EclipseSource - initial API and implementation
################################################################################

featureName = RAP Visualization Projects (Incubation)

providerName = Eclipse.org

updateSiteName = The Rich Ajax Platform Incubator Visualization Projects

description=This feature contains the RAP incubator visualization projects\n\
including source code.\n\
Include this in your target platform unless you collect the required bundles from other features.\n\
*** DO NOT INSTALL IN YOUR IDE ***

copyright = \
Copyright (c) 2011, 2014 EclipseSource 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\n\
\n\
Contributors:\n\
   Austin Riddle\n\
   EclipseSource - initial API and implementation
