#/*******************************************************************************
#* 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
_VendorString=EclipseLink Project
_CopyrightString=Copyright (c) 1998, ${CurYear}, ${_VendorString}.  All rights reserved.
_productName=EclipseLink Workbench
release.version=2.5.3
javac.version=1.6

# Defines for basic build directories.
_buildLogDir=${basedir}/logs
_publishDir=${basedir}

#Library specific manifest entries
# Note: manifest lines can contain a maximum of 71 characters of data
#       longer lines must be continued on the line below by starting
#       the line with a single space. This makes defining things like
#       classpaths VERY interesting, because property files are parsed
#       line by line. So theoretically special characters need to be
#       inserted to get the multiple specs to play nice, however, in
#       practice it doesn't work.
workbench.manifest.basepackage=org.eclipse.persistence.workbench
workbench.manifest.libraryName=Workbench
workbench.manifest.mainclass=org.eclipse.persistence.workbench.Main
workbenchcore.manifest.basepackage=org.eclipse.persistence.workbench
workbenchcore.manifest.libraryName=Workbench Core Library

# Define for eclipselink.jar location
_eclipselinkJar=../../../eclipselink.jar

# Defines for build directories.
libDir=${basedir}/../eclipselink.utils.workbench.lib/mw
iconlibDir=${basedir}/iconlib
utilityDir=${basedir}/utility
uitoolsDir=${basedir}/uitools
frameworkDir=${basedir}/framework
platformsmodelDir=${basedir}/platformsmodel
platformspluginDir=${basedir}/platformsplugin
mappingsmodelDir=${basedir}/mappingsmodel
mappingsioDir=${basedir}/mappingsio
mappingspluginDir=${basedir}/mappingsplugin
scpluginDir=${basedir}/scplugin

# Defined jarfile names.
mwcore.jarfile=elmwcore.jar
mwcore.src.jarfile=elmwcore_src.jar
workbench.jarfile=eclipselinkmw.jar
workbench.src.jarfile=eclipselinkmw_src.jar
