Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sun delivers Kestrel, the newest version of Java 2

Exclusive article details Java 2 SDK v1.3 beta's new features, bug fixes, and incompatibilities

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
On the heels of a legal defeat in the Microsoft battle, Sun Microsystems delivers a beta release of its next-generation Java 2 Software Development Kit (SDK). Code-named Kestrel, the Java 2 SDK, version 1.3, is now available for early adopters to play with. The new version is not called Java 3, as some people suspected it might be -- at least not yet. For the moment, the fourth release of Java technology is called the Java 2 platform, version 1.3.

When examining the new release, do keep the bug-reporting URL handy (see Resources), as Joey Jarosz, president of hot-n-GUI Inc., an Internet design and consulting company, reports that it took his crew less than five minutes to find code that worked in the previous Java version but not in the 1.3 release. If you're eager to learn the details of the new release, the following provides a brief synopsis of what's new and different. As we'll see, you'll find plenty of new features, lots of bug fixes, changes to the existing toolset, and, unfortunately, some incompatibilities with previous Java versions.

New features

Version 1.3 of the Java 2 SDK introduces many improvements to the core Java 2 platform. Some of these changes improve Java's performance. (For example, there is roughly a 20 percent performance improvement in serialization/deserialization during RMI calls.) The vast majority of them, however, add additional capabilities to the core API set for the Java 2 platform.

Taking an API-level approach to the different changes, the following provides an overview of how the Java 2 platform has grown. Starting with the API documentation, the following new packages reveal several major additions:

  • java.awt.im.spi
    The Input Method Framework engine has been enhanced to provide a Service Provider Interface (SPI). (In fact, many of the new 1.3 packages include .spi subpackages for service providers.) The Input Method Framework SPI provides the ability to create alternative input mechanisms -- you can now suppport handwriting recognition on a Palm device, for instance. A tutorial is provided (see Resources) that lets users enter city names by using three-character airport codes.
  • javax.media.sound.midi and javax.media.sound.sampled
    This is a derivative of the Headspace demonstration presented at JavaOne 1997 by company founder Thomas Dolby Robertson. That demonstration presented a software-based mixer and interactive sound capabilities within the Java runtime environment, and the possiblities revealed there have finally made it into the core libraries of the Java 2 SDK, version 1.3. With this version, developers now have easy access to a software-based audio mixer for manipulating digital sound and MIDI (musical instrument digital interface) devices. The core Java technology libraries no longer only support playing audio files; you can also capture sound, mix it, and play it back.
  • javax.rmi
    The Java 2 SDK, version 1.3 adds RMI-IIOP support to the Java 2 platform. Instead of having to choose between using RMI or CORBA/IIOP for distributed applications, your RMI-based applications can now use the IIOP protocol so that the applications can communicate with CORBA objects on the other end of the wire, permitting cross-language interoperability. Be aware that, although this is now possible, many headaches result (these are documented) due to the number of rules that your RMI program must obey. For example, your remote implementation classes must now inherit from javax.rmi.PortableRemoteObject (instead of UnicastRemoteObject), and you cannot depend on or use any of the distributed garbage-collection facilities.
  • javax.naming
    Prior to the Java 2 SDK, version 1.3, the Java Naming and Directory Interface (JNDI) API was available as a standard extension to the Java 2 SDK, version 1.2 and JDK 1.1. Now, with the 1.3 release of the Java 2 platform, the JNDI capabilities are part of the core API set. What is JNDI? Basically, it is a lookup service: using JNDI, you ask to find things, like a printer or RMI service. JNDI service providers maintain a registry of locations where things are located and return objects upon request, assuming that they are found. The Java 2 SDK, version 1.3 includes three providers for Lightweight Directory Access Protocol (LDAP), CORBA Object Services (COS) Naming Service, and the Remote Method Invocation (RMI) Registry.
  • org.omg.* and javax.transaction
    Several enhancements have been made to the CORBA packages and the included ORB. Most of the updates were due to changes from the Object Management Group (OMG) for CORBA 2.3, such as support for the input and output of value types (as opposed to reference types).


In addition to full-fledged package additions, new classes have been added to existing packages, and new methods and constants to existing classes. We'll first look at the features focusing on the Abstract Windowing Toolkit (AWT). Then, we'll look at the enhancements outside of AWT.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources