I have no problem using Ajax4Jsf and Shale.
-Original Message-
From: Gary VanMatre [mailto:[EMAIL PROTECTED]
Sent: 3 ottobre 2007 16.44
To: user@shale.apache.org
Subject: Re: your mail
From: Crabb, Curtis [EMAIL PROTECTED]
As soon as I start using Shale 1.0.4, Ajax4Jsf stops working. I
believe
the issue is as follows:
1.) Ajax4Jsf depends upon the javax.faces.ViewRoot being an instance
of
AjaxViewRoot.
2.) Shale depends upon the javax.faces.ViewRoot being an instance of
ShaleViewRoot.
I believe I am correct in saying that my application can only use one
implementation of javax.faces.ViewRoot; the one being used in my case
is
simply the last jar that is being loaded, which happens to be Shale (I
could also specify my own ViewRoot in my WEB-INF faces-config and then
niether AjaxViewRoot or ShaleViewRoot will be used). That being the
case, is it even possible to use both Ajax4Jsf and Shale in the same
application?
The shale view root is not required. Why not try loading the
AjaxViewRoot
in your application's faces-config.xml. Or, rename the shale view jar
to
something like aaa-shale-view.jar.
Can anyone shed some light on my confusion? Why does Shale override
the
ViewRoot implementation when that immediately stops me from using
other
3rd party products that override ViewRoot?
Indeed, you could ask the same question of Ajax4Jsf?
In shale's case, it was done to catch exceptions raised by JSP to make
sure that
the view controller callback contracts worked.
In JSF 1.2 the lifecycle is an extension point that can be decorated
which would
be a better option now that it's avaiable.
Gary
A bit of extra information:
Shale 1.0.3 does not provide it's own implementation of
javax.faces.ViewRoot; that being the case, I can successfully use it
with ajax4jsf.
Also, I can use ajax4jsf with Shale 1.0.4 if I specify in the
following
in my own WEB-INF faces-config
javax.faces.ViewRoot
org.ajax4jsf.framework.ajax.AjaxViewRoot ss
javax.faces.ViewRoot
I believe this works simply because my copy of faces-config.xml is the
last configuration loaded, so my override takes precedence.
However, this can break Shale because now Shale sees an instance of
AjaxViewRoot rather than ShaleViewRoot.
So I am stuck with not knowing how to make both products work
simultaneously.
This message is for the designated recipient only and may contain privileged,
proprietary, or otherwise private information. If you have received it in
error, please notify the sender immediately and delete the original. Any other
use of the email by you is prohibited.