InfoQ had the opportunity to talk with the DWR (Direct Web Remoting) project lead Joe Walker. He discussed the upcoming release of DWR 3.0 including major features, helpful features and fixes for developers, a time line and a look at the future of DWR.
Craig Wickesser for InfoQ: What are some of the major features planned for version 3.0?
Joe Walker: I guess there are a number of features that will make a big difference. We hope to have transparent off-line support, so for a certain class of applications you should be able to use a DWR application while the network is offline, and have it replay your calls once the network returns. The log of server interactions should be storable in Google Gears or Dojo Offline for persistence too. The key being that the developer hardly needs to do anything to get this working. For example, InfoQ uses DWR. If we get it right, it should be easy for you to make it so that if the network dies while a user is writing a comment, then the comment doesn't get lost. When the network is next up, and the user visits InfoQ, the comment will be resent then. It's a cool feature, and using DWR it should come almost for free.
We've been working on integration on a number of fronts. We spent some time working with TIBCO to create a server side version of their open source GI widget library. The feature is like GWT in that it converts Java code to JavaScript, but it does it at runtime rather than compile time meaning that you can work with server-side data in your UI updates. I would like to extend this support to other JavaScript libraries like Dojo, YUI, Ext, jQuery and maybe even GWT. I'm not sure how far we'll get through this list for 3.0 though. We have done some integration work with JMS, the OpenAjax Hub so we can support a pub/sub architecture, and we'll be working on other UI toolkit integration too, for example so we have a Dojo RPC service that uses DWR.
We've also got some very nice file upload/download features for binary file handling with Ajax. The easiest conceivable Java API for file upload/download, and the ability to get a progress bar for free.
InfoQ: When is 3.0 slated for release? Is it still sometime in June?
Joe Walker: That's my plan. I'm not promising anything though!
InfoQ: What does the incremental release schedule look like before the final 3.0 release?
Joe Walker: I'm thinking that we'll do 2 milestones in total, and then the usual betas and release candidates. I'll also do some special releases for Jaxer. We've been working with Aptana to allow Jaxer call into Java code using DWR, which is a cool side project for me. I think Jaxer has lots of potential.
InfoQ: What are the top small features or fixes in 3.0 that a developer will be thankful for?
Joe Walker: These are all small in that they don't require any developer time, they just make things better:
- Support for asynchronous IO in Tomcat
- Support for JSON and Bayeux as transport protocols
- Shrinking of the code needed in dwr.xml (if you're not using Annotations, Spring or the fluent configurator)
InfoQ: For someone who might have looked at DWR 2.0 and decided the time wasn't right, what might 3.0 provide to help "make the deal"?
Joe Walker: The DWR documentation for 1.0 was excellent, and at a time when other Ajax libraries had virtually no documentation at all, but we dropped the ball a bit for 2.0. Since then the documentation has been getting a lot better, and I hope for 3.0 we'll be back to the standard that we had for 3.0 Comet is hard to get perfect, and as a result our Reverse Ajax support has been less than 100%, We've recently release 2.0.3 which has fixed a number of issues, and we're tacking some of the trickier issues like page session re-synchronization with 3.0.
InfoQ: What happened to 2.1, why the jump to 3.0?
Joe Walker: I totally failed to make good on my promise to keep the next release small. So 3.1 comes after 3.0, and fairly quickly too.
InfoQ: What sort of impact will Tibco's role play in the future of DWR?
Joe Walker: To a certain extent we've completed the work we set for ourselves - the server-side version of the TIBCO GI library. We'll be looking how people use it to decide where to take it next.
InfoQ: What are the next major milestones for DWR after 3.0?
Joe Walker: I'm not sure really. I'm sure there will be things that we don't get right, or we don't complete, and we've still got open feature requests in the bug system. My best guess is the we'll have a number of toolkit based releases, so we to a release concentrating on DWR+Dojo, and another release concentrating on DWR+Ext and so on.