Ever since Sun's 1.5 (or 5.0, or whetever their funny marketing division decided to call it these days) came out, I've been wondering what the actual terms of access to the compliance test suite will be.
I was pretty disappointed when it turned out to be a mostly useless 'Read only' license. Judging by non-existant mailing list traffic on Sun's jck's project mailing lists, noone bothered to take Sun up on that offer for all the obvious reasons. I guess it was meant to be as yet another useless Sun PR stunt anyway, as Sun's Chief Java 6 dude, Graham Hamilton, happily ignored all comments made by me about the TCK release on his cutsey blog on java.net. Awesome display of skill in avoiding engaging in a dialogue there, I must admit. Calvin Austin, who brought Java 1.5 to life, had a lot more style, but he doesn't work for Sun any more.
Alas, beside having a licensing division that regularly churns out funny licenses, and a marketing division that has problems refraining from applying the term 'open source' to clearly non-open souce software like JAI or ImageIO, Sun also has a something pretty cool: a TCK Scholarship for 'qualified individuals' and organisations. ObjectWeb and the Apache Software Foundation went through that scholarship dance to get the J2EE compliance test suite, and ObjectWeb's Jonas has recently passed the tests. Encouraged by those successes, and by a lot of good conversation with Javali's awesome Bruno Souza, and Sun's energetic Onno Kluyt, I have sent in my TCK scholarship application, so that we can eventually have mutual compatibility between Sun's proprietary implementation of the Java specifications and Kaffe and other GNU Classpath virtual machines and runtimes.
This is the first step. Onno has acknowledged receipt of my application from Sun's side, so it's now up to the TCK Scholarship Board to decide if the Kaffe/Classpath application is worth support. Then it will be up to Sun to propose the terms for such access.
COMPATIBILITY TESTING SCHOLARSHIP APPLICATION FORM
This form is for applications for no-cost access to TCKs for Sun-led JSRs in the Java Community Process. Please read the requirements for qualified efforts which can be found at http://java.sun.com/scholarship/.
Send the completed form and any supporting documentation to: firstname.lastname@example.org.
Section I. Identification
I.a Name of organization:
(leave blank if applying as individual)
(leave blank if applying as individual)
I.c Contact person:
The TCK Review Board requires a single point of contact for the applying organization.
I.e Email address:
I.f Phone number:
I.g Fax number:
I.h Request is for organization or for individual: Organization / Individual
Section II. Status Information
(leave blank if applying as individual)
II.a Describe the legal status of your organization.
II.b Provide a link to or describe your organization's bylaws.
II.c Provide a link to or describe your organization's decision making process.
II.d Describe the nature and source of your organization's funding.
(leave blank if applying as organization)
II.e Employment information:
- Employed by:
Student at the Universitaet des Saarlandes, Saarbruecken, Germany.
Student assistant at the Max Planck Institut fuer Informatik in Saarbruecken, Germany.
II.f Are you applying as individual contributor to a group effort: Yes / No
II.g If yes, describe group
Kaffe.org is a project implementing a free software virtual machine.
I'm one of the current leading contributors to the Kaffe.org project.
Kaffe.org cooperates with many other free software projects in its area.
It successfully acts as a melting pot for integration of various free software efforts related to the implementation of tools and libraries which are useful in the context of the java programming language.
Among the projects Kaffe developers cooperate with are
- GNU Classpath (http://www.classpath.org),
- GNU JAXP (http://www.gnu.org/software/classpathx/jaxp/jaxp.html),
- GNU Crypto (http://www.gnu.org/software/gnu-crypto),
- GCJ (http://gcc.gnu.org/java/),
- GNU regexp (http://www.cacas.org/java/gnu/regexp/),
- Kopi (http://www.dms.at/kopi/),
- Gjdoc and cp-tools (http://www.gnu.org/software/classpath/cp-tools/),
- JESSIE (http://www.nongnu.org/jessie/),
- gcjwebplugin (http://www.nongnu.org/gcjwebplugin/),
- Mauve (http://sources.redhat.com/mauve/),
- Tritonus (http://www.tritonus.org/),
- gcjx (http://sourceforge.net/projects/gcjx) and
- GNU inetlib (http://www.gnu.org/software/classpath/inetlib.html).
- Apache Gump (http://gump.apache.org/)
I am looking into collaborating with other projects implementing parts of the class libraries specified by JSR 176, including:
Kaffe.org is being developed in an open, collaborative fashion by a diverse group of core developers and contributors since 1996. All of the development communication takes place in the open on publicly accessible mailing list, and IRC channels, with daily snapshots available from cvs, ftp and through various websites.
A lot of the code in Kaffe comes from generous contributions by other free software projects, with whom I'm very pleased to have the opportunity to collaborate, sharing bug fixes and improvements.
For quality insurance the various groups collaborate on the free software Mauve test suite which contains more then 25.000 tests and various modules for testing core class library implementations, byte code verifiers, source to byte code and native code compiler tests.
Mauve also contains the Wonka visual test suite and the Jacks Compiler Killer Suite.
All tests and test results are openly shared between the various groups which use the results to improve their compatibility with each other. Mauve is distributed under the GPL.
I hope that one day it would become possible to combine the tests and results of the TCK with this larger effort to create a truly open compatibility kit, available to anyone, anywhere to freely evaluate compatibility claims.
Besides these regression and unit tests the Kaffe.org project is involved in real world application testing such as Eclipse, Jonas and the Apache Jakarta suite through Apache Gump running on Kaffe at http://brutus.apache.org/gump/kaffe/ . Kaffe.org is one of the most widely distributed environments for execution of Java applications on many GNU/Linux distributions and other free software operating systems.
Section III. Project Description
III.a Name of project:
III.b If applicable, web site or url:
III.c Description of project:
Kaffe.org is a free software project that is implementing a virtual machine, class libraries and development tools to allow execution and development of programs written in the Java programming language.
Kaffe is licensed under the GNU General Public License. Parts of it are licensed are different, GPL-compatible, free software licenses. It doesn't contain any source code from proprietary implementations.
Kaffe is a very portable, modular runtime that has been ported to more than 50 different platforms. It runs on alpha, arm, ix86, x86-64, ia64, mips, m68k, sparc, sh, s390, pa-risc, and powerpc architectures, and on operating systems ranging from GNU/Linux, NetBSD, FreeBSD, OpenBSD to RISC OS, Cygwin and Solaris.
It has several execution engines, allowing for lean and fast Just-in-Time compilation on many platforms. Its performance is in general among the best free runtimes, and is expected to improve further as improvements from various Kaffe forks are merged back in into the main tree.
For class libraries, Kaffe has chosen GNU Classpath, and work is under way to fully convert Kaffe to use GNU Classpath out of the box. GNU Classpath currently implements around two thirds of the J2SE 5.0 APIs according to the japitools comparison page at http://www.kaffe.org/~stuart/japi/htmlout/h-jdk15-classpath.html. Kaffe is now, save for two dozen classes, using GNU Classpath for its core library. It also includes code from the other projects mentioned above that implement other parts of the J2SE APIs which have not been contributed to or implemented in GNU Classpath yet.
As the number of implemented classes and methods grows steadily, it is becoming more and more important to ensure compatibility between different runtimes. So this effort would be directed at fixing the compatibility deviations in existing code, and ensuring that new code complies with the specifications.
III.d Schedule. Describe the timeline for the project, eg when is the anticipated ship date, what stage is it now (alpha, beta, early access etc):
Kaffe 1.1.5 is expected to be released in February, and following releases will follow a two month cycle. The TCK passing release would become Kaffe 2.0.
Section IV. TCK
List the JSR(s) you are requesting TCK access for. Indicate for each whether you are also requesting to receive support:
JSR 176. Yes, I'd like to receive support.
This process is new to all of us in the Kaffe community so any advice or assistance is greatly appreciated.
Section V. Additional information
Provide any additional information or links to web sites or documents that may be helpful to the Review Board in considering your application:
I hope that the work on creating a free software, fully compliant Java implementation can be conducted in the most open fashion possible, without the need to erect communication barriers between contributors that have been granted access to the TCK and those that have not been granted such access.
I intend to closely collaborate with the Bruno Souza and the Javali project (http://www.javali.org.b) as well as SouJava (http://www.soujava.org.br) on this task.
The SouJava is the largest Java user group world-wide, and it is a member of the JCP (http://www.jcp.org). Bruno Souza is the leader of the JUGS community on Java.net (http://www.java.net), the founder of SouJava, and a famous Java evangelist.
In considering your application the Scholarship Review Board may contact you with questions for clarification or additional information.
The Compatibility Testing Scholarship Review Board.
Let's see if Sun's test suite is really as good as Gosling would like me to believe.