# Copyright (c) 2005 - 2011 SAP AG.
# 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:
#    SAP AG - initial API and implementation
#    mwenz - Update of Eclipse license
#    mwenz - Use central Eclipse license feature
bin.includes = feature.xml,\
               about.html,\
               copyright.txt,\
               eclipse.gif,\
               eclipse_update_120.jpg,\
               feature.properties
src.includes = .project,\
               about.html,\
               build.properties,\
               copyright.txt,\
               eclipse.gif,\
               eclipse_update_120.jpg,\
               feature.properties,\
               feature.xml
