Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News IcedTea Bridges Open-Source Gap with OpenJDK

IcedTea Bridges Open-Source Gap with OpenJDK

This item in japanese

It has been just over a year since OpenJDK, the GPL-licensed implementation of the Java platform, was officially released by Sun. Since that time, the Java community has begun re-orienting themselves around this new open-source code-base.

An article by Andrew Haley and Thomas Fitzsimmons of Red Hat discusses the original announcement of OpenJDK, and the subsequent creation of the IcedTea project:
When the complete Java source code–now called OpenJDK–was released on May 9, 2007, there were a few challenges.  Most notably, some of the code was missing. Over the years, Sun had licensed Java libraries from a variety of sources, some of which would not allow their code to be open sourced.  In order to work with this encumbered code, Sun provided some “binary plugs” that were copied into the build.  This presented a problem as Fedora’s rules don’t allow the inclusion of anything that isn’t open source.  It’s hard for us to maintain confidence in code we can’t see.
The IcedTea project was created by the GNU Classpath team along with a handful of RedHat developers due to the need to replace all of the remaining proprietary code in OpenJDK with open source implementations. GNU Classpath provides many GPL-licensed replacements of the proprietary-licensed binary plugs still found in OpenJDK, making an IcedTea build of OpenJDK more-readily available for distributions on platforms such as Redhat's Fedora Linux distribution. Fedora 9 contains functionally complete OpenJDK packages, in part due to the contributions from IcedTea.
The issue of proprietary, binary-only plugs is not the only reason that the IcedTea project was started - another is the lack of platform portability currently found in OpenJDK:
The OpenJDK that Sun released only ran on i386 and AMD-64 machines. Fedora runs on other systems, in particular those based on the PowerPC.  To solve this problem, we started an IcedTea porting project. That project produced an interpreter-only OpenJDK port for the PowerPC, based on Sun’s C++ interpreter. This later became Zero, a truly portable “zero assembler” version.  As you might expect, a pure interpreter is not as fast as the high-performance JIT (Just In Time) compilers often used in Java implementations, but we’re working on that.
The high-performance JIT that is being worked on is the 'shark' project, currently being developed by Gary Benson. Benson's goal with 'shark' is to write a completely platform-portable JIT, and has been providing regular status updates on his blog.

This past week, IcedTea6 1.2 was released - which is version 1.2 of IcedTea for OpenJDK6. Version 1.2 includes several changes from 1.1, including:
  • Updated to b09.
  • Added the the lcms library with PYCC and LINEAR_RGB ICC
  • profiles.
  • Integrated Gervill to provide midi support.
  • JTreg integrated.
  • javaws/NetX fixes:
  • improved security, namely catching Socket permissions during
  • runtime
  • implemented the remaining JNLP services api (PrintService, JNLPRandomAccessFile)
  • applet focusing bug fixed
  • sparc/sparc64 port
  • Desktop file integration.
  • Various zero fixes.
  • Sound fixes.
  • Font fixes.
  • Many bug fixes here and here.
As the open-source community has been working to adopt OpenJDK, changes have also been taking place inside OpenJDK itself to adjust to the community. Mark Reinhold, Chief Engineer of Java SE, announced the first amendment to the OpenJDK charter this past week - the amendment was needed as a deadline in the original charter has already past:

The Charter specifies that the Interim Governance Board shall be dissolved after one year of existence, in particular on 8 May 2008, i.e., three weeks ago.

We don’t yet have a Constitution, even in draft form.

Reinhold explains that work towards a constitution has been continually deferred so the OpenJDK members could focus on working with the community working to adopt the project. One of those primary community efforts is IcedTea. Reinhold also mentions that while, in theory, the current governance board doesn't meet the eventual goals of independence from Sun, in practice it has been working well up to this point.
So, rather than focus on drafting a formalized governance document we instead put our energy into working on the code and on the essential infrastructure to support collaboration upon it.
The charter has subsequently been amended to add an additional year to the deadline, and also expand the board from five members to seven.

For more information and updates on the IcedTea project, be sure to check out the IcedTea wiki. Likewise, for more information about the OpenJDK project, you can browse the primary OpenJDK website.

Rate this Article