myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Marinschek (JIRA)" <...@myfaces.apache.org>
Subject [jira] Updated: (MYFACES-1411) Lifecycle phase executions repetitions
Date Wed, 20 Sep 2006 22:41:23 GMT
     [ http://issues.apache.org/jira/browse/MYFACES-1411?page=all ]

Martin Marinschek updated MYFACES-1411:
---------------------------------------

        Status: Resolved  (was: Patch Available)
    Resolution: Fixed

Thanks to Nikolay Petrov for this excellent cleanup patch.

Nikolay, for the future: 

- please add the ASL-License header on top of every file you attach as a patch.
- please send patches (create a patch, and not send the full file)

regards,

Martin


> Lifecycle phase executions repetitions
> --------------------------------------
>
>                 Key: MYFACES-1411
>                 URL: http://issues.apache.org/jira/browse/MYFACES-1411
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: JSR-127
>    Affects Versions: 1.1.4
>            Reporter: Nikolay Petrov
>         Assigned To: Martin Marinschek
>            Priority: Minor
>             Fix For: 1.1.5-SNAPSHOT
>
>         Attachments: ApplyRequestValuesExecutor.java, InvokeApplicationExecutor.java,
LifecycleImpl.java, PhaseExecutor.java, ProcessValidationsExecutor.java, RenderResponseExecutor.java,
RestoreViewExecutor.java, UpdateModelValuesExecutor.java
>
>
> Every phase in LifecycleImpl looks like:
>     private boolean applyRequestValues(FacesContext facesContext, PhaseListenerManager
phaseListenerMgr)
>         throws FacesException
>     {
>     		boolean skipFurtherProcessing = false;
>         if (log.isTraceEnabled()) log.trace("entering applyRequestValues in " + LifecycleImpl.class.getName());
>         try {
>             phaseListenerMgr.informPhaseListenersBefore(PhaseId.APPLY_REQUEST_VALUES);
>             if(isResponseComplete(facesContext, "applyRequestValues", true))
>             {
>                             // have to return right away
>                             return true;
>             }
>             if(shouldRenderResponse(facesContext, "applyRequestValues", true))
>             {
>                             skipFurtherProcessing = true;
>             }
>             facesContext.getViewRoot().processDecodes(facesContext);
>         } finally {
>             phaseListenerMgr.informPhaseListenersAfter(PhaseId.APPLY_REQUEST_VALUES);
>         }
>         if (isResponseComplete(facesContext, "applyRequestValues", false)
> 				|| shouldRenderResponse(facesContext, "applyRequestValues", false))
>         {
>         		// since this phase is completed we don't need to return right away even if
the response is completed
>         		skipFurtherProcessing = true;
>         }
>         if (!skipFurtherProcessing && log.isTraceEnabled())
> 			log.trace("exiting applyRequestValues in "
> 					+ LifecycleImpl.class.getName());
>         return skipFurtherProcessing;
>     }
> And that is repeated as many times as phases are. The fix will be to extract the common
behavior in a method, that receives one additional parameter - PhaseExecutor and delegate
to it the real execution.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message