###############################################################################
# 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 Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
src.excludes = **/.cvsignore
bin.includes = plugin.xml,\
               plugin.properties,\
               beaninfo.jar,\
               vm/beaninfovm.jar,\
               about.html,\
               .options,\
               schema/
jars.compile.order = vm/beaninfovm.jar,\
                     beaninfo.jar
src.includes = about.html,\
               model/,\
               rose/,\
               proxy.jars
source.beaninfo.jar = beaninfo/
source.vm/beaninfovm.jar = vm_beaninfovm/
