#
# Copyright 2005 The Apache Software Foundation.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at 
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License.

# Start new JVM for junit tests
maven.junit.fork = yes
maven.junit.dir = ${jdo.testdir}

# checkstyle settings
maven.checkstyle.properties = ${basedir}/../jdo_checks.xml

# dependencies
jdo.jdoapi.jarfile = ${pom.getDependencyPath('apache-jdo:jdo2-api')}
jdo.jdobtree.jarfile = ${pom.getDependencyPath('apache-jdo:jdo-btree')}
jdo.jdocore.jarfile = ${pom.getDependencyPath('apache-jdo:jdo2-core')}
jdo.jdoenhancer.jarfile = ${pom.getDependencyPath('apache-jdo:jdo2-enhancer')}
jdo.jdoruntime.jarfile = ${pom.getDependencyPath('apache-jdo:jdo2-runtime')}
jdo.jdoquery.jarfile = ${pom.getDependencyPath('apache-jdo:jdo2-query')}
junit.jarfile = ${pom.getDependencyPath('junit:junit')}
antlr.jarfile = ${pom.getDependencyPath('antlr:antlr')}
jta.jarfile = ${pom.getDependencyPath('geronimo-spec:geronimo-spec-jta')}
logging.jarfile = ${pom.getDependencyPath('commons-logging')}
xmlparser = 

# jndi dependencies
jndi = ${basedir}/../lib/ext/fscontext.jar${path.separator}${basedir}/../lib/ext/providerutil.jar

jdo.testclasses.dir = ${maven.build.dir}/test-classes
jdo.pcclasses.jarfile = ${maven.build.dir}/test-classes/pcclasses.jar
jdo.testclasses.jarfile = ${maven.build.dir}/test-classes/jdo-ri-tests.jar
jdo.fsuid.jarfile = ${maven.build.dir}/test-classes/fsuid2.jar
jdo.testlist = ${basedir}/test/conf/tests.list
jdo.testdir = ${maven.build.dir}/database
jdo.security.policy = ${basedir}/test/conf/JDO20Policy

# enhancer 
jdo.enhancer.enhanced.dir = ${maven.build.dir}/test-classes
jdo.enhancer.main = org.apache.jdo.enhancer.Main
jdo.enhancer.options = -f -d "${jdo.enhancer.enhanced.dir}" -s "${jdo.enhancer.sourcepath}"
jdo.enhancer.sourcepath = ${maven.build.dir}/test-classes${path.separator}${jdo.jdoapi.jarfile}
jdo.enhancer.classpath = ${jdo.jdoenhancer.jarfile}${path.separator}${jdo.jdocore.jarfile}${path.separator}${jdo.jdoapi.jarfile}${path.separator}${logging.jarfile}
jdo.annotationtest.main = org.apache.jdo.impl.enhancer.util.AnnotationTest
jdo.annotationtest.options = -s "${jdo.enhancer.enhanced.dir}${path.separator}${jdo.enhancer.sourcepath}"
jdo.augmentationtest.main = org.apache.jdo.impl.enhancer.util.AugmentationTest
jdo.augmentationtest.options = -s "${jdo.enhancer.enhanced.dir}${path.separator}${jdo.enhancer.sourcepath}"
jdo.xmlexists.main = org.apache.jdo.impl.model.jdo.xml.XMLExists
jdo.xmlexists.classpath = ${maven.build.dir}/test-classes${path.separator}${jdo.jdoruntime.jarfile}${path.separator}${jdo.jdocore.jarfile}${path.separator}${jdo.jdoapi.jarfile}${path.separator}${logging.jarfile}

