[seam-dev] Module reviews

Pete Muir pmuir at redhat.com
Mon Jun 14 11:28:30 EDT 2010


On 14 Jun 2010, at 16:23, Lincoln Baxter, III wrote:

> On Fri, Jun 11, 2010 at 9:20 AM, Pete Muir <pmuir at redhat.com> wrote:
> All,
> 
> A series of notes from the review Gavin and I did of the work so far on Seam 3 and what needs to be done.
> 
> Faces
> --------
> 
> * Attaching a FormValidator would work better if we attached by form id. For example:
> 
> <h:form id="locationForm">
>   ...
> </h:form>
> 
> @FacesValidator("locationForm")
> public class LocationValidator implements Validator {
>   ...
> }
> 
> would automatically cause this validator to be used. 
> 
> On PreValidateComponentEvent -- 
> if component == UIForm, search for validator with same ID as name of form
> attach UIFormValidator as child element, and attach validator instance to UIFormValidator instance.
> 
> Unfortunately, this assumes the existance of only 1 FormValidator per form, which is likely not the case in many scenarios; It encourages breaking separation of concerns (where now you have only 1 validator handling multiple scenarios per form -- if you do have multiple scenarios-- and many different combinations of fields that may or may not be related.This also breaks re-use of FormValidators by hard-binding form field IDs to validator field names.
> 
> There is also the danger of bleeding across views, where a formValidator is created that "accidentally" becomes attached to another form with the same name on a different page, or when you want to use the same form-name, but can't because you will automatically trigger form validation (that would likely fail (forcing you to disable it in some way, or choose a different name.)
> 
> This could also have the undesired effect of attaching validators that are not intended to be form validators (perhaps validators that were not even defined by the developer themselves -- e.g.: included in a JAR file.) 
> 
> Does this feature really buy us much?

Right, this would make more sense if it was a @FormValidator() with the value representing the formId.

> 
> https://jira.jboss.org/browse/SEAMFACES-37
> 
> 
> * We need a pages.xml replacement still. Gavin posted to seam-dev about an enum-based navigation system called "Replacing pages.xml" on 29th Feb 2010. The concept here is pretty elegant and well proven (e.g. Wicket).   
> 
> https://jira.jboss.org/browse/SEAMFACES-33
>  
> 
> * Page fragment caching 
>  
> https://jira.jboss.org/browse/SEAMFACES-30 
>  
> * URL Rewriting
> 
> https://jira.jboss.org/browse/SEAMFACES-31 
>  
> * conversationId tag
> 
> https://jira.jboss.org/browse/SEAMFACES-32
>  
> 
> * object/entity converter -
>  
> I'm investigating if this is still required. Also, if it is, there's a good chance that we no longer have a scope capable of explicitly providing this support (there'll have to be a custom solution.) FlashScope doesn't work because it dies after render, and conversation scope has the same problem unless you're in an LRC. This means we are left with SessionScope or a new custom scope.

EntityConverter really only worked well in a LRC anyway IIRC.




More information about the seam-dev mailing list