Alexander Klimetschek skrev:
Joerg Heinicke schrieb:
Component inheritance is a standard functionality of Spring's
ApplicationContext implementations. So this should be no problem at all.
Although this is not yet used in any way with the blocks. Two blocks,
where one inherits from another, don't know that the other one uses a
SitemapServlet, and the only interface between them is the servlet
api. Components you define in your sitemap might be known to Spring
but its about letting the TreeProcessor know how to resolve component
names. So I don't think it is possible at all to integrate that into
the blocks fw.
This is by design.
In earlier incarnations of the block architecture, the idea was to have
component inheritance (and polymorphism) as well as servlet inheritance
(or rather sitemap inheritance). We had some discussions about what this
would mean at the list, and the main conclusion is that it gets rather
complicated. You need to make sure that components always are executed
in the right context and classloader and this gets really messy when
combine with polymorphic block protocols that communicate over SAX events :/
And even if we had the energy and ability to solve these problems, I
that the concept of mixing component reuse and servlet reuse is flawed
and overly complicated anyway.
IMO, it is much better to consider component management and servlet
reuse as separate concerns as we do in the current architecture. The
blocks fw takes care about servlet reuse. For component reuse we have
Spring. Now the current mechanism for component reuse with Spring in
Cocoon is rather basic, we could get much further by using OSGi and the
OSGi-Spring bridge. But we should probably try to release 2.2, before
starting to work on that ;)
BTW: What about those sitemap-additions directory?
Didn't we remove them?
/Daniel