InfoQ

News

IcedTea Bridges Open-Source Gap with OpenJDK

Posted by R.J. Lorimer on Jun 01, 2008 12:16 PM

Community
Java
Topics
Governance ,
Licensing ,
Community ,
Open Source
Tags
Java SE ,
GNU
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.
  • This article is part of a featured topic series on Governance

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.