Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

The pros and cons of JDK 1.1

JavaSoft, Java developers describe the key benefits and shortcomings of the long-awaited Java software toolkit -- and discuss the pain of moving from 1.02

Sun Microsystems recently released version 1.1 of the Java Developer Kit to a world of application developers thirsting for increased speed, stability, and security in the APIs used to create Java apps. Weighing in at nearly 700 classes, and boasting significant security, structural, and performance enhancements -- as well as JavaBeans support -- the new JDK release enables programmers to now write applets and large-scale applications that conform to the Java core 1.1 API (and its JavaBeans 1.0 APIs). Initial interest in the upgrade has been significant: Within three weeks of the JDK 1.1 release, developers downloaded more than 220,000 copies of the new toolkit. The immediate obstacle to its full acceptance, though, comes from browser hurdles currently being addressed by such heavyweights as Microsoft and Netscape.

"What we're trying to do with 1.1 is raise the bar," said Eric Chu, product manager for the JDK. "We want to make it easy for people to write fuller, larger-scale applications. We are evolving Java to make it mature enough as a platform that people can write everything from Web-based applets to enterprise-wide applications." (For the complete text of JavaWorld's interview with Eric, see the sidebar Raising the bar with 1.1).

"The main things that turn me on about [JDK 1.1] are the JDBC, the security enhancements, and the JAR format," commented Adrian Scott, chief executive officer of Aereal, a VRML and Java development start-up (www.aereal.com). "In the long term, RMI and object serialization are going to move Java development in a very positive way, especially in combination with JDBC for some really wild distributed apps."

Heavyweight features, lightweight bugs

"We've been using the JDK 1.1 for several months," said Arthur van Hoff, chief technology officer for Marimba. "It certainly is a big step forward in performance, memory efficiency, and functionality. Despite some minor glitches, I'm very happy with it so far. Class unloading, for instance, makes Castanet [Marimba's "push" software] a lot more memory efficient."

"We've encountered a number of glitches associated with JDK 1.1," reported Geoff Vona, the KL Group's (www.klg.com) technical product manager for JClass Chart. "The FCS version contained a gratuitous name change, getId to getID, that broke our code and caused considerable embarrassment for us with our beta testers. And the validate() call in Container makes peer calls that cause the background of the peer to be blanked out. But the transition from JDK 1.0.2 to JDK 1.1 was, for the most part, a smooth process. We love the new event model, as it is very similar to the callback mechanism we introduced in our first Java product back in June of last year."

For the record, the new features in the JDK 1.1 include:

  • The JavaBeans 1.0 component architecture
  • A new AWT event model
  • Inner Classes
  • Internationalization
  • An enhanced I/O package
  • The Java Archive (JAR) file format
  • Java Database Connectivity (JDBC)
  • A Math package
  • Object serialization
  • Reflection
  • Remote method invocation (RMI)
  • Improved security (with those long-promised signed applets)


Also included with the JDK 1.1 are networking enhancements and a score of miscellaneous new or improved classes and protocols. Thrown in for good measure, 1.1 also includes a new wrinkle called the Java Native Interface, or JNI (more on this in a moment).

According to Sun, the JavaBeans APIs (which have been integrated into the JDK 1.1) "take interoperability a major step forward -- your code runs on every OS and within any application environment. A beans developer secures a future in the emerging network software market without losing customers that use proprietary platforms, because JavaBeans interoperate with ActiveX, OpenDoc, and LiveConnect." The JavaBeans Development Kit (BDK) 1.0 final release, which allows developers to create reusable software components, is also now available for downloading from Sun. The BDK currently contains the BeanBox test, example bean source code, bean demos, and a JavaBeans tutorial.

"We're doing a lot of work with beans," commented KL Group's Vona. "The BDK beta releases were not great. The BDK documentation was sufficient for simple beans but not sufficient for advanced bean development. The lack of support for indexed properties is a big problem. It is not clear how sub-objects should be exposed in a bean. Introspection and reflection are very slow. On the plus side, [JavaBeans] in general is what we call `good magic.' The serialization works well. And the beans users mailing list has been very helpful."

The Java Security API is designed to allow developers to incorporate both low-level and high-level security functionality into their Java applications. Java Security includes APIs for digital signatures and message digests. In addition, there are abstract interfaces for key management, certificate management, and access control. Specific APIs to support X.509 version 3 certificates and other certificate formats, as well as richer functionality in the area of access control, will follow in subsequent JDK releases. Version 1.1 also provides a tool for signing JAR files. The appletviewer allows any downloaded applets in JAR files that are properly signed by a trusted entity to run with the same rights as local applications.

In a related development, at the Spring Internet World tradeshow in Los Angeles JavaSoft announced the release of the Java Runtime Environment (JRE), which should be available for downloading by the time you read this. According to the Sun business unit, the JRE is a compact, flexible solution that developers can bundle within their applications to remove dependency on native operating systems. Using the JRE, developers can immediately begin shipping and deploying Java applications using the latest JDK 1.1 features.

Making the transition

"Growth is painful," commented Philip Meese, the director of technical services for Mercury Technologies (www.mercury.com), a Wall Street enterprise-solutions developer. "Although there was the original promise that the JDK API was frozen, anyone who worked with the first release of the toolkit realized that it would be impossible to effectively solve the problems of the JDK without breaking the API. This is what will make the transition to JDK 1.1 painful."

1 | 2 | 3 |  Next >
Resources