# Copyright (c) 2005, 2008 IBM Corporation, Embarcadero Technologies, 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 - initial API and implementation
#   Kenn Hussey (Embarcadero Technologies) - 204200
#
# $Id: build.properties,v 1.5 2008/02/19 23:15:54 khussey Exp $

# NLS_MESSAGEFORMAT_VAR
source.uml2.uml.tests.jar = src/
output.uml2.uml.tests.jar = bin/
bin.includes = about.html,\
               plugin.properties,\
               test.xml,\
               uml2.uml.tests.jar,\
               META-INF/
src.includes = about.html
javacSource = 1.5
javacTarget = 1.5
