# Properties used in building the eclipselink.jar.

# The directory that holds the oracle-specific jar files.
# You can either put the jars in this directory, or specify your own directory.
oracle.extensions.depend.dir=../extension.oracle.lib.external
junit.lib=../extension.lib.external/junit.jar
tools.lib=${env.JAVA_HOME}/lib/tools.jar

# Set javac.debug to "true" to enable debug attributes like lines, variables and source-filename
# Set javac.optimize to "on" to enable cpmpiler optimizations
# Set javac.deprecation to "on" to enable deprecation messages during compile
# Set javac.version when you would like to override the java version during testing
javac.debug=true
javac.optimize=off
javac.deprecation=off
javac.version=1.5

eclipselink.log.level=info

# Do not edit the variables below
# They may, however, be overridden in parent scripts
#     Static Definitions
# -----------------------------------
release.version=1.0.2

build.dir=build
classes.dir=classes
plugins.dir=plugins
report.dir=reports
resource.dir=resource
run.dir=run
src.dir=src
tmp.dir=tmp

antlr=org.eclipse.persistence.antlr
asm=org.eclipse.persistence.asm

#     Variable Definitions (execution location dependent)
# -----------------------------------
eclipselink.plugins=plugins

eclipselink.core.base=foundation
eclipselink.dbws.base=dbws
eclipselink.jpa.base=jpa
eclipselink.moxy.base=moxy
eclipselink.sdo.base=sdo
eclipselink.util.base=utils

oracle.extensions.depend.jars=xdb.jar,aqapi.jar,xmlparserv2.jar,ojdbc14dms_10.jar,sdoapi.jar

eclipselink.core=${eclipselink.core.base}/org.eclipse.persistence.core
eclipselink.core.bin=${eclipselink.core.base}/bin
eclipselink.core.test=${eclipselink.core.base}/eclipselink.core.test
eclipselink.core.xsds=${eclipselink.core}/resource/xsd
eclipselink.core.depend=javax.activation_1.1.0.jar,javax.resource_1.5.0.jar,javax.ejb_3.0.0.jar,javax.jms_1.1.0.jar,javax.xml.stream_1.0.0.jar,javax.transaction_1.1.0.jar,javax.mail_1.4.0.jar,javax.persistence_1.0.0.jar

eclipselink.extension.oracle=${eclipselink.core.base}/org.eclipse.persistence.oracle
eclipselink.extension.oracle.test=${eclipselink.core.base}/eclipselink.extension.oracle.test

eclipselink.jpa=${eclipselink.jpa.base}/org.eclipse.persistence.jpa
eclipselink.jpa.test=${eclipselink.jpa.base}/eclipselink.jpa.test
eclipselink.jpa.spring.test=${eclipselink.jpa.base}/eclipselink.jpa.spring.test
eclipselink.jpa.xsds=${eclipselink.jpa}/resource/org/eclipse/persistence/jpa

eclipselink.moxy=${eclipselink.moxy.base}/org.eclipse.persistence.moxy
eclipselink.moxy.bin=${eclipselink.moxy.base}/bin
eclipselink.moxy.test=${eclipselink.moxy.base}/eclipselink.moxy.test

eclipselink.sdo=${eclipselink.sdo.base}/org.eclipse.persistence.sdo
eclipselink.sdo.bin=${eclipselink.sdo.base}/bin
eclipselink.sdo.test=${eclipselink.sdo.base}/eclipselink.sdo.test

eclipselink.util.jaxb=${eclipselink.util.base}/eclipselink.utils.jaxb

eclipselink.util.rename=${eclipselink.util.base}/eclipselink.utils.rename
eclipselink.util.rename.resource=${eclipselink.util.rename}/resource

eclipselink.util.workbench=${eclipselink.util.base}/eclipselink.utils.workbench
eclipselink.util.workbench.test=${eclipselink.util.base}/eclipselink.utils.workbench.test

javadoc.prefixTitle=EclipseLink ${release.version}_
javadoc.postfixTitle=API Reference

struct_converter.classes.dir=struct_converter_jar
eclipselink.oracle.depend.jar=eclipselink-extension-oracle.jar
eclipselink.javadocs=${build.dir}/javadocs

xml.platform=org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform

sdo.classgen.run.path=../../../${eclipselink.jar.name}${path.separator}../../../${eclipselink.sdo.test}/classes${path.separator}../../../${commonj.sdo.lib}${path.separator}../../../${eclipselink.plugins}/javax.activation_1.1.0.jar${path.separator}../../../${eclipselink.plugins}/javax.mail_1.4.0.jar

#     Third-Party Library Definitions
# -----------------------------------
commonj.sdo.lib=sdo/plugins/commonj.sdo_2.1.0.jar
jaxb-api.lib=moxy/plugins/javax.xml.bind_2.0.0.jar

#     Build Artifact Definitions
# -----------------------------------
eclipselink.jar.name=eclipselink.jar
eclipselink.install.prefix=eclipselink
eclipselink.src.install.prefix=${eclipselink.install.prefix}-src
eclipselink.tst.src.prefix=${eclipselink.install.prefix}-test-src
eclipselink.plugins.install.prefix=eclipselink-plugins
eclipselink.javadoc.install.prefix=eclipselink-javadocs
eclipselink.zip.suffix=.zip
package-rename.jar=package-rename.jar
package-rename.properties=package-rename.properties
persistence.jar=javax.persistence_1.0.0.jar
jaxb-api.jar=javax.xml.bind_2.0.0.jar
jaxb-xjc.jar=jaxb-xjc.jar
jaxb-impl.jar=jaxb-impl.jar
jsr173_1.0_api.jar=javax.xml.stream_1.0.0.jar
activation.jar=javax.activation_1.1.0.jar
mail.jar=javax.mail_1.4.0.jar
commonj-sdo.jar=commonj.sdo_2.1.0.jar

eclipselink.antlr.jar=org.eclipse.persistence.antlr
eclipselink.asm.jar=org.eclipse.persistence.asm
eclipselink.core.jar=org.eclipse.persistence.core
eclipselink.jpa.jar=org.eclipse.persistence.jpa
eclipselink.moxy.jar=org.eclipse.persistence.moxy
eclipselink.sdo.jar=org.eclipse.persistence.sdo
eclipselink.extension.oracle.jar=org.eclipse.persistence.oracle

about-file=about.html
readme-file=readme.html
license-files=license.*
setenv-scripts=setenv.*
package-rename-scripts=packageRename.*
jaxb-compiler-scripts=jaxb-compiler.*
sdo-compiler-scripts=sdo-compiler.*

#Manifest Information
specification.title=Eclipse Persistence Services
specification.vendor=EclipseLink Project
implementation.title=org.eclipse.persistence
implementation.vendor=EclipseLink Project
release.designation=EclipseLink Milestone
premain.class=org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializerAgent
