Javapolis: day 3

This morning started with two keynote presentations, the first one by Sun and the second one by Bea. Nothing particulairly interesting or spectaculair was said. Both companies talked about how they are making Java development simpler (although Suns demo makes you think otherwise). Both companies used the stage to promote their products and websites.

It’s kind of disappointing that none of the Java IDE vendors have yet announced anything which competes with Microsofts Visual Studio Team Edition. For bigger Java projects you currently configure your own software factory based on multiple tools and frameworks. Most of these tools are opensource and free, such as cvs, subversion, cruisecontrol, junit, pmd, findbugz, bugzilla, wiki, statcvs. Sometimes it’s better to use a commercial offering such as jira or anthill.

The problem is that configuring these tools takes time, you need to install and configure a development server running a lot of tools. And if you use ant, you also need to modify your ant build file to generate all the required artifacts. A better option is to use maven which automatically generates most of these artifacts for you.

Tighter integration between these artifacts and tools would be very useful. So it’s time for Java IDE vendors to learn from the community that there is a need for these tools and to supply ready to use solutions.


The next session was about JMX. The speaker presented several ways to publish management information through MBeans. Among these were ofcourse dependency injection and aspects. He then finished by discussing the changes in the following versions of JMX, such as a web service API. I think, for people new to JMX, a good use case was missing in the presentation. Just show me some real examples of how applications are using MBeans. What makes sense and what doesn’t?

EJB 3.0

Linda DeMichiel and Mike Keith did a presentation on EJB 3. Main topic here, simplicity. I went to the EJB 3.0 persistence presenation by Mike on monday and after seeing todays presenation on the other stuff in EJB 3, i’m convinced that EJB 3 can finally become the standard for writing server side business logic and data components. It seems like the need for alternative technologies has become a lot less with EJB 3. Most people currently like to use orm frameworks like Hibernate and Toplink. It looks like ejb 3 ORM is close enough to these frameworks that most people will be satisfied by it.

One point repeated during the EJB presenation was that the JEE 5 Reference Implementation is now production grade software, meaning that it’s not just for testing but you can actually use the RI in a production environment. This probably means that more proprietary extensions to the standard will appear. How else are companies going to sell their application servers, if the reference implementation is good enough for production?


Next session i attended was the session on Service Data Objects. SDO recently got a lot of attention when Service Component Architecture(SCA) was announced. For info on an opensource implementation of SCA and SDO have a look at Tuscany.

SDO’s goal is to simplify and unify access to data. One way to access your data regardsless of where it is. Your data can be in a database, but it can also be a webservice, or something else. A nice feature of SDO: you can access data using xpath expressions. Another one: SDO keeps track of the changes you make to your data. This means that you only send the changes and their old values (for optimistic locking) back to your datasource.

SDO certainly looks useful, i could have used it on my current project. We currently query data from a database using Oracle’s Business components, serialize it to XML (also using BC) and send it to a swing client on a laptop using a web service. There the user can change the data, and send it back using a webservice. On the server we update the database based on the changes made by the user, again using business components. This seems like a scenario where SDO would make sense.

A future version of SDO will contain support for other languages, such as php and .net. It will for example contain interoperability with datasets.


John Crupi presented Pragmatic SOA. After introducing Service Oriented Architecture he had some usefull tips, or big rules, for implementing soa’s. The presentation was finished with a demo of the BPEL designer in Sun’s Java Studio Enterprise. Very similar to Oracle’s BPEL designer in JDeveloper (and i believe the jboss guys also have something similar).


Dave Chapell more or less said the same things about SAO in his presenation: How the ESB delivers on the value of SOA, with one difference. For high availability, or Continuous Availability Architecture (CAA) you need messaging, so you need an Enterprise Service Bus.


The day ended with a presenation on Shale, also know as Struts version 2, although its goal is different from Struts. Struts is an MVC framework, but JSF already contains an MVC framework, so that’s not needed.

So what that Shale contain?

It enables you to apply the Command and composite patterns to JSF. You create command classes, which you can hook up to JSF backing beans using a configuration file.

Something else Shale provides is client side validation using jakarta commons validator. It contains tags which will create javascript to do browser validations.

Another thing Shale contains is Shale Clay which is similar to Tapestry Views and Facelets. It enables you to create html page design, and add JSF components into these html pages. This way a web designer can design html pages, and you can hook JSF components into these pages. I’m not sure this is a good idea though. I think graphic designers should stick to photoshop or illustrator. Page layout doesn’t belong in html, it belongs in css files, and i think web developers are better equiped to translate photoshop design into html and css implementations than designers.

Anything else? Yes, Shale webflow. If you want to know what that is, have a look at Spring webflow, as shale webflow is a direct copy from springs webflow.

And finally, shale contains support for AJAX like remote method calls.