###############################################################################
# Copyright (c) 2003, 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
###############################################################################
bin.includes = schema/,\
               icons/,\
               dtds/,\
               plugin.properties,\
               prepareAllPII.xml,\
               plugin.xml,\
               runtime/j2eeplugin.jar
source.runtime/j2eeplugin.jar = j2eeplugin/,\
                                common/,\
                                commonedit/,\
                                earproject/,\
                                j2eecreation/,\
                                archiveops/,\
                                applicationedit/,\
                                appclientcreation/,\
                                property_files/
jars.compile.order = runtime/j2eeplugin.jar
src.includes = rose/,\
               schema
output.runtime/j2eeplugin.jar = bin/
