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)-\/



Reply via email to