From Wikipedia, the free encyclopedia

Jump to: navigation, search
Developed by Sun Microsystems
Latest release OpenJDK6 Build b14 / 2008-12-05; 132 days ago
Preview release OpenJDK7 Build b52 / 2009-03-26; 21 days ago
Written in C++ and Java
Operating system Cross-platform
Type Library
License GPL+linking exception

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


[edit] History

[edit] Sun's promise and initial release

Sun announced in JavaOne 2006 that Java would become open source software, [1] [2] 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").[3] According to Richard Stallman, this would mean an end to the Java trap.[4] Mark Shuttleworth called the initial press announcement, "A real milestone for the free software community".[5]

[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 a free and open-source license.[6] 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 proprietary and closed source with alternative implementations and make the class library completely open.[7]

[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 free and open source software 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).[8]

Also on November 2007, the porters group was created on OpenJDK[9] 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 [10].

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. [11][12]

OpenJDK has comparatively very strict procedure of accepting code contributions: 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.[13] However, although initially the fixes proposed by the community were committed by Sun in the codebase, September 2008 saw the first (significant) patches directly committed by a non-Sun or ex-Sun employee[14].

[edit] Inclusion in Linux distributions

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

OpenJDK did not pass all of the compatibility tests in the Java SE 6 JCK at the time, because of the remaining encumbrances. They had however been reduced to less than 1% of the source code[19] and were only necessary to build OpenJDK[20], not running it. Moreover, OpenJDK can run complex applications such as NetBeans, Eclipse, GlassFish, or JBoss.

In June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK on Fedora 9) has passed the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation[21].

On July 12, 2008, Debian accepted OpenJDK-6 in unstable[22][23], and it is now in stable[24].

Since August 2008, OpenJDK 7 is runnable on Mac OS X and other BSD distributions[25].

[edit] Status

[edit] Supported JDK versions

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

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[27].

[edit] Compiler and Virtual Machine

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

[edit] 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[28], and less than 1% as of May 2008 and OpenJDK 6[15][19]) is[29] [30] the SNMP implementation[30].

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

[edit] IcedTea

Because of the encumbered components in the Class library, it was not 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.[41][42]

IcedTea is a software development and integration project launched by Red Hat in June 2007.[43] 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[44].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,[clarification needed] 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[15].

Ubuntu IcedTea was packaged for development[45].

[edit] See also

[edit] References

  1. ^ Schwartz, Jonathan (23 May 2006). "Busy Week...". Sun Microsystems. Retrieved on 2007-05-09. 
  2. ^ "Sun Opens Java" (OGG Theora). Sun Microsystems. 
  3. ^ "Sun Opens Java". Sun Microsystems. 13 November 2006. Retrieved on 2007-05-09. 
  4. ^ Stallman, Richard. "Free But Shackled - The Java Trap". Retrieved on 2007-12-04. 
  5. ^ "Sun 'releases' Java to the world". BBC News. 13 November 2006. Retrieved on 2007-05-09. 
  6. ^ "Open JDK is here!". Sun Microsystems. 8 May 2007. Retrieved on 2007-05-09. 
  7. ^ 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
  8. ^ Broad contributor agreement and TCK License pave way for a fully compatible, free and open source Java Development Kit for Red Hat Enterprise Linux
  9. ^ Porters Group
  10. ^ New java for haiku team formed
  11. ^ James Gosling. Interview with Robert Eckstein. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. October 2006.
  12. ^ O'Hair, Kelly (2007-12-12). "Mercurial OpenJDK Questions". 
  13. ^ Tripp, Andy (2007-07-16). "Classpath hackers frustrated with slow OpenJDK process". Retrieved on 2008-04-20. 
  14. ^ Kennke, Roman (2008-09-29). "A small step for me". Retrieved on 2008-10-19. 
  15. ^ a b c Wade, Karsten (2008-03-13). "OpenJDK in Fedora 9!". 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." 
  16. ^ "Open Source Java Technology Debuts In GNU/Linux Distributions". Sun Microsystems. Retrieved on 2008-05-02. 
  17. ^ "openjdk-6 in Ubuntu". Retrieved on 2008-04-19. 
  18. ^ Reinhold, Mark (2008-04-24). "There’s not a moment to lose!". Retrieved on 2008-04-19. 
  19. ^ a b Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Retrieved on 2008-04-05. 
  20. ^ "OpenJDK 6 Source Release". Retrieved on 2008-06-01. 
  21. ^ Sharples, Rich (2008-06-19). "Java is finally Free and Open". 
  22. ^ Topic, Dalibor (2008-07-14). "QotD: Debian Overview of openjdk-6 source package". Retrieved on 2008-07-15. 
  23. ^ "Overview of openjdk-6 source package". Retrieved on 2008-07-15. 
  24. ^ "Package: openjdk-6-jdk". 2009-02-14. Retrieved on 2009-02-16. 
  25. ^ Fuller, Landon (2008-08-19). "SoyLatte, Meet OpenJDK: OpenJDK 7 for Mac OS X". Retrieved on 2008-08-22. 
  26. ^ "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." 
  27. ^ 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." 
  28. ^ Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". Retrieved on 2007-05-22. 
  29. ^ Herron, David (2007-10-04). "Plans for OpenJDK". Retrieved on 2007-10-09. 
  30. ^ a b c "OpenJDK 6 b10 source posted". 2008-05-30. Retrieved on 2008-06-01. 
  31. ^ audio-engine project page
  32. ^ "Gervill - Software Synthesizer". Retrieved on 2008-06-01. 
  33. ^ "Crypto has been added to OpenJDK". 2007-09-27. Retrieved on 2007-10-07. 
  34. ^ font-scaler projectpage
  35. ^ a b c Java2D project page
  36. ^ "Freetype font rasteriser". 2007-08-07. Retrieved on 2007-11-24. 
  37. ^
  38. ^ graphics-rasterizer project page
  39. ^ Graham, Jim (2007-10-03). "Open Source rasterizer". Sun Microsystems. Retrieved on 2007-05-09. 
  40. ^ "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." 
  41. ^ Andrew, Haley (2007-06-07). "Experimental Build Repository at". Retrieved on 2007-06-09. 
  42. ^ Mark, Wielaard (2007-06-07). "Experimental Build Repository at". Retrieved on 2007-06-09. 
  43. ^ Fitzsimmons, Thomas (2007-06-08). "Credits". Retrieved on 2007-06-08. 
  44. ^ "Red Hat and Sun Collaborate to Advance Open Source Java Technology". Red Hat. 2007-11-05. Retrieved on 2007-11-06. 
  45. ^ "icedtea-java7 in Ubuntu". Retrieved on 2008-04-19. 

[edit] External links

Personal tools