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)