###############################################################################
#  Copyright (c) 2003, 2014 IBM Corporation 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:
#     IBM Corporation - initial API and implementation
###############################################################################
bin.includes = plugin.xml,\
               test.xml,\
               about.html,\
               testresources/,\
               testjars/,\
               testprograms/,\
               *.jar,\
               testfiles/,\
               testsource-j2se-1.5/,\
               META-INF/,\
               plugin.properties,\
               java7/,\
               java8/
source.javadebugtests.jar = test plugin/,\
                            tests/,\
                            console tests/
output.javadebugtests.jar = bin/
javacWarnings..=-unavoidableGenericProblems
javacWarnings.javadebugtests.jar=-unavoidableGenericProblems
