Thoughts on the Apache J2SE "Harmony" ProjectGraham Hamilton
May 07, 2005
Apache have proposed a new project "Harmony" to create an open source J2SE implementation. Here are a few thoughts and comments from a Sun perspective.
Sun is a big supporter of Apache (this includes making donations of hardware and storage) and we're always very glad to see them participate in Java development. In many ways launching a J2SE project is the obvious next step in Apache's work around Java. Personally, I am very curious about how the Harmony project will work out - creating a full scale implementation of J2SE is a mammoth task, as the Sun J2SE team knows only too well. However I wish Apache success and we'll certainly be tracking this as it develops. We'll probably participate in the project at some level, although most of our efforts will continue to be focused on building Sun's reference implementation of J2SE.
Apache have been an active participant in the Java Community Process for many years and they have been a JCP Executive Committee member since June 2000. Various Apache projects have created (or are developing) compatible implementations of JCP standards. For example, the Apache Geronimo project is working to create a full compatible J2EE 1.4 implementation.
Part of the reason these Apache projects are possible is that the JCP has been working over the last few years to clarify the role of open source projects and also to improve overall transparency. For example there were changes to the intellectual property rules in JCP 2.5 specifically designed to allow open source implementations. There have also been a number of transparency improvements in JCP 2.6 to allow earlier access to specification information. In addition to those JCP updates, Sun created a scholarship program under which we have provided Apache (and other not-for-profit groups) with free access and free support for Sun's Java compatibility test suites.
Building on all this JCP work, Apache has now proposed an incubator project that is intended to eventually create a full compatible implementation of the core Java platform, J2SE. See the Harmony project proposal [ http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CCA4BEB82-3D84-457D-9531-1477DD749919@apache.org%253e ] and the associated FAQ [ http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CE3603144-2C26-4C31-896D-6CC7445A63EB@apache.org%253e ].
By the way, if you are interested in learning more about Harmony, Geir Magnusson from Apache has kindly agreed to give a talk on Harmony at JavaOne 2005 [ http://java.sun.com/javaone ].
Apache have always been a strong supporter of the Java compatibility program and I'm glad to see that they are emphasizing that commitment to compatibility as part of the Harmony project. Compatibility is one of the bedrock values of the Java community. As a community we're making a collective investment in creating and using a set of common standards on the basis that all the implementations will actually conform to the same specifications and pass the same detailed compatibility tests. This is what allows developers to create portable applications which can run in a variety of Java environments.
The licensing rules for J2SE 5.0 were carefully designed to allow independent, compatible open-source implementations of the J2SE specification. Personally, I am not entirely sure if the world really needs a second J2SE implementation, but at the same time I am also glad to see that all the effort we put into getting the rules and the licensing issues straightened out is actually proving useful!
Finally, I should point out that the spirit of openness and collaboration around JCP standards is not unique to Apache. For example, Sun has been working to become much more open and collaborative in how we develop the J2SE specification and the J2SE reference implementation. We are publishing full weekly source and binary snapshots of J2SE 6.0 ("Mustang") at mustang.dev.java.net and we are welcoming contributions into that work. So I encourage people to review and contribute into that project too!
Copyright 2005 http://weblogs.java.net/ - http://creativecommons.org/licenses/by-nc-sa/2.0/