I'm now very excited about this change.

When I realized that I had all the technology in place 
to support this, I don't think I fully appreciated how 
good it was going to be.  I mean, how difficult is it to 
converts objects to strings and back?

This change is primarily about the Direct component, 
though it affects any other component or service that 
makes use of service parameters.

In the past, those service parameters were an array of 
*String*.  Starting in 2.2, the parameters are an array 
of *Object*.

Tapestry converts the Objects into strings, which are 
included in the URL.  However, the strings can then be 
converted *back* to their object values.  This not only 
works for Integer, Double, Long, Byte, etc., but for any 
Serializable object (though the string encoded into the 
URL can be quite long!).

This makes listener methods much simpler, instead of 
having to figure out how to convert the String into an 
Object with something like

  Integer primaryKey = new Integer(parameters[0]);

The listener methods can instead assume the objects are 
the right type:

  Integer primaryKey = (Integer)parameters[0];

This really works on the "objects, methods and 
properties" mantra.

The downside of this is a few interfaces (IRequestCycle, 
IEngineService, Gesture, AbstractService) changed in non-
backwards compatible ways, so there will be a slight 
cost in upgrading from 2.1 to 2.2.



--
[EMAIL PROTECTED]

http://tapestry.sf.net


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to