DWR version 3.0 Release Candidate 1
DWR version 3.0
The much awaited DWR version 3.0 has reached release candidate 1. What's new?
- 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
,InputStream
etc andFileTransfer
can 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.Locale
andjava.util.Currency
objects) - 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 (
Window
andDocument
can 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.require
all 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)
- Aptana 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. 2 things dropped out that we'd previously talked about: Bayeux Support and Gears Offline integration. We'll get to those, particularly Gears, soon.
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.
Comments
* Wildcard support (conversion)
* Automatic URL configuration for Spring MVC (<dwr:url-mapping /)
* Annotation support via namespace handler (<dwr:annotation-config /)
* Annotation scan (<dwr:annotation-scan /)
* Annotated DTO's (with/without scan)
* Bean converters (using a new attribute in <dwr:convert /)
* Support for lazy-init beans
* Multiple DWR configurations supported (even in different contexts)
* Create remote proxies from existent beans (<dwr:proxy-ref /)
* Bug fixes & minor additions (ie. support for filter params)
* A test bench!
* Support for proxied beans with generic parameters (wait for RC2)
Comments have been turned off on old posts