OpenJDK

From Wikipedia, the free encyclopedia

OpenJDK
Developed by Sun Microsystems
Latest release OpenJDK6 Build b10 / May 30, 2008
Preview release OpenJDK7 Build b27 / May 22, 2008
Written in C++ and Java
OS Cross-platform
Genre Library
License GPL+linking exception
Website http://openjdk.java.net

OpenJDK is the effort by Sun Microsystems to release a fully buildable Java Development Kit based completely on free and open source code.

Contents

[edit] History

See also: Java (Sun)#Licensing

[edit] Sun's promise and initial release

Sun announced in JavaOne 2006 that Java would become Open Source,[1] and on October 25, 2006, at the Oracle OpenWorld conference, Jonathan Schwartz said that the company was set to announce the open-sourcing of the core Java Platform within 30 to 60 days.

Sun released the Java HotSpot virtual machine and compiler as free software under the GNU General Public License on 13 November 2006, with a promise that the rest of the JDK (which includes the JRE) would be placed under the GPL by March 2007 ("except for a few components that Sun does not have the right to publish in source form under the GPL").[2]. According to Richard Stallman, this would mean an end to the Java trap.[3] Mark Shuttleworth called the initial press announcement, "A real milestone for the free software community".[4]

[edit] Release of the class library

Following their promise to release a fully buildable JDK based almost completely on free and open source code in the first half of 2007 [1], Sun released the complete source code of the Class library under GPL on May 8, 2007, except some limited parts that were licensed by Sun from 3rd parties who did not want their code to be released under an open-source license.[5]. Included in the list of encumbered parts were several major components of the Java GUI system. Sun stated that their goal was to replace the parts that remain closed with alternative implementations and make the class library completely open.[6].

[edit] Community improvements

On 2007-11-05, Red Hat announced an agreement with Sun Microsystems, signing Sun's broad contributor agreement (that covers participation in all Sun-led open source projects by all Red Hat engineers) and Sun's OpenJDK Community TCK License Agreement (That gives the company access to the test suite that determines whether a project based on openJDK complies with the Java SE 6 specification).[7]

Also on November 2007, the porters group was created on OpenJDK[8] to aid in efforts to port OpenJDK to different CPU architectures and operating systems. The BSD porting projects[2], led by Kurt Miller and Greg Lewis and the Mac OS X porting project (based on the BSD one) SoyLatte led by Landon Fuller[3] have expressed interest in joining OpenJDK via the porters group and as of January 2008 are part of the mailing list discussions. Another project pending formalization on the porters group is the Haiku Java Team, led by Bryan Varner [9].

On December 2007, Sun moved the revision control of OpenJDK from TeamWare to Mercurial, as part of the process of releasing it to open source communities. [10][11]

OpenJDK has comparatively very strict procedure of accepting code contributions from the side: every proposed contribution must be reviewed by two of Sun's engineers and have the automatic test demonstrating that feature has been fixed. This ensures the persistent high quality of the code but also means that even a trivial fix may take many weeks to approve.[12]

[edit] Inclusion in Linux distributions

As of May 2008, the Fedora 9[13][14] and Ubuntu 8.04[15] distributions were released with OpenJDK,based completely on free and open source code[16].

Debian wants all the remaining licensing issues solved before OpenJDK-6 is accepted in Debian[17]. Although the same person is managing OpenJDK-6 inclusion in Debian as in Ubuntu, Debian has stricter guidelines.

OpenJDK doesn’t pass all of the compatibility tests in the Java SE 6 JCK yet, because of the remaining encumberences. They have however been reduced to less than 1% of the source code[18] and are only necessary to build OpenJDK[19], not running it. Moreover, OpenJDK can run complex applications such as Netbeans, Eclipse, Glassfish, or JBoss.

[edit] Status

[edit] Supported JDK versions

OpenJDK was initially based only on the JDK 7.0 version of the Java platform.[20].

Since February 15, 2008, there are two separate OpenJDK projects:

  • The main OpenJDK project, which is based on the JDK 7.0 version of the Java platform,
  • The JDK 6 project, which provides an Open-source version of Java 6.0[21].

[edit] Compiler and Virtual Machine

Sun's Java compiler, javac, and HotSpot (the virtual machine), are now under a GPL license.

[edit] Class library

See also: Java Class Library

As of May 2008, the only part of the Class library that remain proprietary and closed-source (4% as of May 2007 for OpenJDK 7[22], and less than 1% as of May 2008 and OpenJDK 6[18][13]) is[23] [24]:

Since the first May 2007 release, Sun Microsystems, with the help of the community, has released as Open-source or replaced with Open-source alternatives almost all the encumbered code:

  • All the audio engine code, including the software synthetizer, has been released as Open-source[25][24]. The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called Gervill[26],
  • All cryptography classes used in the Class library have been released as Open-source[27],
  • The code that scales and rasterizes fonts has been replaced by FreeType [28][29][30]
  • The native color management system has been replaced by LittleCMS [29]. There is a pluggable layer in the JDK, so that the commercial version can use the old color management system and OpenJDK can use LittleCMS.
  • The anti-aliasing graphics rasterizer code has been replaced by the Open-sourced Pisces renderer used in the phoneME project[31] [32] [29]. This code is fully functional, but still needs some performance enhancements [33],
  • The Javascript plugin has been open-sourced (the JavaScript engine itself was open-sourced from the beginning)[34].

[edit] IcedTea

Main article: IcedTea

