Short answer is I don't think its necessary, though if MyFaces wanted to
make adjustments it would expand the reach of these tests. In the end,
I couldn't figure out a JSF spec compliant way to write these tests and
hence they are excluded however because I did figure out a way that
worked with the Mojarra implementation I kept the tests around for those
who want to use them as unit tests to validate this function.
Here are the gory details:
Render Policy is a configuration parameter that controls how the
bridge's ViewHandler processes a render. By default, the bridge will
delegate the render call and only process the render itself if the
delegate throws an exception. To avoid this behavior you can either
tell the bridge to either ALWAYS_DELEGATE or NEVER_DELEGATE -- each
which do the obvious thing. So the TCK tests for these configurations
require we insert a ViewHandler as the delegate of the bridge's
viewHandler. As you likely know, there is no formal way of doing this
in JSF 1.2 as all such viewhandlers are chained in an arbitrary chain.
In the end I found a "trick" that worked in Mojarra whereby the TCK test
supplied a faces Application object that overrode setViewHandler and
inserts the test ViewHandler before any other (that goes through this
call). This works in Mojarra because of the particular implementation
style they have for bootstrapping the objects at init time. MyFaces has
a different implementation style/strategy and though I don't remember
the details my test's scheme doesn't work -- I think all the registered
ViewHandlers are processed during the init stage without calling
setViewHandler.
-Mike-
On 6/23/2010 10:31 PM, Leonardo Uribe wrote:
Hi
Ok, good to know that. Looking into the tck I saw this comment:
".....Render Policy tests are excluded because its mechanism relies on
a Mojarra impl dependency (doesn't work on MyFaces)
If you are testing with Mojarra uncomment these out to get the
additional test apps built...."
My question is: Do we need to implement something on MyFaces to make
this work? or it is a Mojarra specific feature?
regards,
Leonardo Uribe
2010/6/23 Scott O'Bryan <[email protected] <mailto:[email protected]>>
Yes there is.. Although the JSR has not been kicked off yet, we
do have a 'very' preliminary stab as JSF 2.0 bridge that runs
Trinidad 2.0. Bright now it exists as a private branch over in the
Portlet Bridge svn repository. Starting with this version, I'm
taking advantage of the MyFaces 'share' project to get the
implementation of some base classes. It should cut down on the
amount of 'duplicated' work. Don't know what the final project
will look like exactly but O don't expect it to take nearly as
long as the other two bridges.
Scott
Sent from my iPhone
On Jun 22, 2010, at 4:48 PM, Leonardo Uribe <[email protected]
<mailto:[email protected]>> wrote:
Hi
That's cool!. Any plans for jsf 2.0 + portlets?
regards,
Leonardo
2010/6/22 Scott O'Bryan <[email protected]
<mailto:[email protected]>>
Hello everyone,
For those of you unfamiliar with the portlet-bridge project,
it is essentially the R.I. implementation of JSR-301 and
JSR-328. For over a year some core people have been working
on getting the R.I. up to par. The one piece that was
missing from this was the TCK.
Well, Michael Freedman will be announcing the release of
Portlet Bridge 1.0, which will become the R.I. for JSR-301
pending approvals. We also got the legalities of the TCK
release figured out as well and I wanted to run things by the
developers before putting a release of the project to a vote.
Essentially, the TCK exists, en total, here at Apache and is
run using a plugable maven build script instead of Sun's
Portal TCK Harness like we were planning on using initially.
What this means is that the TCK will be downloadable by
anyone though the TCK project's svn repository right here at
MyFaces. To my knowledge I think this is a first for Apache
and will hopefully pave the way for continued support of the
JCP from the Apache Community.
I'd like to start a vote to release the official TCK for
JSR-301 tomorrow but I wanted to do one final sanity check
from the community to make sure this is still in line with
what people want. When we talked about the TCK earlier,
there were many questions as to why this TCK could not exist
completely in the open source community and, in the end,
that's exactly what we did.
Thanks,
Scott O'Bryan