Hi Michelle,

please find two comments below.

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.
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.PersistenceManagerFactoryImpl


#javax.jdo.PersistenceManagerFactoryClass=org.apache.jdo.impl.fostore.FOStorePMF

org.apache.jdo.ConnectionCreate=true
javax.jdo.option.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriver
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.JDOFatalUserException: 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>(AbstractPersistenceManagerFactory.java:113)

I hope this issue is gone as soon as we have a api20 subproject that creates a jar with the JDO 2.0 API. I think a JDO implementation has to pass the TCK using the official JDO API jar. But this is a special situation because you run a JDO 2.0 preview implementation against the 1.1 TCK.



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"/>

This is a good catch! We need a way to allow IUT specific system properties to be set when running the tck. I propose the following solution:
- Add the following line to the file project.properties:
iut.sysproperties = -Dderby.system.home=${basedir}/iut_jars"
A good place is after the definition of the property iut.properties.
- Add the following line to the goals runtck.single and runtck:
<jvmarg line="${iut.sysproperties}"/>
It replaces the new sysproperty setting. This allow specifying one or more system properties in project.properties w/o changing the maven.xml. What do you think?


Regards Michael


-- Michelle



--
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