InfoQ

News

IcedTea: The First 100% Compliant Open-Source Java

Posted by R.J. Lorimer on Jun 21, 2008 03:50 PM

Community
Java
Topics
Community ,
Licensing ,
Governance ,
Open Source
Tags
Java SE ,
GNU
This week it was announced that the RedHat-initiated IcedTea project, along with OpenJDK, has reached 100% compliance with the Java Test Compatibility Kit (TCK), officially becoming the first completely open-source (GPL-licensed) Java implementation to pass the TCK.
This week the IcedTea Project reached an important milestone - The latest OpenJDK binary included in Fedora 9 (x86 and x86_64) passes the rigorous Java Test Compatibility Kit (TCK). This means that it provides all the required Java APIs and behaves like any other Java SE 6 implementation - in keeping with the portability goal of the Java platform.
Passing the TCK is generally considered a significant effort:
The Java TCK is a complex suite of tools and documentation that verifies that Java implementations conform to the Java specification. It consists of more than 80,000 tests and over 1 million lines of code.
As discussed previously on InfoQ , the IcedTea project is able to be a 100% GPL-licensed Java implementation by utilizing OpenJDK release snapshots, and replacing the remaining 5% of propertiary components with replacements from the GNU Classpath project.
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 proprietary code 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.
Other open-source Java implementations, such as Apache Harmony, have been unable up to this point to pass the TCK, however not all of the difficulties have been related to technical issues. In April of 2007, the Apache Software Foundation sent an open letter to Sun Microsystems with the intent of solving key issues with licensing the TCK for testing against the Harmony platform; licensing issues that prevented the Harmony team from legally running the TCK in an open-source way. While Sun responded to the open letter, there has as-of-yet been no resolution of the licensing issues for the Harmony team, and they are still unable to run the TCK.

The IcedTea project is not subject to the same licensing issues as Apache Harmony, as Sun has provided a special version of the TCK license that is targeted to any Java implementation that is a derivative of OpenJDK; something that Apache Harmony cannot claim.

InfoQ will continue to report on the development of open-source Java implementations as new information becomes available.
  • This article is part of a featured topic series on Governance
Should we distribute Jython and/or JRuby with IcedTea? by Bill Burke Posted Jun 21, 2008 5:31 PM
Re: Should we distribute Jython and/or JRuby with IcedTea? by Jonas Bonér Posted Jun 22, 2008 2:33 AM
Re: Should we distribute Jython and/or JRuby with IcedTea? by Viktor Klang Posted Jun 22, 2008 6:34 AM
Re: Should we distribute Jython and/or JRuby with IcedTea? by Clinton Lee Posted Jun 22, 2008 3:12 AM
Re: Should we distribute Jython and/or JRuby with IcedTea? by Weiqi Gao Posted Jun 22, 2008 7:27 AM
Re: Should we distribute Jython and/or JRuby with IcedTea? by Dean Del Ponte Posted Jun 22, 2008 9:04 PM
Not for Profit Open Source Community TCK License Agreement by Niall P Posted Jun 24, 2008 9:17 AM
Re: Not for Profit Open Source Community TCK License Agreement by Bill Burke Posted Jun 24, 2008 6:21 PM
  1. The dev manager of Iced Tea asked me an interesting question: Should we bundle JRuby and Jython with the IcedTea download?
    Let me know...
    --
    Bill Burke
    JBoss, a division of Red Hat
    http://bill.burkecentral.com

  2. None of them, bundle Scala :-)

  3. The dev manager of Iced Tea asked me an interesting question: Should we bundle JRuby and Jython with the IcedTea download? Let me know... -- Bill Burke JBoss, a division of Red Hat http://bill.burkecentral.com
    Initially I thought that would be good, but then changed my mind to 'no' for two reasons:
    1) A developer a can't assume its there as standard (ie: the sun jdk doesn't have it),
    2) It should be very easy to install as a library anyway with just a 'yum install jruby/jython' command.
    But I suppose it does have advantages if you are using [j]ruby or [j/p]ython frameworks.

  4. Jonas, you crazy guy. ;D

  5. What benefits would bundling JRuby and Jython with IcedTea bring? And when you talk about IcedTea, do you mean the build harness only, or a complete OpenJDK packages in Fedora 9. If it is the latter, then my question is "what do you mean by \"bundle\"?" If it means when an end user installs "openjdk" by invoking the "yum install openjdk" command the system will also install JRuby and Jython after which the user cannot remove just the JRuby or Jython part by invoking "yum remove jruby" or "yum remove jython", I'd say that's a bad thing. If it means that the IcedTea team, after tackling the OpenJDK build/packaging problems, culminating in the inclusion of "openjdk" in Fedora 9, would like to do the same for JRuby and Jython, essentially allowing the newest versions of JRuby and Jython to be easily installed and removed from an end users system, I'd say that's a good thing.

  6. Groovy please!

  7. Red hat has licensed (paid for) the JDK.

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.