jdo.pcclasses.pc.classes= \
  org.apache.jdo.pc.PCArrays \
  org.apache.jdo.pc.PCCollections \
  org.apache.jdo.pc.PCCycle \
  org.apache.jdo.pc.PCCycle2 \
  org.apache.jdo.pc.PCDepartment \
  org.apache.jdo.pc.PCDepartment1 \
  org.apache.jdo.pc.PCEmployee \
  org.apache.jdo.pc.PCEmployee1 \
  org.apache.jdo.pc.PCFullTimeEmployee1 \
  org.apache.jdo.pc.PCInsurance \
  org.apache.jdo.pc.PCInsurance1 \
  org.apache.jdo.pc.PCInterfaces \
  org.apache.jdo.pc.PCLargeObj \
  org.apache.jdo.pc.PCPoint \
  org.apache.jdo.pc.PCPoint1 \
  org.apache.jdo.pc.PCPrimitive \
  org.apache.jdo.pc.PCProject \
  org.apache.jdo.pc.PCProject1 \
  org.apache.jdo.pc.PCRect \
  org.apache.jdo.pc.PCRefArrays \
  org.apache.jdo.pc.PCSCO \
  org.apache.jdo.pc.PCStroke \
  org.apache.jdo.pc.PCBase \
  org.apache.jdo.pc.PCDerived \
  org.apache.jdo.pc.PCId \
  org.apache.jdo.pc.PCCollection

jdo.pcclasses.pc.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCArrays.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCollections.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCycle.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCycle2.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDepartment.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDepartment1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCEmployee1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCFullTimeEmployee1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInsurance.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInsurance1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInterfaces.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCLargeObj.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPoint.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPoint1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPrimitive.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCProject.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCProject1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCRect.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCRefArrays.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCSCO.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCStroke.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCBase.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDerived.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCId.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCollection.class

jdo.pcclasses.empdept.classes= \
  org.apache.jdo.pc.empdept.PCPerson \
  org.apache.jdo.pc.empdept.PCEmployee \
  org.apache.jdo.pc.empdept.PCFullTimeEmployee \
  org.apache.jdo.pc.empdept.PCPartTimeEmployee \
  org.apache.jdo.pc.empdept.PCInsurance \
  org.apache.jdo.pc.empdept.PCDepartment \
  org.apache.jdo.pc.empdept.PCProject

jdo.pcclasses.empdept.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCPerson.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCFullTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCPartTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCInsurance.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCDepartment.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCProject.class

jdo.pcclasses.xempdept.classes= \
  org.apache.jdo.pc.xempdept.Company \
  org.apache.jdo.pc.xempdept.Department \
  org.apache.jdo.pc.xempdept.Person \
  org.apache.jdo.pc.xempdept.Employee \
  org.apache.jdo.pc.xempdept.FullTimeEmployee \
  org.apache.jdo.pc.xempdept.PartTimeEmployee \
  org.apache.jdo.pc.xempdept.Insurance \
  org.apache.jdo.pc.xempdept.Project \
  org.apache.jdo.pc.xempdept.PrimitiveTypes

jdo.pcclasses.xempdept.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Company.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Department.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Person.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Employee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/FullTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/PartTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Insurance.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Project.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/PrimitiveTypes.class

jdo.pcclasses.appid.classes= \
  org.apache.jdo.pc.appid.PCPoint \
  org.apache.jdo.pc.appid.PCRect \
  org.apache.jdo.pc.appid.PCPerson \
  org.apache.jdo.pc.appid.PCEmployee \
  org.apache.jdo.pc.appid.PCFullTimeEmployee \
  org.apache.jdo.pc.appid.PCPartTimeEmployee \
  org.apache.jdo.pc.appid.PCInsurance \
  org.apache.jdo.pc.appid.PCDepartment \
  org.apache.jdo.pc.appid.PCProject \
  org.apache.jdo.pc.appid.PCObjectKey

jdo.pcclasses.appid.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPoint.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCRect.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPerson.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCFullTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPartTimeEmployee.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCInsurance.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCDepartment.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCProject.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCObjectKey.class

jdo.pcclasses.serializable.classes= \
  org.apache.jdo.pc.serializable.PCClass1 \
  org.apache.jdo.pc.serializable.PCClass2A \
  org.apache.jdo.pc.serializable.PCClass2B \
  org.apache.jdo.pc.serializable.PCSuper \
  org.apache.jdo.pc.serializable.PCSub3 \
  org.apache.jdo.pc.serializable.PCSub4A \
  org.apache.jdo.pc.serializable.PCSub4B

jdo.pcclasses.serializable.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass1.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass2A.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass2B.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSuper.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub3.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub4A.class \
  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub4B.class

jdo.pawareclasses.test.classes= \
  org.apache.jdo.test.Test_PCDerived

jdo.pawareclasses.test.files= \
  ${jdo.testclasses.dir}/org/apache/jdo/test/Test_PCDerived.class
