OSCON Java Day 2: More Tutorials

by Steve Anglin

Related link: http://www.oreillynet.com/oscon2002/

The 2002 O'Reilly Open Source Convention (OSCON) and its unofficial Java conference
continued on Tuesday with the following Java tutorials:

Tim Boudreau and his project team presented an overview and breakdown on Sun's open source
NetBeans project. NetBeans is a sophisticated, language and design approach interoperable Integrated Development Environment (IDE) and application development framework. You can think of it as a scaled down version of Sun's commercial Forte for Java (now Sun ONE Studio). Anyway, Tim began with an introduction to its method, API and more. This was followed by a detailed architectural tour of it.

In the Q&A, I asked the project team about how the detailed file structure influenced
metadata code of NetBeans differ from BEA's Cajun or WebLogic Workshop product. Specifically,
the NetBeans metadata calls out and encapsulates various Java API and components such as
Servlets and EJB using a common JavaBean component design pattern model. This striking
is similar to the JWS (Java Web Services) file tags, found
in Cajun; and is also a JSR (Java Specification Request) to become a standard in the JCP.
According to Tim, it's possible BEA did this as a token gesture in order to establish that
it's involved with Java Web services. BEA has insisted JWS will become a standard others
can use, once established. According to BEA, JWS is meant to be a way for Web services developers to apply
Java 2EE API without having to be experienced with the API. It remains to be seen how
this will play out, but it's interesting to note that NetBeans and Cajun seem to have
similar mechanisms, with different approaches.

We took a break, and came back to continue the NetBeans tutorial with a focus on an application
from the XEMO open source project. Project lead William Will discussed the motivation,
reason, methodology, architecture and more behind XEMO, which is built on top of the NetBeans framework.
XEMO is a musical note composer, editor and player. Using Music XML and other XML Web
services, the user can take current musical notes and composition and create and/or edit
those notes by instrument, measure and more from a visual standpoint. Then, the user can
play back the created/edited musical code using metadata which calls out the Java Sound
API available in NetBeans. The tutorial concluded with specific code examples on how this
all comes together and works. William said that the next goal for XEMO was to allow the
musical composition to be created/edited using numercal metrics or value. Additionally,
beyond Java Sound, William hinted at the possible addition/use of a Quicktime option and

Lunch came. It was a pleasure to run into Microsoft's David Stutz and Jason Hunter.
Jason and I lamented on the need for more protein to help get us through the day. Afterall,
he had a day long tutorial for the second straight day, in addition to his other duties as
a vice president with Apache, publisher for Servlets.com and project manager for JDOM.org.
By the way, David is here to promote his shared source .NET CLI project, Rotor.

Afterwards, the tutorial filled day concluded with a sit-in on the last half of Jason's tutorial on the new
Java 2SE version 1.4. Jason covered the Java NIO or New I/O, which is the name for Java's faster and more powerful input/output class hierarchy. Then, he covered Java Preferences, which store, retrieve, and modify user preference and configuration data. Then, Jason discussed Assertions, which are a mechanism to ensure program correctness using assertion statements within the code. Because this feature is built into the JVM, there is no extra runtime overhead! Here, he explained how assertions work and how to make the most of this new capability. And finally, Jason concluded with a lenghty talk on Logging.
Logging is, naturally, a mechanism to write program output to log files or other tracking systems during the course of program execution. In this last part of the tutorial, Jason illustrated the use the new Logging API and how it compares or contrasts with the Apache Jakarta project, to log4j.

That's all for now. See you on Wednesday at OSCON's unofficial Java conference, which
continues with wall-to-wall sessions from the first one after the day's keynote to the last,
which ends at 6pm. So, I suggest you get your fill of Java, the liquid kind, first thing in the
morning. Then come on down and learn.

What do you think about NetBeans mechanism. How does it compare and contrast to the JWS proposed by BEA in the JCP? Share your thoughts.