Because of the still encumbered components in the Class library, it is not yet possible to build OpenJDK only with free software components. In order to be able to do this before the whole class library is made free, and to be able to bundle OpenJDK in Fedora and other free Linux distributions, a project called IcedTea has been started by Red Hat. It is basically an OpenJDK/GNU Classpath hybrid that can be used to bootstrap OpenJDK using only Free Software.[35][36]

IcedTea is a software development and integration project launched by Red Hat in June 2007.[37] The goal is to make the OpenJDK software which Sun Microsystems released as free software in 2007 usable without requiring any other software that is not free software. For Red Hat, this would make it possible to add OpenJDK to the Fedora Linux distribution, as well as other distributions.

On November 05, 2007, Red Hat has signed both the Sun Contributor Agreement and the OpenJDK Community TCK License[38].One of the first benefits of this agreement is tighter alignment with the IcedTea project, which brings together Fedora and JBoss technologies in a Linux environment,[clarify] IcedTea providing Free Software alternatives for the few remaining proprietary sections in the OpenJDK project.

Fedora 9 distribution ships with OpenJDK 6 instead of IcedTea[13].

Ubuntu IcedTea was packaged for development[39].

[edit] See also

[edit] References

  1. ^ Schwartz, Jonathan (23 May 2006). Busy Week.... Sun Microsystems. Retrieved on 2007-05-09.
  2. ^ Sun Opens Java. Sun Microsystems (13 November 2006). Retrieved on 2007-05-09.
  3. ^ Stallman, Richard. Free But Shackled - The Java Trap. Retrieved on 2007-12-04.
  4. ^ Sun 'releases' Java to the world. BBC News (13 November 2006). Retrieved on 2007-05-09.
  5. ^ Open JDK is here!. Sun Microsystems (8 May 2007). Retrieved on 2007-05-09.
  6. ^ Since there's some encumbered code in the JDK, Sun stated that it will continue to use that code in commercial releases until it's replaced by fully-functional free and open-source alternatives
  7. ^ Broad contributor agreement and TCK License pave way for a fully compatible, open source Java Development Kit for Red Hat Enterprise Linux
  8. ^ Porters Group
  9. ^ New java for haiku team formed
  10. ^ James Gosling. Interview with Robert Eckstein. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. October 2006.
  11. ^ O'Hair, Kelly (2007-12-12). Mercurial OpenJDK Questions.
  12. ^ Tripp, Andy (2007-07-16). Classpath hackers frustrated with slow OpenJDK process. Retrieved on 2008-04-20.
  13. ^ a b c Wade, Karsten (2008-03-13). OpenJDK in Fedora 9!. redhatmagazine.com. Retrieved on 2008-04-05. “Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.
  14. ^ Open Source Java Technology Debuts In GNU/Linux Distributions. Sun Microsystems. Retrieved on 2008-05-02.
  15. ^ openjdk-6 in Ubuntu. Retrieved on 2008-04-19.
  16. ^ Reinhold (2008-04-24). There’s not a moment to lose!. Retrieved on 2008-04-19.
  17. ^ openjdk-6 in Debian. Retrieved on 2008-05-11.
  18. ^ a b Angel, Lillian (2008-03-13). OpenJDK to replace IcedTea in Fedora 9. Retrieved on 2008-04-05.
  19. ^ OpenJDK 6 Source Release. Retrieved on 2008-06-01.
  20. ^ Didn't you promise to open source both JDK 6 and JDK 7 last November? What happened to JDK 6?. Sun Microsystems. Retrieved on 2007-10-14. “Sun did make that promise, and we plan to keep it. But in the six months since the November 2006 announcement, it has become clear that doing this is far more complex than just changing the license and publishing the source code.
  21. ^ Darcy, John (2008-02-11). The code is coming! The code is coming!. Retrieved on 2008-02-16. “At Sun we're making final preparations for the first source release for the OpenJDK 6 project. We plan to release a tarball of the source, along with matching binary plugs, by February 15, 2008.
  22. ^ Fitzsimmons, Thomas (2007-05-18). Plans for OpenJDK. Retrieved on 2007-05-22.
  23. ^ Herron, David (2007-10-04). Plans for OpenJDK. Retrieved on 2007-10-09.
  24. ^ a b c OpenJDK 6 b10 source posted (2008-05-30). Retrieved on 2008-06-01.
  25. ^ audio-engine project page
  26. ^ Gervill - Software Synthesizer. Retrieved on 2008-06-01.
  27. ^ Crypto has been added to OpenJDK (2007-09-27). Retrieved on 2007-10-07.
  28. ^ font-scaler projectpage
  29. ^ a b c Java2D project page
  30. ^ Freetype font rasteriser (2007-08-07). Retrieved on 2007-11-24.
  31. ^ phoneme.dev.java.net/
  32. ^ graphics-rasterizer project page
  33. ^ Graham, Jim (2007-10-03). Open Source rasterizer. Sun Microsystems. Retrieved on 2007-05-09.
  34. ^ Javascript is encumbered and there is no javascript plugin support.. IcedTea (2008-03-11). Retrieved on 2008-06-01. “Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.
  35. ^ Andrew, Haley (2007-06-07). Experimental Build Repository at icedtea.classpath.org. Retrieved on 2007-06-09.
  36. ^ Mark, Wielaard (2007-06-07). Experimental Build Repository at icedtea.classpath.org. Retrieved on 2007-06-09.
  37. ^ Fitzsimmons, Thomas (2007-06-08). Credits. Retrieved on 2007-06-08.
  38. ^ Red Hat and Sun Collaborate to Advance Open Source Java Technology. Red Hat (2007-11-05). Retrieved on 2007-11-06.
  39. ^ icedtea-java7 in Ubuntu. Retrieved on 2008-04-19.

[edit] External links