Today JavaOne 2008 ofiicially started. About 15,000 Java minded people showed up at Moscone Center in San Francisco. On our way there, my colleague Lucas remarked "Java One at Mosc One"
We were welcomed at Moscone with some modern dance music. On stage, a bunch of dancers were performing what I thought was a mix of Dick Tracey clothing style and West Side Story. After this, James Gosling used a catapult to distribute t-shirts among the attendees. From 9:30 till 11:00 we attended the key note. Despite great words Sun really didn’t have a MAJOR announcement. JavaFX almost is there, the community still is important, Java SDK 6 update 10 will be a revolution. The biggest highlight was Neil Young appearing on stage and showing off his soon to be released archive on Blue Ray. I must admit that the interface to the archive truely was impressive. And it’s all done in Java! Pretty neat Neil!
JSR 286: The Portlet Specification 2.0
The first session that I attended today was about JSR 286. This is the Portlet Specification 2.0. Stefan Hepper, the JSR 286 project lead, outlined the new and exciting features in the Portlet specification 2.0, which will have Apache Pluto as its reference implementation. First Stefan provided a thorough display of the new features. Version 2.0 specifies coÃ¶rdination between portlets through events and through public parameters. Which of the two mechanisms you’ll use depends on the use case. The first allows for portlets to respond to changes in the state of other portlets, the second can be used e.g. to use a user id or for bookmarking. Another new feature is resource serving, e.g. images that can be hosted on a central place and one or another can be shown depending on the state of a portlet. In version 2.0 there will be support for cookies and HTTP headers, portlet filters and some other features like caching and portlet managed modes. After this lengthy list of new features, Stefan provided some details on how AJAX can be used in a JSR 286 compliant portal or portlets and that AJAX coÃ¶rdination between portals and portlets will not be a part of the specification. Finally, Stefan outlined the compatibility support with JSR 186 (Portlet Specification 1.0) and how JSR 286 works together with the Web Services for Remote Portlets specification.
The thing that struck me most about this presentation, apart from Stefans excellent presentation skills and his capability to explain the specification to the audience, is the great length the JSR 286 team took to fulfill the wishes and requests of portlet developers. Almost all new features somehow were feature and enhancement requests. Now that is how the Java community influences Java!
The Next Generation Java Plugin
Having developed some Java applet myself, I really was looking forward to hear about the Next Generation Java Plugin. Kenneth Russel and Sven Gothel really tried to inform us about as many new and cool features of the plugin as possible. Some of the highlights of this presentation were these. First of all, the plugin loads applets in one or more JVMs that are separated from the JVM used by the browser. This allows for specifying many JVM options for your applet. This specification needs to be done through a JNLP descriptor rather than an APPLET tag. Using the <resources> tag you can specify which additional jars should be loaded and what JVM options are needed for the applet.
In order to show the capabilities of the new plugin, Sven and Kenneth did two demos. The first one was the Nasa World Wind OpenGL application running in the applet. And it ran smoothly! The next demo featured Jake2, the recently released Java port of Quake II, also running in an applet.
But the biggest news was presented last. Having seen a few demo’s of this feature I wasn’t much surprised, but with the new plugin it will be possible to drag an applet from the web browser and drop it onto the desktop. Let me say that once more: it will be possible to drag an applet from the web browser and drop it onto the desktop! If the applet then is closed, it will reappear in the browser. However, if the browser is closed, the applet will instantaneously be converted to a Java Web Start application and will continue to run! Reloading the web page while the applet runs in the desktop will start another applet and detach the dropped applet from the browser. As Kenneth put it: Java most likely is the only technology that can do this. Kudos to the Java Applet team!
Developing JPA applications with NetBeans and EclipseLink
Recently Sun and Oracle announced that the open source version of Toplink, nick named EclipseLink because it is a project in the Eclipse foundation, will be the reference implementation of JPA version 2.0 that will be in Java EE 6. Oracle has released ALL of Toplink as the open source EclipseLink, so not just JPA but also MOXy (for Object – XML mapping), SDO, DBWS (database Web Services) and EIS (non-relational mappings using JCA). That is huge! A 12 year old code base that is used in thousands of projects becomes open source. And for some reason there is not so much news on it.
The session basically started with an overview of JPA and then a summary of yesterday’s excellent presentation on the capabilities of EclipseLink. Next we got a demo of how to use NetBeans to build JPA applications. To me it wasn’t much news since I attended the session on EclipseLink at CommunityOne and I regularly use NetBeans to create JPA applications. I hoped this session wouldn’t be such a "getting started with" session as it turned out to be. I hope it was useful to other people.
FEST: test your Swing applications
The final session I attended was about FEST (Fixtures for Easy Software Testing). I decided to go to this session last minute because Geertjan Wielenga talked me into it. He has created a plugin for NetBeans that enables FEST support. Most of the session I was reading some email (sorry Yvonne Price and Alex Ruiz) but what I learned is that FEST is a set of APIs that allows you to mimick user behaviour and create tests for GUI functionality of Swing applications. Pretty neat stuff. If you ever build Swing applications be sure to check out FEST and the NetBeans plugin.
Day one turned out to be very interesting and diverse. In between the second session and the second key note (that I didn’t attend) I had an interesting chat with Petr Pisl and the NetBeans Web Frameworks project lead (sorry, I have forgotten her name) about support for Seam, Facelets, RichFaces, IceFaces and Apache Trinidad in NetBeans. In the next days/weeks I will test the NetBeans Facelets Support plugin in NetBeans 6.1 and may even report some bugs or feature request. I intend to also submit some code to this project which will mean I have to dive into the NetBeans platform APIs. Big plans and lotsa work ahead!