#/*******************************************************************************
#* 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:
#*     Oracle - initial API and implementation
#******************************************************************************/

#set defaults for values that should already be set
_LibraryName=EclipseLink Mapping Workbench Framework Library Tests
_productName=EclipseLink
release.version=2.5.2
javac.version=1.6

# Defines for basic build directories. 
_classesDestDir=${basedir}/classes
_libDir=${basedir}/../../eclipselink.utils.workbench.lib
_mwdevLibDir=${_libDir}/mw
_jarDestDir=${_libDir}/mwtest
_rootResourceDir=${basedir}/resource
_rootSourceDir=${basedir}/source

# Defined jarfile names. 
framework.jarfile=framework_test.jar
framework.jarfile.src=framework_test_src.jar

# Defines for build directories.
compile.framework.resources=${_rootResourceDir}
compile.framework.srcdir=${_rootSourceDir}
compile.framework.destdir=${_classesDestDir}
compile.framework.classpath= \
    ${_jarDestDir}/utility_test.jar; \
    ${_mwdevLibDir}/framework.jar; \
    ${_mwdevLibDir}/uitools.jar; \
    ${_mwdevLibDir}/utility.jar; \
    ${junit.lib}
