On 21 Dec 2008, at 19:38, Stan Silvert wrote:
Pete Muir wrote:
>>
>> And one for the JSF2 deployer
>>
>> 5) if faces-config.xml is present, automatically add the
>> FacesServlet, it's mapping to the .jsf extension.
Several questions/comments about this one.
At a minimum, the servlet-name should be defined in addition to the
extension. The reasons become clear below.
It is allowed to have more than one declaration of the
FacesServlet. That is because you might want to have two instances
with two different configurations and two different mappings. Do we
say that if ANY FacesServlet is defined then we don't define another
one for WebBeans? Or, do we define an additional one for WebBeans
as long as it doesn't use the same default mapping?
If the FacesServlet is defined in /WEB-INF/web.xml with the same
servlet-name as the WebBeans default, then the entire auto-added
FacesServlet should not be added.
including the mapping.
This is more a default for JBoss AS, not just for WB I think... I
think this is a good idea, especially if we choose a sensible name,
like "Faces Servlet".
For the auto-added FacesServlet, should we also define defaults for
dispaly-name, description, icon, init-param, load-on-startup, run-
as, or security-role-ref?
display-name (used for GUI tooling) - default
icon (used for GUI tooling) - default
description (descriptive text about parent element) - maybe useful
load-on-startup - we always set this to 1 in Seam.
run-as - default
security-role-ref - default
if people want to override, then they can do.
The JSF 1.2 spec 10.1.2 recommends extension mapping to be *.faces.
FWIW, I prefer *.jsf, but perhaps we should stick with the spec's
recommendation as the default?
Agreed.
Since we key off the presence of a faces-config.xml file, is this
any faces-config.xml, or only one found in /WEB-INF?
I think that if practical, FacesServlet should be added any time a
faces-config.xml is present in any of the locations specified in JSF
1.2 spec section 10.4.2 Application Startup Behavior. What's more,
a faces-config file can be specified using a
javax.faces.CONFIG_FILES context param in web.xml. Since I assume
we plan to support web.xml fragments, a la Servlet 3.0, we also need
to look into every web.xml fragment in every jar to see if it
defines javax.faces.CONFIG_FILES.
I was thinking just a faces-config.xml in the war is enough.
Otherwise, won't get get confusion between app server libs. We need
something *in the user deployment* to key off. Remember, these are
only defaults to get people started.
It's possible to have a JSF app with no faces-config.xml file.
Is a
faces-config.xml required for WebBeans?
No.
Are there any considerations for portlets? Portlets don't use
the
FacesServlet at all but perhaps JSR-301 portlets will need some auto-
config as well?
Up to portal team I think.
Does the WebBeans spec say anything about portlets?
No.
N.B. This isn't spec driven, this is value-add for the RI/JBoss.