Revolutionary developer – the server side java symposium finale

Cameron summarized the conference. He referenced high points like the coderanch bananas. He also reminded of more important thinks like the new JVM languages being for things Java doesn’t handle well like parallelizing large collections. He also reminded of Gosling’s nice tangents. and javaranch is a media partner. Cool being listed with real companies.


The picture in this post made one of these slides – me holding inflatable bananas.  Cameron referenced my comment that a small thing you can do in democracy is vote once and complain to your neighbor, but what can you do for the JCP.

He also referenced Ben Evans comment that symposium involves drinking so going to the bar last night was ok :).

Brakes allow you to move forward faster so you slow down to regroup and go faster in the future.

Active people have their opinions count proportionally more than others.

Things have ramifications. Facebook and privacy. Nice story about how technology prevents certain people from entering a casino.

to The Server Side organizers: thank you for having the coderanch moderators at your conference. It was a great one and I appreciate having had the opportunity to speak! And blog about it!

The point being that we do participate that way and that’s how we contribute to making things better.

Live from TSSJS – Ajax and JSF with Max

Live blogging from TheServerSide Symposium on the final day, attending “Ajax Applications with JSF 2 and New RichFaces 4” presented by Max Katz.  Max is presenting a talk on Ajax, which has been added to JSF2, as well as integratin with RichFaces 4.  Max will be part of a client-side panel in the next set of talks with myself, Cameron McKenzie, and Bear Bibeault in the main ballroom.

Attendance has been significantly reduced today as many people, CodeRanch staff included, have started flying back home.

1.  JSF2 New Features
Max lists some of the new features in JSF2:

  • Facelets
  • Compsitie components
  • Implicit Navigation
  • Bean validation
  • Basic Ajax – Focus of the talk

2.  Ajax Support
Ajax support in JSF2 has been added via f:ajax tag.  Max presents some code examples that include event handling for the Ajax tags.

3.  Where are the rich JSF2 components?
Max focusses on JSF2 as a framework for developing extensive widgets and rich UI, but does not provide them.  In other words, to use JSF2 in practice, you will need to also include a rich framework, built on top of JSF2, as part of your application.  The rest of his talk is focussed on RichFaces 4, a rich JSF2 framework with customizable/skinnable widgets.

4.  RichFaces 4
RichFaces 4 has basic support for JSF2, so it is the first cross-over transition.  The CR1 is available and the main release is slated for the end of March or early April, so as soon as 1-2 weeks.  The RichFaces 4 tag is available via a4j:ajax.

5.  What’s new in RichFaces 4?
New version relies entirely on jQuery in JavaScript.  Redesign for semantic HTML principles.  Also includes server-side and client-side performance optimizations.  Finally, a lot of code clean-up and review was completed by the RichFaces team.

From a deployment perspective, it supports publishing to Google App Engine as well as Amazon EC2 Cloud.

Conclusion
Max spent the rest of his talk presenting individual facets of the RichFaces 4 API.  It was a little dry if you don’t have a strong foundation in RichFaces, but still educational.  The client side valdation, based on bean validation, looked particularly useful.

JEE 6 patterns – the server side java symposium

As of Websphere 8, all major app servers support J EE 6 except one that I hadn’t heard of. Adam Bien got a number of jabs in at Rod Johnson’s comment that NetBeans isn’t prevalent.

Many patterns are gone from earlier versions of JEE including this list. Amazing how much content was discussed on one slide.

  • most interfaces – Adam mentioned another valid use of interfaces – reuse. Also noted the IXXX or XXXImpl are signs that the interface isn’t needed.
  • DAOs – should be able to state the reason if have. To avoid duplication have a service with a business name. for example OrderSearchService
  • DTOs – duplication across layers. And if you use a mapping framework like bean utils, you aren’t really decoupling. It is useful to do create a DTO when you don’t have control over the underlying object. Similar reasoning to interfaces. A good metric is whether every layer is affected for a feature request
  • ServiceLocator, Factory – use injection
  • Business Delegate – just delegates to ejb, for handling exceptions
  • Session Facade – needed to wrap CMP because didn’t work well
  • Value Object Assemblers – can just create aggregate object
  • Service Activator – asynchronous support now built in with annotation or CDI events if want ti decouple
  • Publish Subscribe with JMS – for local delivery, use CDI events instead
  • Mandatory XML configuration – Repeating the whole package name in xml so hard to refactor. Adam sounds like he favors minimal XML. I asked what belongs in XML and the answer was passwords/ips. [I don’t think he meant passwords]. He did say anything that could change often.

Other Notes

  • Keep the war as small as possible to speed up deployment. try to keep infrastructure jars out of war manage versions of jars by deploying to separate tomcat if have to use third party jars. Adam doesn’t use third party jars unless absolutely necessary
  • go for convention over configuration
  • ECB – entity (jpa) control (optional cdi bean) boundary (stateless entry point decorated by aspects), way to model a component
  • see anti if campaign website for the lack of OO in JEE

I missed a bit of this presentation even though it was really good because I was getting ready for mine.