The first reference is just to look at JIRA issues regarding
flexibility, such as WW-2865
And flexibility is what I am speaking about. The new SiteMesh allows
a more tiled (recursive) decorator workflow, and allows for the mixing
of technologies (freemarker, velocity, and jsp). Using a filter
architecture means tying struts codebase to both the details of
Freemarker AND SiteMesh. Using the servlet model means not being
bound by changes in the SiteMesh filters/code at all. You could use
Freemarker, Velocity, and JSP in SiteMesh (all together), not tie
yourself to the SiteMesh codebase with the plugin, and still have all
the benefits you have now.
In one case, you can write a filter, and have to re-implement a whole
bunch of SiteMesh code. This code has been completely rewritten for
SiteMesh 3, so the plugin work will have to be redone again for it.
Since we are overriding the dispatcher, you also have to include what
file extensions will map to Velocity, and Freemarker and implement all
the logic that the request dispatcher uses. Integration of Velocity,
Freemarker, and JSP will need to happen, because otherwise Struts will
cripple SiteMesh 3 (worse than it does with SiteMesh 2).
On the other hand, you can override the Servlets for Velocity and
Freemarker, and in that case (at least with the Freemarker one), there
are great code points where you can inject your mappings without
having to reinvent anything. It seems to be very clean cut. If any
of the two technologies changes, likely the servlets will still work,
as the functions we override are specifically there for customers to
override. We won't have to respond to SiteMesh changes, and we won't
be broken at all with respect to the SiteMesh design.
Really, even with SiteMesh 2, there is a strong argument for taking
the route of servlets instead of filters for tying into Freemarker.
I hope this is all reasonable. I am typing this hastily in hopes that
it will give you what you need without delay...
-- Christian
On Oct 22, 2009, at 3:08 PM, Musachy Barroso wrote:
I don't see any advantage in using neither of them, but I am not up to
date with Sitemesh 3, could you explain "More specifically, given the
path of SiteMesh and how it will be mixing velocity and freemarker in
SiteMesh 3, it seems that the best path would be to use the Servlet
model and not the filter model in the future" a little, and why you
think that using a servlet would be that much better?
musachy
--
_,--"
cws `-._ ________-_______ "----
_----'--'--------------------------------'--'----_
//_| | \ Christian Stone, Software Engineer / | |_\\
(_____|_|__= xt...@stonescape.net =__|_|_____)
_\_____=__ http://xtian.stonescape.net/ ___/_
\/-(o)-~~-(o)-~~-(o)-`------'-(o)-~~-(o)-~~-(o)-\/