Thanks Scott and Mike for all support.

2008/3/6, Scott O'Bryan <[EMAIL PROTECTED]>:
>
> Rog,
>
> Keep watch on the mailing list for announcements regarding releases of
> Portlet-Bridge 2.0.  That's the one that will have the eventing support.
>
> Scott
>
>
> Rogerio Pereira wrote:
> > Thanks for all answers Mike, I think you are on the right way, I'm
> > about start a project that requires the event mechanism as described
> > in JSR 286, after some research I found jboss portlet container 2.0 as
> > the first usable implementation and now I use it, my first approach
> > about jsf and portlet events worked as expected but with a very poor
> > implementation (create FacesContext from factory and resolving the
> > target managed bean), I'll continue my work on this project using JSP
> > and JSTL but I'll create another version in JSF as soon as we have
> > portlet events support on JSR 301 implementation.
> >
> >
> > 2008/3/6, Michael Freedman <[EMAIL PROTECTED]
>
> > <mailto:[EMAIL PROTECTED]>>:
>
> >
> >     FYI ... here are the preliminary thoughts related to Portlet 2.0
> >     Coordination features (events and public parameters) that are
> >     being worked on in the JSR 301 EG -- the plan is to have an Early
> >     Public Draft and hopefully an basic impl of the RI (MyFaces
> >     PortletBridge project between mid-April and mid-May.
> >
> >
> >           Portlet Coordination:  Public Render Parameters
> >
> >     Summary:
> >     Idea is to map PRPs (and events) as alternative input to models.
> >     Because JSF doesn't really have concept of render parameters (i.e.
> >     state not remembered/reflected in the view state/models) the
> >     bridge makes PRPs look more like events.  I.e. PRPs in JSR 286 are
> >     resupplied on each request hence the portlet isn't expected to
> >     retain their state -- rather they merely render using this
> >     additional information.  In Faces we map directly to the models
> >     where we expect this state to be preserved @ some scope, or in the
> >     view state, or in the bridge request scope.  The model mapping is
> >     accomplished via a new faces-config bridge application-extension.
> >     The extension names a PRP and defines the associated Faces EL it
> >     executes.  Received PRPs have the associated set accessor of this
> >     EL executed.  The get accessors are called at end of lifecycle to
> >     see if there are new values to be returned.  It will works as
> follows:
> >
> >     PRPs received in an Action:
> >
>
> >        1. Activate FacesContext/Lifecycle/View/Restore bridge managed
> >           scope (as usual).
> >        2. Check request parameters for PRPs.  For each PRP execute the
>
> >           associated set accessor on the EL mapped to this PRP passing
> >           the value of the parameter. As parameters are String only,
> >           the accessors must also be String typed.  I.e. we don't do
> >           type conversion -- in part because we expect the model to
> >           have to distinguish between being updated via a PRP vs.
> >           regular Faces execution -- hence potentially a discrete
> >           accessor for PPRs that then push into the regular model field.
>
> >        3. If the portlet has configured an EventHandler call it
>
> >           passing a well known Event representing
> >           PublicRenderParametersChanged (pass request so handler can
> >           see the PPRs if needed).  This allows event handler to
> >           trigger any needed model updates/recomputations.
>
> >        4. Wrap the request to hide PPRs from request(map) during
>
> >           further processing -- note they are still available if call
> >           the getPublicRenderParameters api directly.
>
> >        5. Call lifecycle.execute (ensures that the model values are
> >           pulled into the view)
> >        6. Process result of action/save bridge request scope as usual
>
> >           except re-execute all mapped PRP Expressions (call the
> >           getters) and for each that yields a result different then
> >           what is in the request -- return a new PRP/value.  Open
> >           question:  only check those params that were in the request
> >           or all mapped PPRs?  I would argue that we do all and for
> >           any that return null we delete the PPR from the response.
> >
> >     PRPs received in Events:
> >
>
> >        1. Activate FacesContext/Lifecycle/View/Restore bridge managed
>
> >           scope (as usual). If no bridge request scope, create one.
>
> >        2. Check request parameters for PRPs.  For each PRP execute the
>
> >           associated set accessor on the EL mapped to this PRP passing
> >           the value of the parameter. As parameters are String only,
> >           the accessors must also be String typed.  I.e. we don't do
> >           type conversion -- in part because we expect the model to
> >           have to distinguish between being updated via a PRP vs.
> >           regular Faces execution -- hence potentially a discrete
> >           accessor for PPRs that then push into the regular model field.
>
> >        3. If the portlet has configured an EventHandler call it
>
> >           passing a well known Event representing
> >           PublicRenderParametersChanged (pass request so handler can
> >           see the PPRs if needed).  This allows event handler to
> >           trigger any needed model updates/recomputations.
>
> >        4. Wrap the request to hide PPRs from request(map) during
>
> >           further processing -- note they are still available if call
> >           the getPublicRenderParameters api directly.
>
> >        5. Call the configured EventHandler passing the Event request
>
> >           (this allows the EventHandler to push the payload into
> >           associated MBs).
>
> >        6. Call lifecycle.execute (ensures that the model values are
> >           pulled into the view)
> >        7. Process result of action/save bridge request scope as usual
>
> >           except re-execute all mapped PRP Expressions (call the
> >           getters) and for each that yields a result different then
> >           what is in the request -- return a new PRP/value.
> >
> >     PPRs received in a Render:
> >
>
> >        1. Activate FacesContext/Lifecycle/View/Restore bridge managed
> >           scope (as usual)
> >        2. Check request parameters for PRPs.  For each PRP execute the
>
> >           associated set accessor on the EL mapped to this PRP passing
> >           the value of the parameter. As parameters are String only,
> >           the accessors must also be String typed.  I.e. we don't do
> >           type conversion -- in part because we expect the model to
> >           have to distinguish between being updated via a PRP vs.
> >           regular Faces execution -- hence potentially a discrete
> >           accessor for PPRs that then push into the regular model field.
>
> >        3. If the portlet has configured an EventHandler call it
>
> >           passing a well known Event representing
> >           PublicRenderParametersChanged (pass request so handler can
> >           see the PPRs if needed).  This allows event handler to
> >           trigger any needed model updates/recomputations.
>
> >        4. Wrap the request to hide PPRs from request(map) during
>
> >           further processing -- note they are still available if call
> >           the getPublicRenderParameters api directly.
>
> >        5. Only if we processed any PRP, call lifecycle.execute
>
> >           (ensures that the model values are pulled into the view)
>
> >        6. Call lifecycle.render
> >        7. Update VIEW_STATE_PARAM as usual
> >
> >     PRPs received in Resource:
> >
> >        1. If there is a bridge managed scope, restore it but don't
>
> >           copy the managed request attributes back into the request.
> >           Otherwise create a scope (ID will have to be maintained in
> >           session until next full action).
>
> >        2. Check request parameters for PRPs.  For each PRP execute the
>
> >           associated set accessor on the EL mapped to this PRP passing
> >           the value of the parameter. As parameters are String only,
> >           the accessors must also be String typed.  I.e. we don't do
> >           type conversion -- in part because we expect the model to
> >           have to distinguish between being updated via a PRP vs.
> >           regular Faces execution -- hence potentially a discrete
> >           accessor for PPRs that then push into the regular model field.
>
> >        3. If the portlet has configured an EventHandler call it
>
> >           passing a well known Event representing
> >           PublicRenderParametersChanged (pass request so handler can
> >           see the PPRs if needed).  This allows event handler to
> >           trigger any needed model updates/recomputations.
>
> >        4. Wrap the request to hide PPRs from request(map) during
>
> >           further processing -- note they are still available if call
> >           the getPublicRenderParameters api directly.
>
> >        5. Call lifecycle.execute (besides processing the resource,
>
> >           ensures that the model values are pulled into the view)
>
> >        6. Call lifecycle.render
> >        7. Save request scope into bridge request scope (use fixed up
>
> >           VIEW_STATE_PARAM).  The result should be a current
> >           reflection of request scope data needed to render the
> >           current page entirely.
> >
> >
> >           Portlet Coordination:  Events
> >
> >     Summary:
> >     Call a portlet configured event handler to allow the client code
> >     to directly push the event payload into the underlying models.
> >     This will most likely use JSF EL to do the push.  I.e. unlike PRPs
> >     the event payloads are arbitrary/complex types hence its
> >     prohibitive for us to use declarative mapping (at this point).
> >     Rest of processing is as described above -- we execute the
> >     lifecycle (lifecycle.execute) so the View can pull new values
> >     based on any underlying model changes and then we process the
> >     result in a manner similar to how we currently handle actions:
> >
>
> >        1. Activate FacesContext/Lifecycle/View/Restore bridge managed
>
> >           scope (as usual). If no bridge request scope, create one.
>
> >        2. Check request parameters for PRPs.  For each PRP execute the
>
> >           associated set accessor on the EL mapped to this PRP passing
> >           the value of the parameter. As parameters are String only,
> >           the accessors must also be String typed.  I.e. we don't do
> >           type conversion -- in part because we expect the model to
> >           have to distinguish between being updated via a PRP vs.
> >           regular Faces execution -- hence potentially a discrete
> >           accessor for PPRs that then push into the regular model field.
>
> >        3. If the portlet has configured an EventHandler call it
>
> >           passing a well known Event representing
> >           PublicRenderParametersChanged (pass request so handler can
> >           see the PPRs if needed).  This allows event handler to
> >           trigger any needed model updates/recomputations.
>
> >        4. Wrap the request to hide PPRs from request(map) during
>
> >           further processing -- note they are still available if call
> >           the getPublicRenderParameters api directly.
>
> >        5. Call the configured EventHandler passing the Event request
>
> >           (this allows the EventHandler to push the payload into
> >           associated MBs).
>
> >        6. Call lifecycle.execute (ensures that the model values are
> >           pulled into the view)
> >        7. Process result of action/save bridge request scope as usual
>
> >           except re-execute all mapped PRP Expressions (call the
> >           getters) and for each that yields a result different then
> >           what is in the request -- return a new PRP/value.
> >
> >
> >
> >     Scott O'Bryan wrote:
> >>     There is going to be a spec covering this as part of JSR-301, but
> >>     although it's well under design, there is not a public draft
> >>     released yet.  We are trying to get the 168 bridge out first.
> >>
> >>     Scott
> >>
> >>     Rogerio Pereira wrote:
> >>>     Hi guys!
> >>>
> >>>     I saw the list of speakers at JSFDays and the topics to be
> >>>     discussed, I'm specially interested about portlets and jsf topic
> >>>     because I have been working on portlets recently, I could use
> >>>     jsf and facelets without any problems on liferay and some others
> >>>     portal implementations but now I need to use the event mechanism
> >>>     as defined in JSR-286, how can we handle this kind of feature
> >>>     when using jsf as framework to develop portlets? My first
> >>>     thought is related with some kind of interface and can used to
> >>>     indicate which beans will publish/listen portlets events.
> >>>
> >>>     Right now we have JBoss Portlet Container 2.0 as the only
> >>>     portlet container that supports JSR-286, I would like to know
> >>>     what you guys think about portlets events and jsf topic.
> >>>
> >>>     --
> >>>     Yours truly (Atenciosamente),
> >>>
> >>>     Rogério (_rogerio_)
> >>>     http://faces.eti.br
> >>>
> >>>     "Faça a diferença! Ajude o seu país a crescer, não retenha
> >>>     conhecimento, distribua e aprenda mais."
> >>>     (http://faces.eti.br/?p=45)
> >>
> >
> >
> >
> > --
> > Yours truly (Atenciosamente),
> >
> > Rogério (_rogerio_)
> > http://faces.eti.br
> >
> > "Faça a diferença! Ajude o seu país a crescer, não retenha
> > conhecimento, distribua e aprenda mais." (http://faces.eti.br/?p=45)
>
>


-- 
Yours truly (Atenciosamente),

Rogério (_rogerio_)
http://faces.eti.br

"Faça a diferença! Ajude o seu país a crescer, não retenha conhecimento,
distribua e aprenda mais." (http://faces.eti.br/?p=45)

Reply via email to