###############################################################################
# Copyright (c) 2000, 2015 IBM Corporation and others.
#
# 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:
#     IBM Corporation - initial API and implementation
#     Mat Booth (Red Hat Inc) - 419524 Get rid of nested jars
#     Lars Vogel <Lars.Vogel@vogella.com> - Bug 474642
###############################################################################
source.. = src/
bin.includes = plugin.xml,\
               .,\
               Plugin_Testing/,\
               about.html,\
               META-INF/,\
               test.xml,\
               testData/
src.includes = about.html
javacWarnings..=-unchecked,-raw
