db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Bouschen <mbo.t...@spree.de>
Subject Re: Steps to running the TCK against jpox & derby
Date Mon, 21 Feb 2005 14:30:46 GMT
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:Michelle.Caisse@Sun.COM] 
> Sent: Friday, February 18, 2005 9:52 PM
> To: jdo-dev@db.apache.org
> 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		Tech@Spree Engineering GmbH
mailto:mbo.tech@spree.de	http://www.tech.spree.de/
Tel.:++49/30/235 520-33		Buelowstr. 66			
Fax.:++49/30/2175 2012		D-10783 Berlin			

Mime
View raw message