[jsr-314-open] So what's left for 2.0?
Pete Muir
pmuir at REDHAT.COM
Thu Mar 12 13:36:43 EDT 2009
On 12 Mar 2009, at 17:20, Ed Burns wrote:
>>>>>> On Wed, 11 Mar 2009 17:09:25 -0400, Gavin King <gavin at HIBERNATE.ORG
>>>>>> > said:
>
> AS> Can anyone clarify what the plan is for 2.0?
>
> EB> We had a plan, but it never was fully prototyped and the prototype
> EB> we did have was terribly de-stabilized by the lifecycle changes we
> EB> made to accomodate Andy's your concerns regarding the
> performance of
> EB> metadata gathering. Therefore, I'm sorry to say it but we'll have
> EB> to push out State Saving enhancements to 2.1.
>
> GK> I don't understand this response.
>
> Technically, the prototype was based on the lifecycle design prior to
> the integration of the View Parameters feature. The changes to the
> lifecycle to integrate View Parameters into the spec have invalidated
> important assumptions made by the state saving prototype. Therefore,
> the prototype has to be reworked in light of the current lifecycle
> design.
>
> GK> Does this mean you are saying that a stateless lifecycle will be
> GK> impossible in JSF2?
>
> Impossible: certainly not. Easy: that's debatable. The easiest way
> for
> a user to achieve stateless JSF in 2.0 is to use only your <h:link>
> and
> <h:button> components for navigation and to mark every <f:view> as
> "transient". In this way, there will never be a POST to the server
> and
> there will never be any state saved or restored. I don't think such
> restrictions are to onerous.
>
>>>>>> On Wed, 11 Mar 2009 17:06:52 -0400, Gavin King <gavin at HIBERNATE.ORG
>>>>>> > said:
>
> GK> What is the real status on state saving. IMO, the ability to write
> GK> "stateless" components is a critical feature for JSF2.
What we have is the ability to write stateless components, what we
don't have is the enhanced delta-state-saving, based on work in
Trindidad which is more performant.
>
>
> It is certainly possible to write stateless components but not easy.
> See the P.S. for one way to do it. Here are my arguments for shipping
> 2.0 without this feature.
>
> 1. We've been working on this long enough, we have plenty of value in
> our other features, let's ship it.
>
> a. Economic arguments relating to Sun's cost for funding R&D budget
> also fit into this argument.
>
> b. We've been talking about this for the past *three* JavaOnes. I've
> been embarrased about not having it done for the past *two*. It's
> time to have it done.
>
> 2. It is possible, but not easy to do stateless components, see the
> P.S.
>
> That's pretty much it.
>
> Ed
>
> P.S. An extension could be made that makes stateless components easy.
> Here's one way to do it, assuming it's acceptable to say to the user:
> "You want stateless? Don't use any UICommand components in your
> application."
>
> The basic idea is to leverage your view parameter feature to take
> responsibility for the ValueHolder nature of a UIComponent and let the
> UIComponent subclass only handle the "renderable" nature of a
> UIComponent.
>
> Consider these classes:
>
> public class ComponentBaseStateless extends UIComponentBase.
>
> public class ComponentBaseViewParameterHelper extends UIViewParameter.
>
> * make a Facelet tag for ComponentBaseViewParameter helper (no code
> required), let's call it <ex:statelessHelper>.
>
> * ComponentBaseStateless ensures its "transient" property is always
> true and can never be set to false.
>
> * make ComponentBaseStateless emit a javascript function that, when
> called, returns the name=value pair of the component.
>
> * make the the ComponentBaseStateless.encodeAll() find its
> corresponding
> ComponentBaseViewParameter instance and pull the value to render from
> there.
>
> * require the page author using the component to place an
> <ex:statelessHelper> in the <f:metadata> section with the same id as
> the component. Any validators, converters, etc that you would
> normally attach to the component directly, are attached within this
> <ex:statelessHelper>.
>
> * require the page author to use only <h:link> and <h:button>
> components
> and furthermore, require them to call the special javascript method
> to
> ensure that any name=value pairs in the page are included in the
> query
> string.
>
> --
> | ed.burns at sun.com | office: 408 884 9519 OR x31640
> | homepage: | http://ridingthecrest.com/
--
Pete Muir
http://www.seamframework.org
http://in.relation.to/Bloggers/Pete
More information about the jsr-314-open-mirror
mailing list