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
JavaWorld.com, 09/26/99
- 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