Contents - Cultural View
Contents - Cultural View Contents - Cultural View
Java Class Library 154 • GUI and 2D Graphics: the java.awt package supports basic GUI operations and binds to the underlying native system. It also contains the 2D Graphics API. The javax.swing package is built on AWT and provides a platform independent widget toolkit, as well as a Pluggable look and feel. It also deals with editable and non-editable text components. • Sound: provides interfaces and classes for reading, writing, sequencing, and synthesizing of sound data. • Text: the java.text package deals with text, dates, numbers, and messages. • Image package: java.awt.image and javax.imageio provide APIs to write, read, and modify images. • XML: built-in classes handle SAX, DOM, StAX, XSLT transforms, XPath, and various APIs for Web services, as SOAP protocol and JAX-WS. • CORBA and RMI APIs, including a built-in ORB • Security and Cryptography • Databases: access to SQL databases is provided through the java.sql package. • Access to Scripting engines: the javax.script package gives access any Scripting language that conforms to this API. • Applets: java.applet allows applications to be downloaded over a network and run within a guarded sandbox • Java Beans: java.beans provides ways to manipulate reusable components. Licensing Following their promise to release a fully buildable JDK based almost completely on free and open source code in the first half of 2007 [2] , Sun released the complete source code of the Class Library under the GPL on May 8, 2007, except some limited parts that were licensed by Sun from third parties who did not want their code to be released under a free and open-source license. [3] Sun's goal is to replace the parts that remain proprietary and closed source with alternative implementations and make the Class Library completely free and open source. [4] 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 [5] , and less than 1% as of May 2008 and OpenJDK 6 [6] [7] ) is [8] [9] : • The SNMP implementation [9] . 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 [9] [10] . The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called Gervill [11] , • All cryptography classes used in the Class library have been released as Open-source [12] , [13] [14] [15] • The code that scales and rasterizes fonts has been replaced by FreeType • The native color management system has been replaced by LittleCMS [14] . 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 [14] [16] [17] . This code is fully functional, but still needs some performance enhancements [18] , • The Javascript plugin has been open-sourced (the JavaScript engine itself was open-sourced from the beginning) [19] .
Java Class Library 155 Alternative implementations GNU Classpath is the other main free software class library for Java. Contrary to other implementations, it only implements the Class Library, and is used by many free Java runtimes (like Kaffe, SableVM, JamVM, CACAO). Apache Harmony is another free software class library. Its aim is to also implement the other parts of the Java stack (Virtual Machine, Compiler, and other tools required for any Java implementation). See also • Java Platform, Standard Edition • List of Java APIs • OpenJDK • Free Java implementations • Standard library • Java applet External links • Java SE Main page [20] • Java SE 6 API Javadocs • Java SE API documentation [21] • Java software development kits (status as of August 2006): • 1.7 [22] (early development) • 1.6 [23] (stable, current) • 1.5 [24] (stable) • 1.4 [25] (stable) • 1.3 [26] (obsolete) References [1] How Classes are Found (http:/ / java. sun. com/ javase/ 6/ docs/ technotes/ tools/ findingclasses. html) [2] http:/ / www. sun. com/ software/ opensource/ java/ faq. jsp#b4 [3] "Open JDK is here!" (http:/ / mail. openjdk. java. net/ pipermail/ announce/ 2007-May. txt). Sun Microsystems. 2007-05-08. . Retrieved 2007-05-09. [4] Since there's some encumbered code in the JDK, Sun will continue to use that code in commercial releases until it is replaced by fully-functional free and open-source alternatives. [5] Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK" (http:/ / fitzsim. org/ blog/ ?p=17). . Retrieved 2007-05-22. [6] Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9" (http:/ / langel. wordpress. com/ 2008/ 03/ 13/ openjdk-in-fedora-9/ ). . Retrieved 2008-04-05. [7] Wade, Karsten (2008-03-13). "OpenJDK in Fedora 9!" (http:/ / developer. redhatmagazine. com/ 2008/ 03/ 12/ openjdk-to-replace-icedtea-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." [8] Herron, David (2007-10-04). "Plans for OpenJDK" (http:/ / weblogs. java. net/ blog/ robogeek/ archive/ 2007/ 10/ openjdk_encumbr. html). . Retrieved 2007-10-09. [9] "OpenJDK 6 b10 source posted" (http:/ / mail. openjdk. java. net/ pipermail/ jdk6-dev/ 2008-May/ 000058. html). 2008-05-30. . Retrieved 2008-06-01. [10] audio-engine project page (http:/ / openjdk. java. net/ projects/ audio-engine/ ) [11] "Gervill - Software Synthesizer" (https:/ / gervill. dev. java. net/ ). . Retrieved 2008-06-01. [12] "Crypto has been added to OpenJDK" (http:/ / mail. openjdk. java. net/ pipermail/ security-dev/ 2007-September/ 000015. html). 2007-09-27. . Retrieved 2007-10-07. [13] font-scaler projectpage (http:/ / openjdk. java. net/ projects/ font-scaler/ ) [14] Java2D project page (http:/ / openjdk. java. net/ groups/ 2d/ )
- Page 107 and 108: Java 4K Game Programming Contest 10
- Page 109 and 110: Java 4K Game Programming Contest 10
- Page 111 and 112: CookXml 107 Creators, setters, adde
- Page 113 and 114: Cougaar 109 Cougaar Cougaar is a Ja
- Page 115 and 116: Devoxx 111 Related links • Devoxx
- Page 117 and 118: Elastic Path 113 References [1] htt
- Page 119 and 120: Electronic Disturbance Theater 115
- Page 121 and 122: Event dispatching thread 117 • Sw
- Page 123 and 124: Facelets 119 The above code can be
- Page 125 and 126: final (Java) 121 } Sphere(double x,
- Page 127 and 128: FormEngine 123 FormEngine Developer
- Page 129 and 130: Generics in Java 125 Motivation for
- Page 131 and 132: Generics in Java 127 Pair grade440
- Page 133 and 134: G-java 129 G-java G-java 2.x was a
- Page 135 and 136: GlassFish Metro 131 Features Metro
- Page 137 and 138: James Gosling 133 Contributions He
- Page 139 and 140: Todd Greanier 135 Todd Greanier Tod
- Page 141 and 142: Head First (book series) 137 Head F
- Page 143 and 144: Inner class 139 • Local class - T
- Page 145 and 146: Interface (Java) 141 The body of th
- Page 147 and 148: Internet Foundation Classes 143 Int
- Page 149 and 150: Internet Foundation Classes 145 •
- Page 151 and 152: JAD (file format) 147 JAD (file for
- Page 153 and 154: JAMWiki 149 JAMWiki Developer(s) Ry
- Page 155 and 156: JGroups 151 JGroups Stable release
- Page 157: Java Class Library 153 Java Class L
- Page 161 and 162: Java Classloader 157 User-defined c
- Page 163 and 164: Java compiler 159 Java compiler A J
- Page 165 and 166: Java Development Kit 161 • jstack
- Page 167 and 168: Java Interface Definition Language
- Page 169 and 170: Java TV 165 See also • Xlet Exter
- Page 171 and 172: Java Work Framework 167 Database db
- Page 173 and 174: Java annotation 169 programmaticall
- Page 175 and 176: Java annotation 171 component.getAt
- Page 177 and 178: Java collections framework 173 Refe
- Page 179 and 180: Java syntax 175 Java syntax The syn
- Page 181 and 182: Java syntax 177 Double quote \" Tab
- Page 183 and 184: Java syntax 179 import statement Th
- Page 185 and 186: Java syntax 181 switch statement Sw
- Page 187 and 188: Java syntax 183 outer: for (int i =
- Page 189 and 190: Java syntax 185 The catch and final
- Page 191 and 192: Java syntax 187 Reference types Ref
- Page 193 and 194: Java syntax 189 Foo.doSomething();
- Page 195 and 196: Java syntax 191 Modifiers • abstr
- Page 197 and 198: Java syntax 193 } public void walk(
- Page 199 and 200: Java syntax 195 Inheritance Interfa
- Page 201 and 202: Java syntax 197 /* Any Mapper insta
- Page 203 and 204: Java: View Technologies and Framewo
- Page 205 and 206: JavaBeans Activation Framework 201
- Page 207 and 208: javac 203 References [1] http:/ / j
Java Class Library 154<br />
• GUI and 2D Graphics: the java.awt package supports basic GUI operations and binds to the underlying native<br />
system. It also contains the 2D Graphics API. The javax.swing package is built on AWT and provides a platform<br />
independent widget toolkit, as well as a Pluggable look and feel. It also deals with editable and non-editable text<br />
components.<br />
• Sound: provides interfaces and classes for reading, writing, sequencing, and synthesizing of sound data.<br />
• Text: the java.text package deals with text, dates, numbers, and messages.<br />
• Image package: java.awt.image and javax.imageio provide APIs to write, read, and modify images.<br />
• XML: built-in classes handle SAX, DOM, StAX, XSLT transforms, XPath, and various APIs for Web services, as<br />
SOAP protocol and JAX-WS.<br />
• CORBA and RMI APIs, including a built-in ORB<br />
• Security and Cryptography<br />
• Databases: access to SQL databases is provided through the java.sql package.<br />
• Access to Scripting engines: the javax.script package gives access any Scripting language that conforms to this<br />
API.<br />
• Applets: java.applet allows applications to be downloaded over a network and run within a guarded sandbox<br />
• Java Beans: java.beans provides ways to manipulate reusable components.<br />
Licensing<br />
Following their promise to release a fully buildable JDK based almost completely on free and open source code in<br />
the first half of 2007 [2] , Sun released the complete source code of the Class Library under the GPL on May 8, 2007,<br />
except some limited parts that were licensed by Sun from third parties who did not want their code to be released<br />
under a free and open-source license. [3] Sun's goal is to replace the parts that remain proprietary and closed source<br />
with alternative implementations and make the Class Library completely free and open source. [4]<br />
As of May 2008, the only part of the Class library that remain proprietary and closed-source (4% as of May 2007 for<br />
OpenJDK 7 [5] , and less than 1% as of May 2008 and OpenJDK 6 [6] [7] ) is [8] [9] :<br />
• The SNMP implementation [9] .<br />
Since the first May 2007 release, Sun Microsystems, with the help of the community, has released as Open-source or<br />
replaced with Open-source alternatives almost all the encumbered code:<br />
• All the audio engine code, including the software synthetizer, has been released as Open-source [9] [10] . The<br />
closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK<br />
called Gervill [11] ,<br />
• All cryptography classes used in the Class library have been released as Open-source [12] ,<br />
[13] [14] [15]<br />
• The code that scales and rasterizes fonts has been replaced by FreeType<br />
• The native color management system has been replaced by LittleCMS [14] . There is a pluggable layer in the JDK,<br />
so that the commercial version can use the old color management system and OpenJDK can use LittleCMS.<br />
• The anti-aliasing graphics rasterizer code has been replaced by the Open-sourced Pisces renderer used in the<br />
phoneME project [14] [16] [17] . This code is fully functional, but still needs some performance enhancements [18] ,<br />
• The Javascript plugin has been open-sourced (the JavaScript engine itself was open-sourced from the<br />
beginning) [19] .