Pages

JPA, and the role of compliance

Friday, April 16, 2010
For some time we've been trying to get our hands on the JPA2 TCK (JSR317). This is a suite of tests that is supposed to define if your JPA implementation is "compliant". JPA (1, 2) are developed in private (secret) by the JCP. You can try to get on their "Expert Group" but since JPA1 did not allow in "just anybody" (and people were hand-picked in those days), there seems little point in participating in that.

To actually get your hands on the "TCK" for any JSR you need to sign some form and send it to Sun/Oracle by snail mail. Since I sent one of these forms in (for the JPA1 TCK) back in 2007 then it really ought not to be necessary one would think. Well that's what we were advised by SUN/Oracle also (after a wait of a month and half). So here we are more than 2 months on and still no TCK. Not even a sniff of one.


Why is this TCK so secret ?
This seems a reasonable question. What is so sensitive in it that it shouldn't be open to everyone ? After all, with an open TCK, anybody would be able to actually test the implementation of their choice and verify if it is indeed compliant. They would also be able to view the testcases and contribute new ones that were missed in the test suite to cover other functionality. Obviously not everyone would want to download it and check people's claims, but then some would and it would hold people's claims up for review, unlike now. Really, why do I have to sign an NDA just to see it ? and why can't I publish the results in full on our website ?


Why does it take so long ?
Now granted SUN is merging into Oracle, but really 2+ months doesn't really seem too efficient. Why is the process manual, snail-mail driven ? After all, this is something electronic at the end of the day, so you would have expected that if people really have to apply for something then there would be a page on which to request it, and it would forward the infos to some team who approve or otherwise. Is this something typical of US organisations in general, or just Oracle?


Why can other implementations claim compliance when we can't even get a chance to verify it?
Really does say a lot about the corporate-driven JCP and politics. The JCP is inefficient, secretive, and doesn't present a level playing field for all.



PS1. When I tried to get the JPA1 TCK back in 2007 it took 3 months of continual emailing before I finally got my hands on it. That was when they weren't merging with anyone else, so seems to be fairly typical of the wasteful process they have.

PS2. JDO obviously has an open TCK, Apache2 licensed, available for all to download and contribute to. You don't need to sign NDA's just to see it.

Update (22nd June 2010) : Now more than 4 and a half months have passed since the original request for the JPA2 TCK. Still nothing.

So do you think Oracle is deliberately delaying this ? or is it just inefficient and disorganised ? Answers on a postcard please. The point that is becoming clearer is that JPA "compliance" is not worth the effort and DataNucleus releases will go forward claiming compliance since the JCP is preventing us from participating in this little game of theirs.

1 comment:

  1. You've probably fallen into the "Harmony" pit. That's why no version of Apache Harmony is officially "Java" compatible, Sun would never allow them to license and use the TCK.

    ReplyDelete