We can add non-default spec-breaking behavior by means of
configuration parameters.

If "org.apache.myfaces.INITIALIZE_SKIP_JAR_FACES_CONFIG_SCAN" is of
value for someone, add it in.


On Mon, Apr 4, 2016 at 4:07 PM, Bill Lucy (JIRA) <dev@myfaces.apache.org> wrote:
>
>     [ 
> https://issues.apache.org/jira/browse/MYFACES-4042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15224957#comment-15224957
>  ]
>
> Bill Lucy commented on MYFACES-4042:
> ------------------------------------
>
> Based on what the spec says, I think it's valid for us to skip the 
> faces-config.xml scanning if the user doesn't explicitly put the FacesServlet 
> in their web.xml.
>
> There are cases of users depending on MyFaces dynamically adding a 
> FacesServlet for the various faces-config.xml possibilities, though.  I think 
> that if we do make a change leaving this configurable would be a good idea.
>
>> Improve startup time by skipping classpath jar scan for *.faces-config.xml
>> --------------------------------------------------------------------------
>>
>>                 Key: MYFACES-4042
>>                 URL: https://issues.apache.org/jira/browse/MYFACES-4042
>>             Project: MyFaces Core
>>          Issue Type: Improvement
>>    Affects Versions: 2.1.18, 2.2.9
>>         Environment: WebSphere
>>            Reporter: Bill Lucy
>>            Priority: Minor
>>         Attachments: MYFACES-4042.patch
>>
>>
>> In version 2.1 org.apache.myfaces.ee6.MyFacesContainerInitializer was 
>> updated to scan for faces-config.xml resources in applications JARs during 
>> startup, as part of the process to add a FacesConfig in onStartup().  This 
>> is a very expensive scan, since we have to iterate over every file in every 
>> jar on the app classpath.
>> This scan is not completely necessary: in the spec we have:
>> Section 11.4.2 “Application Startup Behavior”
>> Implementations may check for the presence of a servlet-class definition of 
>> class javax.faces.webapp.FacesServlet in the web application deployment 
>> descriptor as a means to abort the configuration process and reduce startup 
>> time for applications that do not use JavaServer Faces Technology.
>> Which I interpret to mean that skipping checking the app jars at init time - 
>> for the purpose of adding a dynamic FacesServlet - is valid.  Given the 
>> performance hit for the scan, I think adding a context param to disable the 
>> scan would be worthwhile.  Something like:
>> org.apache.myfaces.INITIALIZE_SKIP_JAR_FACES_CONFIG_SCAN
>> Would this be worthwhile for others?
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)

Reply via email to