###############################################################################
# Copyright (c) 2001, 2004 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
#     Jens Lukowski/Innoopract - initial renaming/restructuring
#     
###############################################################################
bin.includes = plugin.xml,\
               .options,\
               editor.jar,\
               data/,\
               icons/,\
               jspdebug.properties,\
               plugin.properties
src.includes = toc.xml,\
               testToc.xml,\
               smoke/,\
               schema/,\
               plugin.xml,\
               plugin.properties,\
               jspdebug.properties,\
               javadoc.xml,\
               icons/,\
               html/,\
               data/,\
               DevTimeSupport/,\
               .options,\
               doc/
source.editor.jar = src/,\
                    src-extensions/,\
                    src-contentproperties/
output.editor.jar = bin/
