# Copyright (c) 2005, 2015 IBM Corporation, Embarcadero Technologies, CEA, and others.
# All rights reserved.   This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#   IBM - initial API and implementation
#   Kenn Hussey (Embarcadero Technologies) - 204200
#   Christian W. Damus (CEA) - 286404 (adapted from UML2 UML Tests plug-in)
#   Kenn Hussey - 535301
#

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