# Copyright (c) 2005, 2014 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 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
#   Christian W. Damus (CEA) - 373643, 401804
#

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