DWR version 3.0
Resolved Issues
We have resolved over 150 issues since version 2.0.7.
New Features
- RPC Enhancements
- Varargs support
- Method overloading (DWR tries to copy Java's method matching rules)
- Typed parameters (so you can say
new Apple()in JavaScript and pass it to theaddFruit()method and DWR will instantiate the correct type on the server) - Lightweight typed parameters (as above, but by adding
$dwrClassName:"Apple", for when you are getting the objects from something else)
- More natural synchronous XHR (so you can call
var reply = Remote.getData()when doing 'Sjax') - Improved Marshalling
- Binary file upload/download (
byte[],java.awt.BufferedImage,InputStreametc andFileTransfercan be uploaded from aninput type=file, offered for download, or sent to animg)
- Binary file upload/download (
- Functions (Store a reference to a JavaScript function on the server for later execution)
- Objects by Reference (Store a reference to a JavaScript object, and then call methods on that)
- Locale, Currency (DWR will marshal to and from
java.util.Localeandjava.util.Currencyobjects) - Reverse Ajax
- JavaScript can now implement a Java interface (For simple integration with Java Events/Listeners)
- More scalable Reverse Ajax APIs (See
org.directwebremoting.Browser) - DOM Manipulation Library (
WindowandDocumentcan now be manipulated from the server) - The server now runs in 3 modes: stateless (New - save memory with no page tracking), passiveReverseAjax (the default) and activeReverseAjax (comet enabled)
- TIBCO GI Integration
- Complete set of Reverse Ajax Proxy APIs (So you can manipulate your GI user interface from Java on the server)
- Dojo Integration
- Data Store (Keep a server side data store in sync with data in a client browser with both sides able to send updates. The data store also supports paging, sorting and filtering)
- Packaging Integration (
dojo.requireall your DWR scripts)
- Server Support
- Asynchronous servlet support for Tomcat and Glassfish
- Improved Spring and Guice support
- Over the wire
- JSONP support
- JSON-RPC support
- Tech Previews
- JMS Integration (Publish to the browser directly from JMS)
- Jaxer Integration (Zero configuration for trusted environments)
- Infrastructure
- SVN (We've moved from CVS to SVN)
- Related Projects (Our repository contains a set of related projects including a number of demos)
- CLA (We've been through a legal review and have signed CLAs for dwr.jar)
- Dojo Foundation (We joined the Dojo Foundation and are now hosted by their servers)
- Better Documentation (DWR version 1.x had great docs. Version 2.x let things slide a bit, but we've dropped Drupal, and have our own system now)
There are also a bunch of things like better logging, error reporting and so on, but the full list would get quite dull.
I'm sure there will be lots of questions about how to use these features. Please don't ask in the comments. Join the mailing list and ask there. As we roll out the new documentation system in the next week or so, all the details will be in there, and I'll then come back and link up this blog post.
You can download it now.