###############################################################################
# Copyright (c) 2000, 2018 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
###############################################################################
bin.includes = plugin.xml,\
               about.html,\
               .options,\
               JavadocHoverStyleSheet.css,\
               JavadocViewStyleSheet.css,\
               icons/,\
               templates/,\
               plugin.properties,\
               .,\
               META-INF/,\
               dictionaries/,\
               about_files/,\
               jar-in-jar-loader.zip,\
               css/,\
               preview/
src.includes = about.html,\
               schema/,\
               dictionaries/,\
               about_files/
source.. = core refactoring/,\
               ui/,\
               ui refactoring/,\
               core extension/,\
               internal compatibility/
src.excludes = jar in jar loader/
jars.compile.order = .
customBuildCallbacks = customBuildCallbacks.xml
javacWarnings..=-unavoidableGenericProblems
