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                  

Reply via email to