Unico Hommes wrote:
API being the interfaces clients can use to embed Cocoon into their environment. So that would for instance be the Processor and Environment related interfaces. SPI would include the sitemap component interfaces. The stuff users implement to extend Cocoon's functionality. And then provide two separate implementations of the public API: servlet and cli.
I think most users don't care about classes at this level: they just grab a class here or there and start building their own by overriding public and protected methods.
And the problem is that these classes often were meant either as internal and/or helper classes and their contracts were only thought of within the scope of a particular use, but not for extension or reuse.
This reminds me to Item 15 in the book "Effective Java":
"Design and document for inheritance or else prohibit it"
I usually code everything possible as "final" (its probably the most used word in my java source). You can always relax but it's hard to restrict. This is in resonance with the FOM approch we've taken.
Maybe we need to check our sources to protect us from such "abuse".
-- Otego AG Tel: +41 (0)1 240 00 55 Giacomo Pati, CTO Mobile:+41 (0)79 262 21 04 Apache Software Foundation Member Mailto:[EMAIL PROTECTED] Hohlstrasse 216 Mailto:[EMAIL PROTECTED] CH-8004 Zürich Web: http://www.otego.com