DWR Changelog

What's new in DWR 3.0 RC2

Jan 10, 2012
  • 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 the addFruit() 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 and FileTransfer can be uploaded from an input type=file, offered for download, or sent to an img)
  • Locale, Currency (DWR will marshal to and from java.util.Locale and java.util.Currency objects)
  • Reverse Ajax:
  • More scalable Reverse Ajax APIs (See org.directwebremoting.Browser)
  • DOM Manipulation Library (Window and Document 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)
  • 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)

New in DWR 3.0 RC1 (Nov 2, 2010)

  • 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 the addFruit() 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 and FileTransfer can be uploaded from an input type=file, offered for download, or sent to an img)
  • 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 and java.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 and Document 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)
  • 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.