Re: [REVIEW] ConfigureListener - check for FacesServlet before performing faces configuration steps

From: Adam Winer <>
Date: Thu, 17 Feb 2005 13:47:50 -0800

Ed Burns wrote:
>>>>>>On Thu, 17 Feb 2005 15:42:01 -0500, Ryan Lubke <Ryan.Lubke_at_Sun.COM> said:
> RL> Consider the case where JSF is installed in the common classloader of
> RL> Tomcat, or SJSAS.
> RL> With this configuration, the ConfigureListener will be invoked for every
> RL> web application
> RL> whether or not it uses JSF.
> RL> This modification to ConfigureListener will process the web.xml of the
> RL> current web application
> RL> scanning for the presence of javax.faces.webapp.FacesServlet. If found,
> RL> perform the normal
> RL> application processing, otherwise return.
> As it turns out, an app is not required to map the FacesServlet by the
> spec.

IIRC, ViewHandlerImpl in the RI does in fact look for
FacesServlet to figure out servlet mappings, so there is
currently a requirement to use FacesServlet. That hard
dependency is not necessary, because ViewHandlerImpl could simply
look for *all* servlet mappings, and whichever servlet
mapping corresponds to the current request is necessarily
the correct servlet, whether or not it's FacesServlet.

> Check out
> <>.
> So, I think we should consider developing a very robust heuristic, of
> which "does it map the FacesServlet?" is a part. How about:
> If any of the following are true, we know this app definately uses
> Faces.
> * It maps the FacesServlet
> * It has a faces-config (or similar) file (check the init param)
> If neither of these are true, you probably don't have a faces app.
> What do you all think?

Seems viable.

-- Adam