Thoughts on the Apache J2SE "Harmony" Project
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 and the associated
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.
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
The licensing rules for J2SE 5.0 were carefully designed to
allow independent, compatible open-source implementations of the
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
and we are welcoming contributions into that work. So I
encourage people to review and contribute into that project too!