2002 OSCON Java Wrap-Upby
The following is a wrap-up report of last week's tutorials, sessions, talks, opinions, and more from the unofficial 2002 O'Reilly Open Source Convention (OSCON) Java conference.
OSCON Java Day 1: Java Tutorials
On Monday, Servlets.com and JDOM.org founder/publisher and Apache vice president Jason Hunter gave a rapid, yet day-long, thorough introduction to Java programming from 0 to 60! This intensive course taught the strengths and weaknesses of Java, writing simple but useful applications, and showed you the basic Java idioms from syntax to I/O to threading.
The course began with the fundamentals of object oriented (OO) programming. Building on this foundation, Jason then covered the Java language and programming environment fundamentals, with topics on syntax, essential classes, OO features of Java, exception handling, and using the Java Development Kit (JDK), now renamed the Java 2 SDK. The course also covered the important subjects of abstract types, I/O using Java streams, threads, and collection classes. Topics included abstract classes and interfaces, character streams, byte streams, serialization of objects, employment of stacking streams, creating threads, thread synchronization, and the new collection classes.
The JBoss Group's Andreas Schaefer gave an afternoon tutorial on the new JBoss 3.0: The Next Generation in J2EE. After the big success of JBoss 2.2 and 2.4, which have already marked the leading edge of J2EE application server development, JBoss 3.0 (nickname: Rabbit Hole) took another leap to a new frontier where no man has gone before.
JBoss 3.0 delivers clustering as well as a fail-over, but also provides a framework to a real 24x7 usage. JBoss enables you to deploy new services or update the code base without bouncing the server. Finally, the JBoss kernel design allows the client to tailor JBoss to fit in any environment (like Embedded Devices).
Andreas' presentation started with an introduction to the features of JBoss 3.0. Then it introduced you to JMX, because it is the basic framework of JBoss, and discussed the add-ons in JBoss to have a 24x7 framework (recycling loaded classes, managing dependencies between loaded classes, and having a loosely-coupled system). Moreover, the tutorial went into the core of JBoss and its services, such as JMS, Security, CMP/CMR, etc. Finally, Andreas discussed how to configure and manage JBoss. This included an introduction to JSR-77, which enables a client to manage a J2EE application server in a vendor-neutral way.
OSCON Java Day 2: More Tutorials
Tim Boudreau and his project team began Tuesday's tutorials with an overview and breakdown of Sun's open source NetBeans project. NetBeans is a sophisticated language and design approach, with an 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 NetBeans.
In the Q&A, I asked the project team about how the detailed, file-structure influenced metadata code of NetBeans differs from BEA's Cajun or WebLogic Workshop products. 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 is strikingly similar to the Java Web Services (JWS) file tags found in Cajun, and is also a Java Specification Request (JSR) 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 the 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.
After the break, the NetBeans tutorial continued 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 musical notes and compositionsand 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 that 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 more.
After lunch, I sat 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.
Next, 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.
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 and contrasts with the Apache Jakarta project,
Pages: 1, 2