RSF 0.7.3M1 in repositories - testing, JSON, client rendering

antranig at caret.cam.ac.uk antranig at caret.cam.ac.uk
Sat Mar 8 15:26:14 UTC 2008


A milestone release of the upcoming RSF 0.7.3 is now available in the
CARET Maven 2 Development repository at http://www2.caret.cam.ac.uk/maven2dev/
(check the http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?page=TrunkCode ) page
for more pointers.

This release is mainly devoted to bugfixes - for a progress JIRA view go
along to http://www.caret.cam.ac.uk/jira/browse/RSF/fixforversion/10160

However, there are a couple of significant new features either in preparation
or already complete for this release.

Full-cycle testing
==================

RSF's level of abstraction allows test fixtures to be written against the
function of the UI level without needing to get involved in the often
irrelevant details of the Http/Servlet spec. This milestone exhibits some
custom derivatives of JUnit TestCase, "MultipleRSFTests" which allow
test cases to be expressed directly in terms of RSF component trees and
user responses, render and action cycles in the abstract, which leads to
much closer correspondence between application spec and testing code.

These test cases are also considerably increasing the solidity of the
framework - take a look at
https://saffron.caret.cam.ac.uk/svn/projects/RSFUtil/trunk/test/uk/org/ponder/rsf/test/diminish
for an example.

JSON and Data views
===================

RSF's binding system has been comprehensively rewritten to uniformly use
JSON throughout, rather than the previous mixture of XML and Python-inspired
dictionary formats. This greatly increases the transparency of the bindings
to code written on the client, and also enables "pure JSON views" to be
written very easily - check
https://saffron.caret.cam.ac.uk/svn/projects/RSFSamples/trunk/AjaxJSON/src/java/uk/org/ponder/rsfsamples/json/producers/JSONCatalogView.java
for an example of how straightforward this is. RSF includes its own encoders
and this functionality requires no further dependencies.

Client-side rendering
=====================

An exciting new direction within Sakai generally as well as RSF is the
possibility of having markup rewritten on the client. This allows more
rapid prototyping and lightweight development by end users and "casual"
programmers, leading to more rapid innovation in UI thinking as well as
a greater agnosticism on the server-side. An important mission within
Sakai is to roll out a consistent component/widget set framework-wide,
and whilst many of these are being written in Fluid/RSF, large parts
of Sakai remain in Velocity, JSF, XSLT and a ragbag of other frameworks
and are unlikely to meet resources to be rewritten in the near term.

Client-side rendering offers a "low-cost" means of deploying standard
widgets not only across multiple Java-based frameworks but also to
more far-flung environments such as PHP.

Sample app at
https://saffron.caret.cam.ac.uk/svn/projects/RSFSamples/trunk/AjaxJSON

This feature is in very early preview - currently only UIBranchContainer
and UIOutput are implemented from the full RSF set, but the complete
parse, resolution and render cycles are running (plus a few bugs).
The parser is currently based on a standard XML pull parser and hence
is not very performant, but we will be working with Fluid to implement
one which is more powerful and efficient.

Please do try out this release and report any issues/requests to the
RSF forums. A full release will be available within a month or two,
prior to the final significant release of RSF, 0.8.

Cheers,
Antranig.

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.




More information about the fluid-work mailing list