Java Platform, Standard Edition 6 (formerly known as J2SE 1.6), code-named "Mustang" is planned for release in 2006, and it's going to be a major feature release. The importance of the release is even underlined by a new naming convention for all Java platforms -- it's no longer J2SE but Java SE.
Even though Mustang is still in Beta, I'm going to go ahead and cover many of the new features and enhancements introduced in this release. There is a special JSR 270 related to Java SE 6, and instead of specifying some concrete features, it enumerates features defined in other JSRs, serving as the "Umbrella JSR."
Java SE 6: A desktop revolution?
Some experts are already saying that Java 6 has the potential to be revolutionary for desktop applications, just like Java 2 was for server-side development. There are a lot of new desktop features, as well as overall GUI enhancements.
The Sun Java desktop team did its best to integrate Java more closely with the underlying operating system. As a result, Java 6 has obtained a better GUI performance, and much better user experience, achieved by improvements in behavior of GUI applications.
Among the most important new UI features are the following:
|> Introduction of new java.awt.Desktop API: The Desktop package offers the ability to easily integrate an application with other applications. For example, you'll be able to open, edit, or print files of specific types with external applications such as Word or Excel, and launch a default browser or mail client, etc. This integration is done through a new action event mechanism in the Desktop.Action class.
|> Better internationalisation: You can easily plug in any locale feature such as date formatting, encoding settings, and Unicode text normalisation.
|> System tray support: The java.awt package provides two new classes: SystemTray and TrayIcon, which offer the ability to add icons, tool tips, and pop-up menus to the Windows or any other system tray (such as Gnome).
|> Splash screen direct support: A splash screen is now a standard feature and can be shown even before the JVM starts. Usually, splash screens are used when an application has a long initialisation stage, and the user can be informed on what the app is doing.
|> Java 2D integration with desktop: The Java 2D graphical library now uses desktop anti-aliasing font settings, so the text is rendered more smoothly and consistently (this is especially important for LCD screens).
|> JFC and Swing integration with desktop: Java SE 6 uses the Windows API to improve performance and stay close to the current Windows look-and-feel.
Core Java enhancements
There are many important core features coming in Mustang. The Java core itself is a set of parts, which are fundamental to all other aspects of Java. The following areas have been affected: Java language, some core libraries, security and networking, XML handling, JMX handling, and serviceability. Here's a brief look at these enhancements:
|> Development features: The new Java Compiler API (JSR 199) allows Java source to be compiled from within a Java application. The new Java Scripting framework (JSR 223) provides scripting language access to Java internals. You can locate scripting engines and invoke them to run scripts at runtime. Java Platform Debugger Architecture (JPDA) is enhanced now and can detect deadlocks and find the stack traces where monitors are locked. There are some other enhancements in JPDA like the ability to attach to a running JVM for diagnostic purposes.
|> Enhanced application management: JMX Monitoring API has been improved and allows you to send events when MBean attribute values pass specified thresholds. For Solaris 10 users, the Hotspot JVM for Solaris provides hooks for the Solaris DTrace system debugging utility to track and display internal JVM activities, such as garbage collections, class loading, threads, locks, and so on. Java SE 6 enhances memory leak analysis and detection by including a full stack trace in the java.lang.OutOfMemory exception and generating a fatal error log when the heap is full. In addition, a new JVM option allows you to run a script when the heap is full.
|> Security: Java 6 is integrated with GSS/Kerberos. Java Authentication and Authorisation Service (JAAS) can easily plug the LDAP provider for authentication, and a new Security Request Framework allows you to request certificates over a number of protocols.
|> Web services: You can perform cryptographic operations on XML data by using the XML Digital Signatures API. The JAX-RPC library is renamed Java-XML Web Service (JAX-WS), and a new Streaming API for XML provides a bidirectional API to read and write XML via a stream of events, including the ability to skip sections and focus on subsections of documents.
|> Database connectivity: Mustang will introduce a JDBC 4.0 version, enabling automatic java.sql.Driver discovery, national character sets support, SQLException improvements, and more.
|> Serviceability: There are many enhancements, among which are making the jconsole more user friendly, improvements to the JVM Tool interface, etc.
Conclusion
Java 6 has a variety of important desktop features planned for release in 2006, as well as many server-side and core features. Looking closely at these enhancements, it is suggested that Java SE 6 (Mustang) can become a revolutionary step in GUI and desktop Java application development because of a qualitative jump in GUI behavior and user experience. Nevertheless, it is constantly improving from the core perspective, and the list of core features improved or added to the new release is proof of that.
For a more detailed description of Java SE 6, please see the documentation on Sun's site.
Peter V. Mikhalenko is a Sun certified professional who works for Deutsche Bank as business consultant.






1
java fan - 21/11/06
I have tried Mustang. Not only are features so few, they dont work! revolutionary my ass. Very disappointing. Ten years in the making and such a sorry offering.
» Report offensive content