###############################################################################
# Copyright (c) 2000, 2011 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
###############################################################################

source.. = src/
src.includes = about.html,\
               schema/
customBuildCallbacks=buildJSPs.xml
bin.includes = plugin.xml,\
               .,\
               plugin.properties,\
               about.html,\
               META-INF/,\
               index.jsp,\
               basic/,\
               advanced/,\
               .options,\
               web-archive/,\
               advancedstate/
output.. = bin/

