InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

IcedTea Bridges Open-Source Gap with OpenJDK

Posted by R.J. Lorimer on Jun 01, 2008

Sections
Enterprise Architecture,
Operations & Infrastructure,
Process & Practices,
Architecture & Design,
Development
Topics
Open Source ,
Community ,
Java ,
Governance ,
Licensing
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.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.