Michael, The jdo files should be ok. I will review tonight what's need from JPOX to run the tck. There was a wrong interpretation in JPOX implementation about field modifiers and we have to correct it.
Regards, Erik Bengtson Quoting Michael Bouschen <[EMAIL PROTECTED]>: > Hi Erik, > > you mentioned some problem with the metadata below. Is there anything > wrong with the .jdo files? I'm happy to fix any bug in the .jdo files. > > Regards Michael > > > Hi, > > > > Here is the tck11/maven.xml file updated to use the JPOX enhancer. > > > > I still can't run the tck because JPOX has a strictly validation of the > > metadata, and one of these checks needs removal as it was clarified some > > time ago by the EG that it's not needed. > > > > Erik Bengtson > > > > -----Original Message----- > > From: Michelle Caisse [mailto:[EMAIL PROTECTED] > > Sent: Friday, February 18, 2005 9:52 PM > > To: [email protected] > > Subject: Re: Steps to running the TCK against jpox & derby > > > > Michelle Caisse wrote: > > > > > >>Hi, Michael and others, > >> > >>Here's what I've done to get jpox and derby to run against the TCK, to > > > > > >>the point where they need to find tables in the database. > >> > >>1. Put jpox-1.1.0-beta-1.jar in tck11/iut_jars. > > > > > > and put derby.jar and derbytools.jar in tck11/iut_jars > > > > > >>2. Put log4j-1.2.9.jar in tck11/iut_jars. (jpox needed this.) > >>3 Edit tck11/project.properties: > >># iut > >>iut.properties = ${basedir}/jpox.properties > >>4. Create jpox.properties: > >> > > > > javax.jdo.PersistenceManagerFactoryClass=org.jpox.PersistenceManagerFact > > oryImpl > > > >> > > #javax.jdo.PersistenceManagerFactoryClass=org.apache.jdo.impl.fostore.FO > > StorePMF > > > >>org.apache.jdo.ConnectionCreate=true > >> > > > > javax.jdo.option.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriv > > er > > > >>javax.jdo.option.ConnectionURL=jdbc:derby:jdotckdb > >>#javax.jdo.option.ConnectionURL=fostore:database/fostore > >>javax.jdo.option.ConnectionUserName=tckuser > >>javax.jdo.option.ConnectionPassword=tckuser > >>javax.jdo.option.Optimistic=false > >>javax.jdo.option.RetainValues=false > >>javax.jdo.option.RestoreValues=false > >>5. In the classpath section of tck11/maven.xml, place these lines > >>BEFORE the JDO jar file lines: > >> <!-- Jar files for the implementation to be tested --> > >> <path refid="test_iut_jars" /> > >>else [java] 1) > >> > > > > testGetObjectId(org.apache.jdo.tck.api.jdohelper.GetObjectId)javax.jdo.J > > DOFatalUserException: > > > >>JDO 2.0 capabilities cannot be accessed! Please make sure that you do > >>not have a JDO 1.0 jar in front of the JDO 2 classes in your > > > > CLASSPATH. > > > >> [java] at > >> > > > > org.jpox.AbstractPersistenceManagerFactory.<init>(AbstractPersistenceMan > > agerFactory.java:113) > > > >>6. Manually create a derby database. I'm using iut_jars as the derby > >>system directory, meaning that it looks there for databases and > >>derby.properties. I wrote some scripts to create the db. The > >>procedure for deleting a derby database is an OS delete operation on > >>the directory and files. > >>7. Add the following line to maven.xml in the <goal > >>name="runtck.single" ...> section: > >> <sysproperty key="derby.system.home" > >>value="${basedir}/iut_jars"/> > >> > >>-- Michelle > >> > > > > > > > > ------------------------------------------------------------------------ > > > > <?xml version="1.0" encoding="UTF-8"?> > > <!-- > > > > 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. > > --> > > > > <project default="default" > > xmlns:j="jelly:core" > > xmlns:ant="jelly:ant" > > xmlns:maven="jelly:maven" > > > > > > > <!-- ==================== --> > > <!-- Default Global Goals --> > > <!-- ==================== --> > > > > <goal name="default"> > > <attainGoal name="jar:install"/> > > </goal> > > > > <goal name="build"> > > <attainGoal name="default"/> > > </goal> > > > > <goal name="rebuild"> > > <attainGoal name="clean"/> > > <attainGoal name="build"/> > > </goal> > > > > <postGoal name="test:prepare-filesystem"> > > <mkdir dir="${jdo.testdir}"/> > > </postGoal> > > > > <postGoal name="test:compile"> > > <attainGoal name="copytestmetadata"/> > > <attainGoal name="jpoxenhance"/> > > <attainGoal name="database"/> > > </postGoal> > > > > <goal name="clobber" prereqs="clean"> > > <delete> > > <fileset dir="." defaultexcludes="no" includes="**/*~"/> > > </delete> > > </goal> > > > > <!-- ================== --> > > <!-- Running test cases --> > > <!-- ================== --> > > > > <goal name="runtck" prereqs="testrunner.set, database, > copyloggingprops"> > > <echo>Run all tck tests from testlist ${jdo.testlist}</echo> > > <java fork="yes" dir="${jdo.testdir}" > > classname="${jdo.testrunnerclass}"> > > <classpath refid="project.class.path"/> > > <sysproperty key="testlist" value="${jdo.testlist}"/> > > <sysproperty key="ResultPrinterClass" > value="${jdo.resultprinterclass}"/> > > <sysproperty key="verbose" value="${verbose}"/> > > <sysproperty key="PMFProperties" value="${iut.properties}"/> > > <sysproperty key="PMF2Properties" > value="${basedir}/jdori2.properties"/> > > </java> > > </goal> > > > > <!-- Run a single tck test. The property testcase defines the name of > --> > > <!-- the tck test class w/o the prefix org.apache.jdo.tck, e.g. > --> > > <!-- maven -Dtest=api.jdohelper.GetObjectId runtck.single --> > > <goal name="runtck.single" prereqs="testrunner.set, database, > copyloggingprops"> > > <echo>Run tck test org.apache.jdo.tck.${test}</echo> > > <java fork="yes" dir="${jdo.testdir}" > > classname="org.apache.jdo.tck.${test}"> > > <classpath refid="project.class.path"/> > > <sysproperty key="ResultPrinterClass" > value="${jdo.resultprinterclass}"/> > > <sysproperty key="verbose" value="${verbose}"/> > > <sysproperty key="PMFProperties" value="${iut.properties}"/> > > <sysproperty key="PMF2Properties" > value="${basedir}/jdori2.properties"/> > > </java> > > </goal> > > > > <!-- ================ --> > > <!-- Enhancer support --> > > <!-- ================ --> > > > > <preGoal name="enhance"> > > <available property="metadata.exists" file="${jdo.metadata.dir}"/> > > <fail unless="metadata.exists" > > message="Metadata directory does not exists, please use goals > useapplicationdirectory or usedatastoredirectory to setup the metadata."/> > > <delete> > > <fileset dir="${jdo.testclasses.dir}" > > includes="${jdo.pcclasses.files} > ${jdo.paclasses.files}"/> > > <fileset dir="${jdo.testclasses.dir}" > > includes="**/*.jdo **/*jdoTest.properties"/> > > </delete> > > <attainGoal name="test:compile"/> > > <delete dir="${enhanced.dir}"/> > > <mkdir dir="${enhanced.dir}"/> > > </preGoal> > > > > <goal name="enhance"> > > <echo>Run enhancer</echo> > > <java fork="yes" failonerror="yes" dir="${jdo.testclasses.dir}" > > classname="${enhancer.main}" > > classpathref="project.class.path"> > > <arg line="${enhancer.options}"/> > > <arg line="${jdo.pcclasses.files}"/> > > <arg line="${jdo.paclasses.files}"/> > > </java> > > </goal> > > > > <goal name="jdorienhance"> > > <echo>Run JDORI enhancer</echo> > > <java fork="yes" failonerror="yes" dir="${jdo.testclasses.dir}" > > classname="${jdo.enhancer.main}" > > classpath="${jdo.enhancer.classpath}"> > > <arg line="${jdo.enhancer.options}"/> > > <arg line="${jdo.pcclasses.files}"/> > > <arg line="${jdo.paclasses.files}"/> > > </java> > > </goal> > > > > <goal name="jpoxenhance"> > > <!-- Construct FileSet of JDO meta-data files --> > > <fileset dir="${jdo.testclasses.dir}" id="jdo.files" > includes="**/*.jd*"/> > > <pathconvert pathsep=" " property="jdoMetaDataFiles" > refid="jdo.files"/> > > > > > > <!-- Run enhancer on JDO files --> > > <java classname="org.jpox.enhancer.JPOXEnhancer" > > failonerror="true" > > fork="true"> > > <classpath refid="project.class.path"/> > > > > <arg line="${jdoMetaDataFiles}"/> > > </java> > > > > <echo>Classes are now JDO-enhanced for JPOX test scenario > "${maven.jpoxtest.name}"</echo> > > </goal> > > > > <!-- ================ --> > > <!-- Metadata support --> > > <!-- ================ --> > > > > <goal name="usedatastoreidentity"> > > <mkdir dir="${jdo.metadata.dir}"/> > > <delete> > > <fileset dir="${jdo.metadata.dir}" > > includes="**/*.jdo, **/*jdoTest.properties"/> > > </delete> > > <copy todir="${jdo.metadata.dir}"> > > <fileset dir="${basedir}/test" > > includes="**/*jdoTest.properties.d"/> > > <mapper type="glob" from="*jdoTest.properties.d" > to="*jdoTest.properties" /> > > </copy> > > <copy todir="${jdo.metadata.dir}"> > > <fileset dir="${basedir}/test" includes="**/*.jdo.d"/> > > <mapper type="glob" from="*.jdo.d" to="*.jdo" /> > > </copy> > > </goal> > > > > <goal name="useapplicationidentity"> > > <mkdir dir="${jdo.metadata.dir}"/> > > <delete> > > <fileset dir="${jdo.metadata.dir}" > > includes="**/*.jdo, **/*jdoTest.properties"/> > > </delete> > > <copy todir="${jdo.metadata.dir}"> > > <fileset dir="${basedir}/test" > > includes="**/*jdoTest.properties.a"/> > > <mapper type="glob" from="*jdoTest.properties.a" > to="*jdoTest.properties"/> > > </copy> > > <copy todir="${jdo.metadata.dir}"> > > <fileset dir="${basedir}/test" includes="**/*.jdo.a"/> > > <mapper type="glob" from="*.jdo.a" to="*.jdo" /> > > </copy> > > </goal> > > > > <goal name="copytestmetadata"> > > <delete> > > <fileset dir="${jdo.testclasses.dir}" > > includes="**/*.jdo, **/*jdoTest.properties"/> > > </delete> > > <copy todir="${jdo.testclasses.dir}"> > > <fileset dir="${basedir}/test" > > includes="**/*jdoTest.properties.d"/> > > <mapper type="glob" from="*jdoTest.properties.d" > to="*jdoTest.properties" /> > > </copy> > > <copy todir="${jdo.testclasses.dir}"> > > <fileset dir="${basedir}/test" includes="**/*.jdo.d"/> > > <mapper type="glob" from="*.jdo.d" to="*.jdo" /> > > </copy> > > </goal> > > > > <!-- ========= --> > > <!-- Classpath --> > > <!-- ========= --> > > > > <path id="test_iut_jars" > > > <fileset dir="iut_jars" includes="*.jar"/> > > </path> > > > > <path id="project.class.path"> > > <!-- Directory where enhanced class files are located --> > > <pathelement location="${enhanced.dir}"/> > > <!-- Directory where .jdo files are located --> > > <pathelement location="${jdo.metadata.dir}"/> > > <!-- Directory where JDOTCK class files are located --> > > <pathelement location="${jdo.testclasses.dir}"/> > > <!-- JDO jar file --> > > <pathelement location="${jdo.jdoapi.jarfile}"/> > > <!-- Jar files for the implementation to be tested --> > > <path refid="test_iut_jars" /> > > <!-- JUnit jar file --> > > <pathelement location="${junit.jarfile}"/> > > <!-- Spring jar files --> > > <pathelement location="${spring.jarfile}"/> > > <pathelement location="${logging.jarfile}"/> > > <!-- Jar files for the reference implementation --> > > <pathelement location="${jdo.jdori.jarfile}" /> > > <pathelement location="${jdo.jdobtree.jarfile}" /> > > <pathelement location="${antlr.jarfile}" /> > > <pathelement location="${jta.jarfile}" /> > > <pathelement location="${xmlparser}" /> > > </path> > > > > <!-- ==== --> > > <!-- Misc --> > > <!-- ==== --> > > > > <goal name="database"> > > <mkdir dir="${jdo.testdir}/database" /> > > </goal> > > > > <goal name="testrunner.set"> > > <condition property="jdo.testrunnerclass" > > value="org.apache.jdo.tck.util.SwingTestRunner"> > > <istrue value="${gui}"/> > > </condition> > > <condition property="jdo.testrunnerclass" > > value="org.apache.jdo.tck.util.BatchTestRunner"> > > <isfalse value="${gui}"/> > > </condition> > > </goal> > > > > <goal name="copyloggingprops"> > > <copy todir="${jdo.testclasses.dir}" > > > <fileset dir="${basedir}"> > > <include name="commons-logging.properties"/> > > <include name="simplelog.properties"/> > > <include name="logging.properties"/> > > </fileset> > > </copy> > > </goal> > > > > </project> > > > -- > Michael Bouschen [EMAIL PROTECTED] Engineering GmbH > mailto:[EMAIL PROTECTED] http://www.tech.spree.de/ > Tel.:++49/30/235 520-33 Buelowstr. 66 > Fax.:++49/30/2175 2012 D-10783 Berlin >
