users@javaserverfaces-spec-public.java.net

[jsr344-experts mirror] [jsr344-experts] Re: Re: ComponentSystemEvent API review

From: Andy Schwartz <andy.schwartz_at_oracle.com>
Date: Fri, 15 Mar 2013 10:50:57 -0400

On 3/14/13 4:54 PM, Edward Burns wrote:
>>>>>> On Thu, 14 Mar 2013 15:04:09 -0400, Andy Schwartz <andy.schwartz_at_oracle.com> said:
>>>>>>
>
> AS> Hi Ed -
> AS> Thanks for reviewing this issue.
>
> AS> I am okay with leaving the code in place for the moment, as long as we
> AS> are removing this bit from the API doc:
>
> EB> * <p class="changed_added_2_2">Before calling the corresponding
> EB> method
> EB> * on the superclass, verify that there is a current component so
> EB> * that EL expressions that start with #{component} or #{cc} operate
> EB> * as expected.</p>
>
> AS> And also removing any TCK test that verifies this requirement.
>
> AS> Is that what you had in mind?
>
> Actually, I just wanted to leave it as is.

The problem with leaving the API doc as is is that it states a
requirement that we do not want to place on JSF implementations.
Removing the requirement from the API doc is more important than
modifying the implementation.

> I can't very well just
> remove the javadoc on the method altogether. Do you have a suggestion
> of what to put in place of the current text?
>

Currently we've got the following in ComponentSystemEvent:

> /**
> * <p class="changed_added_2_2">Before calling the corresponding
> method
> * on the superclass, verify that there is a current component so
> * that EL expressions that start with #{component} or #{cc} operate
> * as expected.</p>
> *
> * @param listener {_at_link FacesListener} to evaluate
> * @since 2.2
> */

And this doc in the SystemEvent superclass:

> /**
> * <p>Broadcast this event instance to the specified
> * {_at_link FacesListener}, by whatever mechanism is appropriate.
> Typically,
> * this will be accomplished by calling an event processing
> method, and
> * passing this instance as a paramter.</p>
> *
> * @param listener {_at_link FacesListener} to send this {_at_link
> FacesEvent} to
> *
> * @throws AbortProcessingException Signal the JavaServer Faces
> * implementation that no further processing on the current event
> * should be performed
> */

The simplest thing to do would be to add a note that refers to the
superclass do, eg:


> /**
> * <p>Broadcast this event instance to the specified
> * {_at_link FacesListener}, by calling the superclass's
> * <code>processListener</code> implementation.
> *
> * @see SystemEvent#processListener(javax.faces.event.FacesListener)
> * @param listener {_at_link FacesListener} to evaluate
> * @since 2.2
> */

Does this seem reasonable?

(I am fine with any text that does not impose the new requirement.)

Andy