You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Michelle Caisse <Mi...@Sun.COM> on 2005/04/28 23:27:40 UTC
JDO TCK Conference Call Friday, April 29, 9 am PST
Hi,
We will have our regular meeting Friday (April 29) at 9 am PST to
discuss JDO TCK issues and status.
Dial-in numbers are:
866 230-6968 294-0479#
International: +1 865 544-7856
Agenda:
XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?)
JDO API release on ibiblio (Brian T, Craig)
Detached objects (Matthew)
JIRA/Apache accounts( all)
OutOfMemoryError (Michelle)
Apache nightly builds (Brian)
Other issues and status (any and all)
-- Michelle
Minutes JDO TCK Conference Call Friday, May 6, 9 am PST
Posted by Craig Russell <Cr...@Sun.COM>.
Attendees: Michelle Caisse, Michael Bouschen, Michael Watzek, Martin
Zaun, Erik Bengtsen, Craig Russell
XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?): no more information on orm issues from Brian; Craig still
needs to update the .dtd putting back a comment on PUBLIC and SYSTEM.
JDO API release on ibiblio (Brian T, Craig): no change
Detached objects (Matthew): Matthew has some code that he would like to
check in but doesn't have privileges yet.
JIRA/Apache accounts(Craig): Geir has set up JIRA accounts so all the
committers can administer (assign and close bugs). Erik, Matthew,
Michael, and Patrick are awaiting committer status. Need to hold a vote
for Micheal Watzek committer status.
Test development status (Michelle): JPOX doesn't recognize foreign-key
as an attribute of a field. It issues a parsing error. JPOX is using an
internal DTD. Erik will refresh the DTD from the checked-in version.
When running Collection of SimpleInterface, JPOX complains that there
is no implementation class for the interface. Might be an issue of the
search order for metadata.
Apache nightly builds (Brian): no change
Other issues and status (any and all)
AI: Craig: Run rules need a first pass to be discussed on the expert
group.
AI: Michael Watzek: The ri11 project is now ready to be evolved into
five different 20 sub projects. Need to work on the build and maven
files.
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
Re: Minutes: JDO TCK Conference Call Friday, May 13, 9 am PST
Posted by Michelle Caisse <Mi...@Sun.COM>.
1. XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?)
> Craig checked in changes to the jdo.dtd and orm.dtd.
>
> AI: Michelle will try the changes.
Works, at least whatever is in the latest JPOX build works. (The issue
was the foreign-key attribute of the field element.)
-- Michelle
Minutes: JDO TCK Conference Call Friday, May 13, 9 am PST
Posted by Craig Russell <Cr...@Sun.COM>.
Attendees: Michael Bouschen, Michael Watzek, Michelle Caisse, Matthew
Adams, Martin Zaun, Craig Russell, Erik Bengtson, and Geoff Hendry.
Our regular meeting was held Friday, May 13 at 9 am PST to discuss JDO
TCK issues and status.
Dial-in numbers are:
866 230-6968 294-0479#
International: +1 865 544-7856
Agenda:
1. XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd
issues fixed?)
Craig checked in changes to the jdo.dtd and orm.dtd.
AI: Michelle will try the changes.
2. JDO API release on ibiblio (Brian T, Craig)
no change to status.
3. Detached objects (Matthew)
No committer badge. But no changes to code. AI: Craig to ask Geir where
the committers' badges are for Matthew, Erik, and Michael Watzek.
4. Test development status (Michelle)
Field types (collections and arrays too) are checked in. Need to figure
out how to get metadata for SimpleClass read in first. Down to 82
errors, about 20 failures. Using beta3 which was just released. Takes a
little over an hour to run tck20 compared to 15 minutes to run tck11.
5. Apache nightly builds (Brian)
no change.
7. Other issues and status (any and all)
Problem with splitting out runtime and query. org.apache.jdo.store
defines the StoreManager interface and abstract StoreManagerImpl. They
have references to the query package. Proposal is to move 4 interfaces
in query having to do with QueryResult from query to runtime.
Tortoise helps using svn with Windows. AI: Matthew send link to the
site.
We added foreign keys to the PCRect table and we have test case that
tries to include null-valued PCPoints. This might be a test case bug.
TestArrayColllections still fails with SimpleInterface[] and
SimpleClass[] field types. AI: Erik to see if this is a test case bug
or a JPOX issue. AI: Erik to try the tck without generating schema.
What happens if the column attribute in field element conflicts with a
column element? This is a spec issue for the experts to resolve. I
guess it's an error.
JSR 924 (Java SE 5 extensions) need to be examined to see their effect
on the enhancer. AI: Martin to investigate and see about upgrading the
ri11 to use the new extensions.
Mahesh ported the ri11 enhancer to use ASM library instead of its own
classfile library. Future project: to port the changes back to use in a
future ri20 project.
Geoff Hendry's implementation of JDO, JDOMax, has not yet run against
the tck20. AI: Geoff try to get tck20 to run with JDOMax.
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
JDO TCK Conference Call Friday, May 13, 9 am PST
Posted by Michelle Caisse <Mi...@Sun.COM>.
Hi,
We will have our regular meeting Friday, May 13 at 9 am PST to discuss
JDO TCK issues and status.
Dial-in numbers are:
866 230-6968 294-0479#
International: +1 865 544-7856
Agenda:
XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?)
JDO API release on ibiblio (Brian T, Craig)
Detached objects (Matthew)
Test development status (Michelle)
Apache nightly builds (Brian)
Other issues and status (any and all)
-- Michelle
RESEND Minutes JDO TCK Conference Call Friday, May 6, 9 am PST
Posted by Craig Russell <Cr...@Sun.COM>.
Attendees: Michelle Caisse, Michael Bouschen, Michael Watzek, Martin
Zaun, Erik Bengtson, Craig Russell
XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?): no more information on orm issues from Brian; Craig still
needs to update the .dtd putting back a comment on PUBLIC and SYSTEM.
JDO API release on ibiblio (Brian T, Craig): no change
Detached objects (Matthew): Matthew has some code that he would like to
check in but doesn't have privileges yet.
JIRA/Apache accounts(Craig): Geir has set up JIRA accounts so all the
committers can administer (assign and close bugs). Erik, Matthew,
Michael, and Patrick are awaiting committer status. Need to hold a vote
for Micheal Watzek committer status.
Test development status (Michelle): JPOX doesn't recognize foreign-key
as an attribute of a field. It issues a parsing error. JPOX is using an
internal DTD. Erik will refresh the DTD from the checked-in version.
When running Collection of SimpleInterface, JPOX complains that there
is no implementation class for the interface. Might be an issue of the
search order for metadata.
Apache nightly builds (Brian): no change
Other issues and status (any and all)
AI: Craig: Run rules need a first pass to be discussed on the expert
group.
AI: Michael Watzek: The ri11 project is now ready to be evolved into
five different 20 sub projects. Need to work on the build and maven
files.
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
RE: JDO TCK Conference Call Friday, May 6, 9 am PST
Posted by "Matthew T. Adams" <ma...@xcalia.com>.
Sorry, I have to attend a school function with my daughter and won't be
able to attend.
Try to have a good time without me! ;)
--matthew
>-----Original Message-----
>From: Michelle Caisse [mailto:Michelle.Caisse@Sun.COM]
>Sent: Thursday, May 05, 2005 8:22 PM
>To: jdo-dev@db.apache.org; jdo-tck-ext@Sun.COM
>Subject: JDO TCK Conference Call Friday, May 6, 9 am PST
>
>
>Hi,
>
>We will have our regular meeting Friday, May 6 at 9 am PST to discuss
>JDO TCK issues and status.
>
>Dial-in numbers are:
>
>866 230-6968 294-0479#
>International: +1 865 544-7856
>
>Agenda:
>
>XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
>fixed?)
>JDO API release on ibiblio (Brian T, Craig)
>Detached objects (Matthew)
>JIRA/Apache accounts(Craig)
>Test development status (Michelle)
>Apache nightly builds (Brian)
>Other issues and status (any and all)
>
>-- Michelle
>
JDO TCK Conference Call Friday, May 6, 9 am PST
Posted by Michelle Caisse <Mi...@Sun.COM>.
Hi,
We will have our regular meeting Friday, May 6 at 9 am PST to discuss
JDO TCK issues and status.
Dial-in numbers are:
866 230-6968 294-0479#
International: +1 865 544-7856
Agenda:
XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
fixed?)
JDO API release on ibiblio (Brian T, Craig)
Detached objects (Matthew)
JIRA/Apache accounts(Craig)
Test development status (Michelle)
Apache nightly builds (Brian)
Other issues and status (any and all)
-- Michelle
Re: JDO TCK Conference Call Friday, April 29, 9 am PST
Posted by Craig Russell <Cr...@Sun.COM>.
Attending: Matthew Adams, Martin Zaun, Michael Bouschen, Michael
Watzek, Erik Bengtsen, Michelle Caisse, Craig Russell
1. XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd
issues fixed?)
Brian checked in changes to the DTD and .xsd for jdo metadata, and will
still need to resolve issues in the DTD for .orm.
2. Detached objects (Matthew)
Started work on ShoppingCart model for detachment. Simple model with
ShoppingCart, Items, Product. The ShoppingCart contains objects that
will become Orders at checkout time.
Issue: How to run the TCK in debug mode?
AI: Matthew figure out how to run the TCK under Netbeans
3. JIRA/Apache accounts( all)
Martin needs to change his password on cvs.apache.org. He was given
pointers and encouragement to just go and do it.
AI: Craig contact Geir to get Erik and Matthew committer status; get
erik, matthewadams, mbo, mzaun, mwa administration status on JIRA.
4. OutOfMemoryError (Michelle) JIRA JDO-21
When you run the entire TCK get out of memory errors. Sooner or later
depending on configuration.
Some tests don't close the PMF when they fail. All are in
api.persistencemanager package.
AI: Michael will look into upgrading the base JDO test class to make
sure it's really closing the PMF, even if there are PMs with open
transactions. There is some sample code in one of the test cases in
ri11: org.apache.jdo.test.Test_Close_PMF.java that iterates the nested
exceptions if pmf.close fails.
Some tests in fieldtype use a big chunk of memory
NewQueryWithExtentAndFilter NewQueryWithSpecifiedLanguageAndQuery use
about 200MB memory.
AI: Michael. Look for a static variable in the code.
5. Now running with the proper JPOX configuration. validateTables=false
and validateConstraints=false
Erik is using the TCK with autogenerate schema and SQLServer.
some metadata in .jdo for SimpleInterface needs to be updated.
Time fields need extra information. To be discussed on email.
AI: Erik send email with his issues with TCK 20.
Craig
On Apr 29, 2005, at 8:36 AM, Michelle Caisse wrote:
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
RE: JDO TCK Conference Call Friday, April 29, 9 am PST
Posted by er...@jpox.org.
Hi,
I hereby enumerate my experience and issues I had running the TCK:
- schema is not fully created with the existing DDL script, so the
implementation needs to create it at runtime or pre-runtime. Note: JPOX
can do it at runtime or pre-runtime.
- BigDecimal tests use equals to assert the values; JPOX fails to keep
the 0s after the decimals (9999.999900000 = 9999.9999) as it relies on
the database to do it, and of databases doesn't keep it; I propose the
asserts be changed from equals to compare. Of course, one implementation
could store it in a varchar or char column, but...
- In SimpleInterface tests I had to add the jpox extension
implementation-classes in the metadata. The JDO says that we can look in
the "implements" attribute for the SimpleClass, so we, JPOX, will make
the necessary changes to support it.
- Some query tests require an "id" field that is not available if the
tests are run in datastore identity mode.
- Retrieve test fails as JDO 2, in the current state, has broken the
backward compatibility.
- Reachability test fails with JPOX. This is a known issue.
Running with Derby
- Derby is limited to 36 constraints by table; FieldsOfSimpleClass class
has more than a 100 fields with 1-1 association with SimpleClass, so if
the implementation automatically creates the foreign key, it will fail.
Running with Eclipse
- with Eclipse I'm able to execute all tests and debug as needed. I
couldn't find any memory leak neither in the JDO TCK nor JPOX, but I see
that the objects in memory don't get gargage collected after each test,
even if it run successfully.
Regards,
Erik Bengtson
-----Original Message-----
From: Michelle Caisse [mailto:michelle.caisse@sun.com]
Sent: Friday, April 29, 2005 5:36 PM
To: Brian Topping
Cc: jdo-dev@db.apache.org; jdo-tck-ext@sun.com
Subject: Re: JDO TCK Conference Call Friday, April 29, 9 am PST
Okay, Brian. Thanks for the report. I hope everything works out okay.
-- Michelle
Brian Topping wrote:
> Hi gang,
>
> I'm not going to be making it today, been having significant issues
> getting anything done this week and need to spend the day tomorrow at
> hospital(s) for family members. I'll be trying to get my list taken
> care of this weekend though.
>
> best, Brian
>
> Michelle Caisse wrote:
>
>> Hi,
>>
>> We will have our regular meeting Friday (April 29) at 9 am PST to
>> discuss JDO TCK issues and status.
>>
>> Dial-in numbers are:
>>
>> 866 230-6968 294-0479#
>> International: +1 865 544-7856
>>
>> Agenda:
>>
>> XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
>> fixed?)
>> JDO API release on ibiblio (Brian T, Craig)
>> Detached objects (Matthew)
>> JIRA/Apache accounts( all)
>> OutOfMemoryError (Michelle)
>> Apache nightly builds (Brian)
>> Other issues and status (any and all)
>>
>> -- Michelle
>>
Re: JDO TCK Conference Call Friday, April 29, 9 am PST
Posted by Michelle Caisse <Mi...@Sun.COM>.
Okay, Brian. Thanks for the report. I hope everything works out okay.
-- Michelle
Brian Topping wrote:
> Hi gang,
>
> I'm not going to be making it today, been having significant issues
> getting anything done this week and need to spend the day tomorrow at
> hospital(s) for family members. I'll be trying to get my list taken
> care of this weekend though.
>
> best, Brian
>
> Michelle Caisse wrote:
>
>> Hi,
>>
>> We will have our regular meeting Friday (April 29) at 9 am PST to
>> discuss JDO TCK issues and status.
>>
>> Dial-in numbers are:
>>
>> 866 230-6968 294-0479#
>> International: +1 865 544-7856
>>
>> Agenda:
>>
>> XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
>> fixed?)
>> JDO API release on ibiblio (Brian T, Craig)
>> Detached objects (Matthew)
>> JIRA/Apache accounts( all)
>> OutOfMemoryError (Michelle)
>> Apache nightly builds (Brian)
>> Other issues and status (any and all)
>>
>> -- Michelle
>>
Re: JDO TCK Conference Call Friday, April 29, 9 am PST
Posted by Brian Topping <to...@codehaus.org>.
Hi gang,
I'm not going to be making it today, been having significant issues
getting anything done this week and need to spend the day tomorrow at
hospital(s) for family members. I'll be trying to get my list taken
care of this weekend though.
best, Brian
Michelle Caisse wrote:
> Hi,
>
> We will have our regular meeting Friday (April 29) at 9 am PST to
> discuss JDO TCK issues and status.
>
> Dial-in numbers are:
>
> 866 230-6968 294-0479#
> International: +1 865 544-7856
>
> Agenda:
>
> XML Schema (Brian T - specifics on orm dtd issues, Craig - dtd issues
> fixed?)
> JDO API release on ibiblio (Brian T, Craig)
> Detached objects (Matthew)
> JIRA/Apache accounts( all)
> OutOfMemoryError (Michelle)
> Apache nightly builds (Brian)
> Other issues and status (any and all)
>
> -- Michelle
>
Re: TestRunner status
Posted by Michelle Caisse <Mi...@Sun.COM>.
Michael,
Thanks for your comments. My responses are inline.
Michael Bouschen wrote:
> Hi Michelle,
>
> this looks very good!
>
> I have some minor questions/remarks below ...
>
>
>> TestRunner is a project to automate running the TCK for all
>> databases, identity types, security settings, schemas, mappings, and
>> test cases with a single maven invocation. We discussed doing the
>> hard stuff either in maven or with an extended java/JUnit
>> TestRunner. It seems possible to do it in maven. Below is a working
>> outline of a maven goal that loops through the various parameters and
>> repeatedly executes a test run, followed by the results generated by
>> this goal.
>>
>> _______________
>> maven.xml:
>> _______________
>>
>> <project default="default"
>> xmlns:j="jelly:core"
>> xmlns:ant="jelly:ant"
>> xmlns:maven="jelly:maven"
>> xmlns:u="jelly:util"
>> >
>> ...
>> <!-- ================== -->
>> <!-- Running test cases -->
>> <!-- ================== -->
>>
>> <preGoal name="runallcfgs.jdori">
>>
>> <!-- Install schema for each database -->
>> <u:properties file="${basedir}/test/conf/db.list"/>
>> <u:tokenize var="jdo.tck.dblist" delim=" ">
>> ${jdo.tck.dblist}
>> </u:tokenize>
>
>
> Question: The property jdo.tck.dblist is a string of database names
> separated by space and the tokenize tag converts this string into a
> collection of strings (one string per database) such that you can use
> the forEach tag to iterate it. Am I right?
>
> The forEach tag allows to directly iterate a comma separated String (see
> http://jakarta.apache.org/commons/jelly/tags.html#core:forEach). So if
> we define jdo.tck.dblist as comma separated string we do not need the
> tokenize:
> jdo.tck.dblist=derby, mysql, oracle
I agree that this ought to work, but I have not been able to make it
work. I saw sample code somewhere that used the tokenize tag for a
similar situation, so perhaps it is necessary. I did some experiments,
entering the databases as a comma-delimited list and running with and
without tokenization. Echoing the property before and after
tokenization, I get:
[echo] jdo.tck.dblist (before tokenization) = derby,mysql,oracle
[echo] jdo.tck.dblist (after tokenization) = [derby, mysql, oracle]
Entering the list in the file exactly like the tokenization output still
did not result in forEach recognizing individual tokens. For everything
I tried, it treats the entire list as one item.
>
>> <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
>> <attainGoal name="databaseStub"/>
>> </j:forEach>
>>
>> <!-- Enhance and build jar file for each identity type -->
>> <u:properties file="${basedir}/test/conf/identity.list"/>
>> <u:tokenize var="jdo.tck.idlist" delim=" ">
>> ${jdo.tck.idlist}
>> </u:tokenize>
>> <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
>> <attainGoal name="enhanceStub"/>
>> </j:forEach>
>>
>> </preGoal>
>>
>> <goal name="runallcfgs.jdori" prereqs="java:compile,
>> testrunner.set, copyprops">
>>
>> <!-- Run tests for all databases, identity types, and
>> configurations -->
>> <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
>> <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
>> <u:properties
>> file="${basedir}/test/conf/configurations.list"/>
>
>
> Is there any reason to load the configurations properties here instead
> of doing this in the preGoal along with the other properties files? I
> think having the <u:properties> tag as part of the inner loop means
> the file is loaded multiple times. Or does the file
> configurations.list refer any properties that are changed in the loops?
Good point. I pulled this out and put it in the preGoal.
-- Michelle
>
> Regards Michael
>
>> <u:tokenize var="jdo.tck.cfglist" delim=" ">
>> ${jdo.tck.cfglist}
>> </u:tokenize>
>> <j:forEach var="jdo.tck.cfg" items="${jdo.tck.cfglist}">
>> <!-- get jdo.tck.classes (list of testclasses),
>> jdo.tck.testdata, jdo.tck.mapping -->
>> <u:properties
>> file="${basedir}/test/conf/${jdo.tck.cfg}"/>
>> <attainGoal name="runtckStub"/>
>> </j:forEach>
>> </j:forEach>
>> </j:forEach>
>>
>> </goal>
>>
>> <goal name="databaseStub">
>> <echo>Install schema in ${jdo.tck.db}</echo>
>> </goal>
>>
>> <goal name="enhanceStub">
>> <echo>Enhance classes for ${jdo.tck.id}</echo>
>> </goal>
>>
>> <goal name="runtckStub">
>> <echo>Run tck using database ${jdo.tck.db},
>> identity type ${jdo.tck.id},
>> configuration ${jdo.tck.cfg}
>> </echo>
>> <echo>Run test classes ${jdo.tck.classes}
>> with test data ${jdo.tck.testdata}
>> and mapping/schema files ${jdo.tck.mapping}
>> </echo>
>> </goal>
>>
>> _______________
>> Results:
>> _______________
>> $ maven -o runallcfgs.jdori
>> __ __
>> | \/ |__ _Apache__ ___
>> | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
>> |_| |_\__,_|\_/\___|_||_| v. 1.0.2
>>
>> You are working offline so the build will continue, but
>> jpox-SNAPSHOT.jar may be out of date!
>> You are working offline so the build will continue, but
>> jdo2-api-SNAPSHOT.jar may be out of date!
>> You are working offline so the build will continue, but
>> jpox-enhancer-SNAPSHOT.jar may be out of date!
>> build:start:
>>
>> java:prepare-filesystem:
>>
>> java:compile:
>> [echo] Compiling to c:\svn5\jdo\trunk\tck20/target/classes
>>
>> testrunner.set:
>>
>> copyprops:
>>
>> runallcfgs.jdori:
>> databaseStub:
>> [echo] Install schema in derby
>>
>> databaseStub:
>> [echo] Install schema in mysql
>>
>> databaseStub:
>> [echo] Install schema in oracle
>>
>> enhanceStub:
>> [echo] Enhance classes for application
>>
>> enhanceStub:
>> [echo] Enhance classes for datastore
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type application,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type application,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type application,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type datastore,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
>> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jd
>> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo
>> .tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type datastore,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database derby,
>> identity type datastore,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type application,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
>> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jd
>> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo
>> .tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type application,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type application,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type datastore,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type datastore,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database mysql,
>> identity type datastore,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type application,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type application,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type application,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type datastore,
>> configuration cfg1.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
>> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
>> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>>
>> with test data
>> and mapping/schema files
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type datastore,
>> configuration cfg2.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company.orm
>>
>>
>> runtckStub:
>> [echo] Run tck using database oracle,
>> identity type datastore,
>> configuration cfg3.conf
>>
>> [echo] Run test classes
>> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
>> with test data org.apache.jdo.tck.pc.company.company2.xml
>> and mapping/schema files
>> org.apache.jdo.tck.pc.company.company2.orm
>>
>> BUILD SUCCESSFUL
>>
>> -- Michelle
>
>
>
Re: TestRunner status
Posted by Michael Bouschen <mb...@spree.de>.
Hi Michelle,
this looks very good!
I have some minor questions/remarks below ...
> TestRunner is a project to automate running the TCK for all databases,
> identity types, security settings, schemas, mappings, and test cases
> with a single maven invocation. We discussed doing the hard stuff
> either in maven or with an extended java/JUnit TestRunner. It seems
> possible to do it in maven. Below is a working outline of a maven goal
> that loops through the various parameters and repeatedly executes a test
> run, followed by the results generated by this goal.
>
> _______________
> maven.xml:
> _______________
>
> <project default="default"
> xmlns:j="jelly:core"
> xmlns:ant="jelly:ant"
> xmlns:maven="jelly:maven"
> xmlns:u="jelly:util"
> >
> ...
> <!-- ================== -->
> <!-- Running test cases -->
> <!-- ================== -->
>
> <preGoal name="runallcfgs.jdori">
>
> <!-- Install schema for each database -->
> <u:properties file="${basedir}/test/conf/db.list"/>
> <u:tokenize var="jdo.tck.dblist" delim=" ">
> ${jdo.tck.dblist}
> </u:tokenize>
Question: The property jdo.tck.dblist is a string of database names
separated by space and the tokenize tag converts this string into a
collection of strings (one string per database) such that you can use
the forEach tag to iterate it. Am I right?
The forEach tag allows to directly iterate a comma separated String (see
http://jakarta.apache.org/commons/jelly/tags.html#core:forEach). So if
we define jdo.tck.dblist as comma separated string we do not need the
tokenize:
jdo.tck.dblist=derby, mysql, oracle
> <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
> <attainGoal name="databaseStub"/>
> </j:forEach>
>
> <!-- Enhance and build jar file for each identity type -->
> <u:properties file="${basedir}/test/conf/identity.list"/>
> <u:tokenize var="jdo.tck.idlist" delim=" ">
> ${jdo.tck.idlist}
> </u:tokenize>
> <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
> <attainGoal name="enhanceStub"/>
> </j:forEach>
>
> </preGoal>
>
> <goal name="runallcfgs.jdori" prereqs="java:compile, testrunner.set,
> copyprops">
>
> <!-- Run tests for all databases, identity types, and
> configurations -->
> <j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
> <j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
> <u:properties
> file="${basedir}/test/conf/configurations.list"/>
Is there any reason to load the configurations properties here instead
of doing this in the preGoal along with the other properties files? I
think having the <u:properties> tag as part of the inner loop means the
file is loaded multiple times. Or does the file configurations.list
refer any properties that are changed in the loops?
Regards Michael
> <u:tokenize var="jdo.tck.cfglist" delim=" ">
> ${jdo.tck.cfglist}
> </u:tokenize>
> <j:forEach var="jdo.tck.cfg" items="${jdo.tck.cfglist}">
> <!-- get jdo.tck.classes (list of testclasses),
> jdo.tck.testdata, jdo.tck.mapping -->
> <u:properties
> file="${basedir}/test/conf/${jdo.tck.cfg}"/>
> <attainGoal name="runtckStub"/>
> </j:forEach>
> </j:forEach>
> </j:forEach>
>
> </goal>
>
> <goal name="databaseStub">
> <echo>Install schema in ${jdo.tck.db}</echo>
> </goal>
>
> <goal name="enhanceStub">
> <echo>Enhance classes for ${jdo.tck.id}</echo>
> </goal>
>
> <goal name="runtckStub">
> <echo>Run tck using database ${jdo.tck.db},
> identity type ${jdo.tck.id},
> configuration ${jdo.tck.cfg}
> </echo>
> <echo>Run test classes ${jdo.tck.classes}
> with test data ${jdo.tck.testdata}
> and mapping/schema files ${jdo.tck.mapping}
> </echo>
> </goal>
>
> _______________
> Results:
> _______________
> $ maven -o runallcfgs.jdori
> __ __
> | \/ |__ _Apache__ ___
> | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
> |_| |_\__,_|\_/\___|_||_| v. 1.0.2
>
> You are working offline so the build will continue, but
> jpox-SNAPSHOT.jar may be out of date!
> You are working offline so the build will continue, but
> jdo2-api-SNAPSHOT.jar may be out of date!
> You are working offline so the build will continue, but
> jpox-enhancer-SNAPSHOT.jar may be out of date!
> build:start:
>
> java:prepare-filesystem:
>
> java:compile:
> [echo] Compiling to c:\svn5\jdo\trunk\tck20/target/classes
>
> testrunner.set:
>
> copyprops:
>
> runallcfgs.jdori:
> databaseStub:
> [echo] Install schema in derby
>
> databaseStub:
> [echo] Install schema in mysql
>
> databaseStub:
> [echo] Install schema in oracle
>
> enhanceStub:
> [echo] Enhance classes for application
>
> enhanceStub:
> [echo] Enhance classes for datastore
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type application,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type application,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type application,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type datastore,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jd
> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo
> .tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type datastore,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database derby,
> identity type datastore,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type application,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
> le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jd
> o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo
> .tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type application,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type application,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type datastore,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type datastore,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database mysql,
> identity type datastore,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type application,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type application,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type application,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type datastore,
> configuration cfg1.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
> org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
> org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
>
> with test data
> and mapping/schema files
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type datastore,
> configuration cfg2.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company.orm
>
>
> runtckStub:
> [echo] Run tck using database oracle,
> identity type datastore,
> configuration cfg3.conf
>
> [echo] Run test classes
> org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
> with test data org.apache.jdo.tck.pc.company.company2.xml
> and mapping/schema files
> org.apache.jdo.tck.pc.company.company2.orm
>
> BUILD SUCCESSFUL
>
> -- Michelle
--
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
TestRunner status
Posted by Michelle Caisse <Mi...@Sun.COM>.
TestRunner is a project to automate running the TCK for all databases,
identity types, security settings, schemas, mappings, and test cases
with a single maven invocation. We discussed doing the hard stuff
either in maven or with an extended java/JUnit TestRunner. It seems
possible to do it in maven. Below is a working outline of a maven goal
that loops through the various parameters and repeatedly executes a test
run, followed by the results generated by this goal.
_______________
maven.xml:
_______________
<project default="default"
xmlns:j="jelly:core"
xmlns:ant="jelly:ant"
xmlns:maven="jelly:maven"
xmlns:u="jelly:util"
>
...
<!-- ================== -->
<!-- Running test cases -->
<!-- ================== -->
<preGoal name="runallcfgs.jdori">
<!-- Install schema for each database -->
<u:properties file="${basedir}/test/conf/db.list"/>
<u:tokenize var="jdo.tck.dblist" delim=" ">
${jdo.tck.dblist}
</u:tokenize>
<j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
<attainGoal name="databaseStub"/>
</j:forEach>
<!-- Enhance and build jar file for each identity type -->
<u:properties file="${basedir}/test/conf/identity.list"/>
<u:tokenize var="jdo.tck.idlist" delim=" ">
${jdo.tck.idlist}
</u:tokenize>
<j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
<attainGoal name="enhanceStub"/>
</j:forEach>
</preGoal>
<goal name="runallcfgs.jdori" prereqs="java:compile, testrunner.set,
copyprops">
<!-- Run tests for all databases, identity types, and
configurations -->
<j:forEach var="jdo.tck.db" items="${jdo.tck.dblist}">
<j:forEach var="jdo.tck.id" items="${jdo.tck.idlist}">
<u:properties
file="${basedir}/test/conf/configurations.list"/>
<u:tokenize var="jdo.tck.cfglist" delim=" ">
${jdo.tck.cfglist}
</u:tokenize>
<j:forEach var="jdo.tck.cfg" items="${jdo.tck.cfglist}">
<!-- get jdo.tck.classes (list of testclasses),
jdo.tck.testdata, jdo.tck.mapping -->
<u:properties
file="${basedir}/test/conf/${jdo.tck.cfg}"/>
<attainGoal name="runtckStub"/>
</j:forEach>
</j:forEach>
</j:forEach>
</goal>
<goal name="databaseStub">
<echo>Install schema in ${jdo.tck.db}</echo>
</goal>
<goal name="enhanceStub">
<echo>Enhance classes for ${jdo.tck.id}</echo>
</goal>
<goal name="runtckStub">
<echo>Run tck using database ${jdo.tck.db},
identity type ${jdo.tck.id},
configuration ${jdo.tck.cfg}
</echo>
<echo>Run test classes ${jdo.tck.classes}
with test data ${jdo.tck.testdata}
and mapping/schema files ${jdo.tck.mapping}
</echo>
</goal>
_______________
Results:
_______________
$ maven -o runallcfgs.jdori
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0.2
You are working offline so the build will continue, but
jpox-SNAPSHOT.jar may be out of date!
You are working offline so the build will continue, but
jdo2-api-SNAPSHOT.jar may be out of date!
You are working offline so the build will continue, but
jpox-enhancer-SNAPSHOT.jar may be out of date!
build:start:
java:prepare-filesystem:
java:compile:
[echo] Compiling to c:\svn5\jdo\trunk\tck20/target/classes
testrunner.set:
copyprops:
runallcfgs.jdori:
databaseStub:
[echo] Install schema in derby
databaseStub:
[echo] Install schema in mysql
databaseStub:
[echo] Install schema in oracle
enhanceStub:
[echo] Enhance classes for application
enhanceStub:
[echo] Enhance classes for datastore
runtckStub:
[echo] Run tck using database derby,
identity type application,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database derby,
identity type application,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database derby,
identity type application,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
runtckStub:
[echo] Run tck using database derby,
identity type datastore,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jd
o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo
.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database derby,
identity type datastore,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database derby,
identity type datastore,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
runtckStub:
[echo] Run tck using database mysql,
identity type application,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapab
le org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jd
o.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo
.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database mysql,
identity type application,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database mysql,
identity type application,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
runtckStub:
[echo] Run tck using database mysql,
identity type datastore,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database mysql,
identity type datastore,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database mysql,
identity type datastore,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
runtckStub:
[echo] Run tck using database oracle,
identity type application,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database oracle,
identity type application,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database oracle,
identity type application,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
runtckStub:
[echo] Run tck using database oracle,
identity type datastore,
configuration cfg1.conf
[echo] Run test classes
org.apache.jdo.tck.api.jdohelper.GetObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetObjectIdNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetPersistenceManager
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForNull
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerForTransient
org.apache.jdo.tck.api.jdohelper.GetPersistenceManagerNotPersistenceCapable
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectId
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForNull
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdForTransient
org.apache.jdo.tck.api.jdohelper.GetTransactionalObjectIdNotPersistenceCapable
with test data
and mapping/schema files
runtckStub:
[echo] Run tck using database oracle,
identity type datastore,
configuration cfg2.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company.orm
runtckStub:
[echo] Run tck using database oracle,
identity type datastore,
configuration cfg3.conf
[echo] Run test classes
org.apache.jdo.tck.mapping.CompanyModelCompletenessTest
with test data org.apache.jdo.tck.pc.company.company2.xml
and mapping/schema files
org.apache.jdo.tck.pc.company.company2.orm
BUILD SUCCESSFUL
-- Michelle
Re: JDO TCK Conference Call Friday, May 20, 9 am PST
Posted by Craig Russell <Cr...@Sun.COM>.
Attendees: Michelle Caisse, Michael Bouschen, Martin Zaun, Craig Russell
Agenda:
1. Test status (Michelle) 4 types of errors that cause most of the
problems. Cleanup problem JDO-48, others might be JPOX issues.
Forwarded to jdo-dev alias.
AI: JPOX developers please respond to email.
Michelle fixed a test case bug that now due to cleanup issues causes
more tests to fail. One step forward, 30 steps back. Oh well.
2. Test cleanup fix (Michael W.) JDO-48 Michael W sent proposal and
looks perfect according to Michelle. The fix is in Michael's workspace
but we need a bit more review and update some test cases before
checking in.
3. What is test/conf/JDOTCKTestCases.list for? (Michael B.) This used
to be the default list of test cases. But now, allTests.list includes
all test cases. When we have a new TestRunner implementation, this will
be removed.
AI: Michelle ask the interested experts whether the GUI part is really
needed.
4. Detached objects (Matthew) no change.
5. Build dependency on cvs (Geoff)
AI: Michael will post the btree mdr .zip sources on the JDO Wiki in
case of problems downloading it from Netbeans. And put a note into
README.txt.
6. Apache accounts for Matthew and Eric (Craig) Bugged Geir again.
AI: Craig will bug him again.
7. XML Schema (Brian T) no change.
8. JDO API release on ibiblio (Brian T) no change.
Other issues and status (any and all)
9. How to get automatic notification from JIRA when a new issue is
filed?
AI: Craig
10. Can test cases rely on JDOHelper for state interrogation of
non-binary-compatibility classes? Yes, but the JDOImplHelper class has
not implemented the functionality yet.
AI: Craig file JIRA bug and fix it.
11. New TestRunner
AI: Michelle will provide an update next week.
Status of AI's from weeks past:
12. Almost done with re-factoring effort, ready to check in. New
packages core20, enhancer20, runtime20, query20, fostore20. Michael
will check these into the repository.
13. We need a way to build the JCP distribution.
AI: Craig to define the JCP distributions and see if maven can help.
[April 15] AI Brian Topping will update the wiki to tell how to access
our releases area.
[April 15] AI Brian Topping will do the maven goal for creating and
uploading the snapshots. He will create a directory parallel to trunk
called "releases" and put the snapshots there.
[April 15] AI Matthew will create a directory in the
tck.api.persistencemanager called detach in which he will have complete
freedom to implement the assertions in the detach section of the
specification.
[April 22] AI Craig will resolve what happens if an application
identity field is changed while the object is detached.
[April 22] AI Craig will resolve the serialization contract for a
Detachable class so that implementations interoperate.
[May 13] AI Brian Topping will implement pushing SNAPSHOT builds of the
project to ibiblio.
[May 13] AI Craig ask Geir where the committer badges are for Matthew,
Erik, and Michael Watsek.
[May 13] AI Brian Topping will arrange for automated nightly builds.
[May 13] AI Martin Zaun will investigate JSR 294 (Java 5) to see impact
on enhancer.
[May 13] AI Geoff try to get tck20 to run with JDOMax.
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
Re: JDO TCK Conference Call Friday, May 20, 9 am PST
Posted by Michael Watzek <mw...@spree.de>.
Hi Michelle,
I cannot join the meeting today. This is my status:
- Finished up with ri11 break out. Michael will check in new projects:
core20, enhancer20, runtime20, query20, fostore20. fostore20 contains
the testsuite. 2 Tests are contained in enhancer20.
- Started work on JDO-48 (http://issues.apache.org/jira/browse/JDO-48).
FYI: I'll have a day off on Monday.
Regards,
Michael
> Hi,
>
> We will have our regular meeting Friday, May 20 at 9 am PST to discuss
> JDO TCK issues and status.
>
> Dial-in numbers are:
>
> 866 230-6968 294-0479#
> International: +1 865 544-7856
>
> Agenda:
>
> Test status (Michelle)
> Test cleanup fix (Michael W.)
> What is test/conf/JDOTCKTestCases.list for? (Michael B.)
> Detached objects (Matthew)
> Build dependency on cvs (Geoff)
> Apache accounts for Matthew and Eric (Craig)
> XML Schema (Brian T)
> JDO API release on ibiblio (Brian T)
> Other issues and status (any and all)
>
> -- Michelle
--
-------------------------------------------------------------------
Michael Watzek Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de Buelowstr. 66
Tel.: ++49/30/235 520 36 10783 Berlin - Germany
Fax.: ++49/30/217 520 12 http://www.spree.de/
-------------------------------------------------------------------
GUI test runner needed?
Posted by Michelle Caisse <Mi...@Sun.COM>.
All,
Today the TCK supports both a command line JUnit test runner and a GUI
test runner. Does anyone see a need for us to continue to support the GUI?
Thanks,
Michelle
Re: Question on TCK11
Posted by Geoff hendrey <ge...@yahoo.com>.
The test in question used DatastoreIdentity.
you said:
"The classes in question have a set of fields that
uniquely form an *application identity*" and I'm just
saying no, they don't form an *application identity*,
because this test doesn't use application identity. It
uses Datastore Identity.
Ho hum, I guess I'm just grumpy because I didn't
expect the Apache TCK to be so different from the Sun
TCK.
-geoff
--- Craig Russell <Cr...@Sun.COM> wrote:
> Hi Geoff,
>
> It sounds like you are confusing application
> equality with JDO
> identity, which are two separate concepts.
>
> JVM has identity that you test with a == b.
>
> Applications have equality that you test with
> a.equals(b).
>
> JDO has identity that you test with
> a.getObjectId().equals(b.getObjectId()).
>
> Three different concepts.
>
> Craig
>
> On May 21, 2005, at 6:37 PM, Geoff hendrey wrote:
>
> >
> >> The classes in question have a set of fields that
> >> uniquely form an
> >> application identity, and hashCode and equals use
> >> these fields. I don't
> >> see the issue.
> >
> > DatastoreIdentity is used, so no, they don't form
> an
> > application identity.
> >
> > -geoff
> >
> >
> >
> >
> >
> >
> >
> >
> > Discover Yahoo!
> > Find restaurants, movies, travel and more fun for
> the weekend. Check
> > it out!
> > http://discover.yahoo.com/weekend.html
> >
> >
> Craig Russell
> Architect, Sun Java Enterprise System
> http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
Discover Yahoo!
Use Yahoo! to plan a weekend, have fun online and more. Check it out!
http://discover.yahoo.com/
Re: Question on TCK11
Posted by Craig Russell <Cr...@Sun.COM>.
Hi Geoff,
It sounds like you are confusing application equality with JDO
identity, which are two separate concepts.
JVM has identity that you test with a == b.
Applications have equality that you test with a.equals(b).
JDO has identity that you test with
a.getObjectId().equals(b.getObjectId()).
Three different concepts.
Craig
On May 21, 2005, at 6:37 PM, Geoff hendrey wrote:
>
>> The classes in question have a set of fields that
>> uniquely form an
>> application identity, and hashCode and equals use
>> these fields. I don't
>> see the issue.
>
> DatastoreIdentity is used, so no, they don't form an
> application identity.
>
> -geoff
>
>
>
>
>
>
>
>
> Discover Yahoo!
> Find restaurants, movies, travel and more fun for the weekend. Check
> it out!
> http://discover.yahoo.com/weekend.html
>
>
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
Re: Question on TCK11
Posted by Geoff hendrey <ge...@yahoo.com>.
> The classes in question have a set of fields that
> uniquely form an
> application identity, and hashCode and equals use
> these fields. I don't
> see the issue.
DatastoreIdentity is used, so no, they don't form an
application identity.
-geoff
Discover Yahoo!
Find restaurants, movies, travel and more fun for the weekend. Check it out!
http://discover.yahoo.com/weekend.html
Re: Question on TCK11
Posted by Craig Russell <Cr...@Sun.COM>.
Hi Geoff,
On May 21, 2005, at 12:53 PM, Geoff hendrey wrote:
> Department.hashCode method is using a persistent field
> to compute the value of the hashcode, in TCK11. Note
> that in the Sun version of the TCK, which JDOMax
> passes, hashCode is NOT overidden for Department.
>
> I think it is wrong to override hashCode and equals
> for any class using datastore identity.
The decision to override hashCode and equals belongs to the
application, not to the JDO implementation. These methods implement the
application's notion of equality, which as is well-described in the JDO
specification, is different from both identity (the JVM's way of
distinguishing whether two instances are the same) and JDO identity.
That's why we have JDO identity.
> This was the
> subject of 35 or so emails on the experts group, and
> this was the position espoused by Craig.
>
> Craig laid down the law:
> "If you don't have a set of fields that uniquely form
> an application identity, then you should not implement
> equals. You *should* delegate to Object.equals"
The classes in question have a set of fields that uniquely form an
application identity, and hashCode and equals use these fields. I don't
see the issue.
>
> Please let me know if an implementation is expected to
> handle cases when the user overides equals and
> hashCode for datastore identity?
Yes. The three forms identity, equality, and JDO identity are given
equal weight in the Java specification, the java.util classes, and the
JDO specification. Identity belongs to the VM; equality belongs to the
application; JDO identity belongs to the implementation.
Craig
> Certainly, JDOMax
> does NOT, and is failing a good bit of the Apache
> TCK11 because of it!
>
> -geoff
>
>
>
> __________________________________
> Yahoo! Mail Mobile
> Take Yahoo! Mail with you! Check email on your mobile phone.
> http://mobile.yahoo.com/learn/mail
>
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
Question on TCK11
Posted by Geoff hendrey <ge...@yahoo.com>.
Department.hashCode method is using a persistent field
to compute the value of the hashcode, in TCK11. Note
that in the Sun version of the TCK, which JDOMax
passes, hashCode is NOT overidden for Department.
I think it is wrong to override hashCode and equals
for any class using datastore identity. This was the
subject of 35 or so emails on the experts group, and
this was the position espoused by Craig.
Craig laid down the law:
"If you don't have a set of fields that uniquely form
an application identity, then you should not implement
equals. You *should* delegate to Object.equals"
Please let me know if an implementation is expected to
handle cases when the user overides equals and
hashCode for datastore identity? Certainly, JDOMax
does NOT, and is failing a good bit of the Apache
TCK11 because of it!
-geoff
__________________________________
Yahoo! Mail Mobile
Take Yahoo! Mail with you! Check email on your mobile phone.
http://mobile.yahoo.com/learn/mail
ready to commit to JDO
Posted by Martin Zaun <Ma...@Sun.COM>.
Craig, Mathew,
I've updated the sections 4.Tools and 5.Participation on the JDO wiki
http://wiki.apache.org/jdo/
for information on the setup steps that I was missing.
For feedback from the newcomer perspective: the biggest issue, I think,
is that it's hard to find the JDO WiKi page !
When I started on the setup steps, I hadn't saved the JDO WiKi URL and
could barely find it again:
- searching for 'jdo' from http://wiki.apache.org doesn't find it !
- googling for 'apache jdo' finds it on the second search-result page
with http://db.apache.org/ojb/ found first
- searching for 'jdo' from http://www.apache.org doesn't find anything
- searching for 'jdo' from http://incubator.apache.org finds some
geronimo and derby pages but not the wiki jdo
Martin
Re: JDO TCK Conference Call Friday, May 20, 9 am PST
Posted by Geoff hendrey <ge...@yahoo.com>.
Unfortunately I can't join in tomorrow.
--- Michelle Caisse <mi...@Sun.COM> wrote:
> Hi,
>
> We will have our regular meeting Friday, May 20 at 9
> am PST to discuss
> JDO TCK issues and status.
>
> Dial-in numbers are:
>
> 866 230-6968 294-0479#
> International: +1 865 544-7856
>
> Agenda:
>
> Test status (Michelle)
> Test cleanup fix (Michael W.)
> What is test/conf/JDOTCKTestCases.list for? (Michael
> B.)
> Detached objects (Matthew)
> Build dependency on cvs (Geoff)
> Apache accounts for Matthew and Eric (Craig)
> XML Schema (Brian T)
> JDO API release on ibiblio (Brian T)
> Other issues and status (any and all)
>
> -- Michelle
>
Discover Yahoo!
Get on-the-go sports scores, stock quotes, news and more. Check it out!
http://discover.yahoo.com/mobile.html
Re: JDO TCK Conference Call Friday, May 20, 9 am PST
Posted by Michelle Caisse <Mi...@Sun.COM>.
Hi,
We will have our regular meeting Friday, May 20 at 9 am PST to discuss
JDO TCK issues and status.
Dial-in numbers are:
866 230-6968 294-0479#
International: +1 865 544-7856
Agenda:
Test status (Michelle)
Test cleanup fix (Michael W.)
What is test/conf/JDOTCKTestCases.list for? (Michael B.)
Detached objects (Matthew)
Build dependency on cvs (Geoff)
Apache accounts for Matthew and Eric (Craig)
XML Schema (Brian T)
JDO API release on ibiblio (Brian T)
Other issues and status (any and all)
-- Michelle