Carsten Ziegeler skrev:
Sylvain Wallez wrote:
However, a few remarks:
- how is Processor different from Servlet?
The interface is similar. The difference is configuration and who
manages the component. If a processor is a component we can use all nice
features of spring for that and I think the configuration is nicer.
Things like changing the configuration at runtime should be easier as
well as you don't have to modify the web.xml.
Servlet is just an interface, no one prevents you from managing a component that implements Servlet in Spring. And as you rather often is going to need a Servlet context or configuration within a Processor, you end up pretty close to Servlet anyway.

The advantage to use the Servlet interface is that we give the users greater flexibility in reusing the various controllers that we might implement.

But as said before, we can evaluate the consequences when you have implemented a little bit more. It shouldn't be much work to change to Servlet, if that is a better idea.

- SitemapProcessorFactory is pretty close to
ServletContext.getRequestDipatcher()
No, not exactly. The dispatcher is based in the request uri where as the
sitemap process factory gives you a processor for a sitemap specified by
the sitemap location which might be totally different to the incomming uri.
Don't think this is the best way to do it. The current MountTableProcessor means that you only can mount SitemapProcessor and no other kinds of controllers, as it explicitly manage the creation of the SitemapProcessors. IMO it is better to let the component container (Spring) create the SitemapProcessor (and other processors), then the MountTableProcessor instead contains an association between uri prefixes and component ids. And this makes it usable together with any processor as its not the concern of the MountTableProcessor to create the processor anymore.

Also it makes the path to the sitemap for a specific SitemapProcessor a concern for the configuration of the SietmapProcessor rather than the configuration of the MountTableProcessor. Much better SoC IMO.

/Daniel

Reply via email to