Jump to content

OpenJDK

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 195.47.234.106 (talk) at 12:54, 30 May 2009 (→‎See also). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

OpenJDK
Developer(s)Sun Microsystems
Stable release
OpenJDK6 Build b16 / April 15, 2009 (2009-04-15)
Preview release
OpenJDK7 Build b55 / April 16, 2009 (2009-04-16)
Repository
Written inC++ and Java
Operating systemCross-platform
TypeLibrary
LicenseGPL+linking exception
Websitehttp://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.

History

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]

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]

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 procedures 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].

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

Status

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

Compiler and Virtual Machine

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

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:

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

Zero and Shark

The experiment evolved to become the zero-assembly port of OpenJDK -- Zero -- and its just-in-time compiler Shark.

See also

References

  1. ^ Schwartz, Jonathan (23 May 2006). "Busy Week..." Sun Microsystems. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  2. ^ "Sun Opens Java" (OGG Theora). Sun Microsystems.
  3. ^ "Sun Opens Java". Sun Microsystems. 13 November 2006. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  4. ^ Stallman, Richard. "Free But Shackled - The Java Trap". Retrieved 2007-12-04.
  5. ^ "Sun 'releases' Java to the world". BBC News. 13 November 2006. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  6. ^ "Open JDK is here!". Sun Microsystems. 8 May 2007. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  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 (2006). "James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1" (Interview). Interviewed by Robert Eckstein. {{cite interview}}: Unknown parameter |month= ignored (help)
  12. ^ O'Hair, Kelly (2007-12-12). "Mercurial OpenJDK Questions".
  13. ^ Tripp, Andy (2007-07-16). "Classpath hackers frustrated with slow OpenJDK process". Retrieved 2008-04-20.
  14. ^ Kennke, Roman (2008-09-29). "A small step for me". Retrieved 2008-10-19.
  15. ^ a b c Wade, Karsten (2008-03-13). "OpenJDK in Fedora 9!". redhatmagazine.com. Retrieved 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. {{cite web}}: Check date values in: |date= (help)
  16. ^ "Open Source Java Technology Debuts In GNU/Linux Distributions". Sun Microsystems. Retrieved 2008-05-02.
  17. ^ "openjdk-6 in Ubuntu". Retrieved 2008-04-19.
  18. ^ Reinhold, Mark (2008-04-24). "There's not a moment to lose!". Retrieved 2008-04-19. {{cite web}}: Check date values in: |date= (help)
  19. ^ a b Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Retrieved 2008-04-05. {{cite web}}: Check date values in: |date= (help)
  20. ^ "OpenJDK 6 Source Release". Retrieved 2008-06-01.
  21. ^ Sharples, Rich (2008-06-19). "Java is finally Free and Open". {{cite web}}: Check date values in: |date= (help)
  22. ^ Topic, Dalibor (2008-07-14). "QotD: Debian Overview of openjdk-6 source package". Retrieved 2008-07-15. {{cite web}}: Check date values in: |date= (help)
  23. ^ "Overview of openjdk-6 source package". debian.org. Retrieved 2008-07-15.
  24. ^ "Package: openjdk-6-jdk". debian.org. 2009-02-14. Retrieved 2009-02-16. {{cite web}}: Check date values in: |date= (help)
  25. ^ Fuller, Landon (2008-08-19). "SoyLatte, Meet OpenJDK: OpenJDK 7 for Mac OS X". Retrieved 2008-08-22. {{cite web}}: Check date values in: |date= (help)
  26. ^ "Didn't you promise to open source both JDK 6 and JDK 7 last November? What happened to JDK 6?". Sun Microsystems. Retrieved 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 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. {{cite web}}: Check date values in: |date= (help)
  28. ^ Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". Retrieved 2007-05-22. {{cite web}}: Check date values in: |date= (help)
  29. ^ Herron, David (2007-10-04). "Plans for OpenJDK". Retrieved 2007-10-09. {{cite web}}: Check date values in: |date= (help)
  30. ^ a b c "OpenJDK 6 b10 source posted". 2008-05-30. Retrieved 2008-06-01.
  31. ^ audio-engine project page
  32. ^ "Gervill - Software Synthesizer". Retrieved 2008-06-01.
  33. ^ "Crypto has been added to OpenJDK". 2007-09-27. Retrieved 2007-10-07.
  34. ^ font-scaler projectpage
  35. ^ a b c Java2D project page
  36. ^ "Freetype font rasteriser". 2007-08-07. Retrieved 2007-11-24.
  37. ^ phoneme.dev.java.net/
  38. ^ graphics-rasterizer project page
  39. ^ Graham, Jim (2007-10-03). "Open Source rasterizer". Sun Microsystems. Retrieved 2007-05-09. {{cite web}}: Check date values in: |date= (help)
  40. ^ "Javascript is encumbered and there is no javascript plugin support". IcedTea. 2008-03-11. Retrieved 2008-06-01. Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support. {{cite web}}: Check date values in: |date= (help)
  41. ^ Andrew, Haley (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". Retrieved 2007-06-09. {{cite web}}: Check date values in: |date= (help)
  42. ^ Mark, Wielaard (2007-06-07). "Experimental Build Repository at icedtea.classpath.org". Retrieved 2007-06-09. {{cite web}}: Check date values in: |date= (help)
  43. ^ Fitzsimmons, Thomas (2007-06-08). "Credits". Retrieved 2007-06-08. {{cite web}}: Check date values in: |date= (help)
  44. ^ "Red Hat and Sun Collaborate to Advance Open Source Java Technology". Red Hat. 2007-11-05. Retrieved 2007-11-06. {{cite web}}: Check date values in: |date= (help)
  45. ^ "icedtea-java7 in Ubuntu". Retrieved 2008-04-19.