I was very impressed with the conference overall. Many of the presentations were given by the JSR spec leads so you were being briefed by really authoritative sources. In this respect Devoxx is probably second only to JavaOne. However many of us in Europe can't make it to San Francisco, so Antwerp based Devoxx is a more convenient and less expensive alternative. This is just a summary of the presentations I happened to attend. On day 1 we got started with a demonstration from a talented Belgian beatboxer. The first keynote was from Danny Coward of Sun who gave a talk on the just released JavaFx 1.0. This is an API set for building RIA (rich internet applications). He demonstrated some really cool graphics. The second part of the keynote was from IBM giving an overview of RFID technology and then describing an RFID based conference information system. Each DEVOXX attendee had a RFID tag attached to their name badge which was scanned on entry to each room. The application could then provide details such as pie charts showing each room attendance statistics. Giovanni Asproni gave a talk on Software Estimation. There are three independent aspects: estimates, targets and commitments. Estimates are frequently misinterpreted as targets or commitments. Sebastien DeerSnyder gave a talk on hacking and securing Java Web Applications. He described 2 hacking techniques: Javascript injection and SQL injection. He also talked about the OWASP (open web application security) project. Mike Keith outlined the numerous new features in JPA 2.0. I won't list them all here, but the greatest additional functionality is the Expression and Criteria API. This allows queries to be dynamically created rather than being expressed as Strings. This feature is really needed in applications which build up a query in response to a series of user selections from a GUI client. JPA 2.0 is being shipped out with GlassFish v3 which includes the EclipseLink JPA 2.0 reference
implementation persistence engine. I hope to download GlassFish v3 soon and I plan to blog about my experiences in the New Year.
I attended Pete Muir's Introduction to Web Beans. Web Beans in particular unifies JSF managed beans with EJBs and is a part of the forthcoming Java EE 6 standard.
I was still suffering from the tail end of a cold so I managed only one beer in the evening's free bar.
On day 2 there was no beatboxer to wake us up but Josh Bloch's keynote Effective Java Reloaded had us flexing our PECS instead. Josh has produced a second edition of his book to cover Java SE 5 and 6 features. In particular Josh described some generics, enumerated types and lazy initialization examples. The generics example dealt with using wildcard types as input parameters. If a parameterized type serves as an E producer, use <? extends E>. If a parameterized type serves as an E consumer, use <? super E>. So the PECS mnemonic stands for producer-extends, consumer-super. Hence the PECS flexing bit.
The second keynote was by Mark Reinhold from Sun on the forthcoming Java SE 7 (expected early 2010). His main point was how large Java had become with the JRE being 14MB and a helloWorld program requiring 332 classes to execute. So a major effort will be on modularizing the platform and packaging Java into a number of profiles. Up to now Java has always being upward compatible but Mark did warn that from Java SE 8 onwards this may no longer be the case.
Ivar Jacobson gave an excellent, entertaining account of good software building practice in his Be Smart presentation. According to Ivar we are always looking for silver bullets for building software, but there are no silver bullets to be found. By focusing too much on process we are forgetting how to be smart in creating software. Ivar then covered smart practices in a number of aspects of the software lifecycle.
Mark Little gave a talk on the JBOSS SOA platform. Mark managed to provide the details of JBOSS's offerings while at the same time giving a good introduction to SOA concepts.
Roberto Chinnici, the JSR 313 co spec lead, gave a Java EE 6 overview. The spec is currently under draft public review and is likely to be finalized around May next year.
Java EE 6 is an umbrella spec consisting of individual JSRs such as JSR 318 (EJB 3.1), JSR 317 (JPA 2.0), JSR 315 (Servlet 3.0), JSR 311 (JAX-RS), JSR 314 ( JavaServer Faces 2.0). Java EE has grown to be a huge specification and Java EE 6 tackles this by packaging Java EE into profiles according to use. The plan is to offer somewhere between 2 and 5 profiles, much more than that is too unwieldy. So the Web Profile is provided for web-based applications. The web profile most likely would include Servlet 3.0 and JSP but not JAX-WS, JAX-RS, and JAXB. What exactly is to be included and excluded from the profiles is still up for discussion however. A basic and an intermediate web profile are also on the table.
JSR 311 co spec lead Paul Sandoz gave a talk on JAX-RS. This is the Java API for RESTful (Representational State Transfer) Web Services. REST web services are being increasingly used as an alternative to SOAP based web services, so this is a technology I need to familiarize myself with in the near future.
Devoxx provided a movie in the evening, The Day the Earth Stood Still. This was coinciding with film's general release in Europe so I hadn't previously seen it. As one of the first 500 delegates I got a large bag of popcorn to keep me going through the film.
On day 3 there was no keynote just presentations as the conference finished at 12.30. Simone Brunozzi gave a talk on Amazon Web Services. Cloud Computing enables one to increase and shrink computing resources according to demand. This is a pay per use model. Simone then described Amazon's offering in this area.
I went to Adam Bien's presentation titled "EJB 3.1 From Legacy to Secret Weapon". Adam pointed out that while EJB 2.x was a rather heavyweight model and so not very cool, EJB 3.x is much more lightweight and so is really cool. With EJB 3.x the use of annotations nearly eliminates the need for verbose xml descriptor files which are still the hallmark of other frameworks. With EJB 3.x you also avoid the JAR file proliferation typical in other frameworks. Last but not least EJB 3.x is a specification and not a product, so the user can choose between competitive implementations of the EJB 3.x spec. EJB 3.x is also lightweight in terms of performance. Adam gave some timing comparisons between POJOs and their corresponding EJBs: the overhead was only a few percent. Adam then went through some of the new 3.1 features such as Session Bean optional interfaces, Singleton Beans, Calendar based EJB Timer expressions, Asynchronous session beans, packaging EJB components in a .war without an ejb-jar, and standardized Global JNDI naming. The last item was proposed by Adam himself and is really needed as any developer who has to deploy his applications to multiple application servers will appreciate. EJB 3.1 also gives the option of a Java SE application to instantiate an EJB container; in particular this should make testing easier. EJB 3.1 also provides a subset, EJB Lite, which a provider may choose to implement rather than the full EJB 3.1 set. EJB Lite dispenses with Session Bean remote interfaces, asynchronous invocation of Session Beans, Message Driven Beans and the Timer Service. EJB 3.1 is at the public draft stage and should be final in synch with Java EE 6 around next May. GlassFish v3 is the reference implementation. So in the New Year I plan to download GlassFish and blog about my EJB 3.1 experience.
Comments
You can follow this conversation by subscribing to the comment feed for this post.