On Sat, 3 Nov 2001, Stefano Mazzocchi wrote:

> [sorry for crossposting, but this interests both communities, I think]

I believe so, too, so I maintained the crossposting.

> One question: you want to remove the connection overhead in order to
> obtain Cocoon services and I agree that this is a "good thing"(tm).

Not only the connection overhead, but also the Sitemap overhead, the
Cocoon pipelining overhead etc. - it's not only a question of speed, but 
also one of usability.

> Originally, Pier and I designed Cocoon2 to be an avalon block but
> decided to move away from that since the APIs weren't solid enough.

Fair enough.

> Now, this said, please reread the above sentence: the key part is
> "obtain cocoon services".
> 
> Cocoon is, like it or not, based on a request/response paradigm that is
> modelled after HTTP.

What is the philosophy behind that model? Why tie Cocoon to a specific
delivery method, even though only philosophically? Shouldn't there be a
more generic API with HTTP-like request/response being just one of several
wrappers?

> So, my vision is that if you want "XML --> XSL(T|FO)" processing block,
> you are going to create a behavioral interface that doesn't ask for a
> particular Cocoon resource, but pushes the various streams into the
> service and wants to obtain a result.

Yes, I am very open as to the exact API, but I think it should be simpler
than having to install a whole Cocoon pipeline and push my request over
HTTP. It is probably not very hard to write an Avalon block that does
XML-->XSL(T|FO) - I think most of the code can actually be stolen from
Cocoon and we just need some Avalon wrappers. So I can do that by myself
if the Cocoon project thinks it's a bad idea.

> I simply do not and for the reason above: IoC means that you ask for a
> resource to Cocoon and it knows what to do.
>
> This is a design pattern that must not be altered in any way, under any
> circumstance or Cocoon will be nothing different from
> Xerces+Xalan+FOP+Batik.

You call it a design pattern, but 10 years ago such a system was called a
monolithic black-box. Of course every system is a monolithic black-box at
some point, if you go deep enough. But then every system is also IoC and
it is arbitrary where you define the legal entry-points to be.

I think "Xerces+Xalan+FOP+Batik" is not Cocoon. These are seperate
projects and every Apache project can use them as they see fit. But I
think it would be good, if the various projects could agree on interfaces. 
But this interface cannot be Cocoon, because it assumes too much. For me
Cocoon is the Sitemap, XSP, generators, serializers etc. - of those I
would only like to steal XSP, because code generation may be useful in
other places as well.

> I hope you guys understand my strong feelings about IoC.

Is there any "mission statement" or white paper that explains exactly what
IoC is and why Cocoon uses it? Perhaps I misunderstood it, but to me it
looks like some arbitrarily defined interfaces and everything below is a
black box.

> If not so, please, make yourself heard because it's vital that we all
> agree on something so basic.

If I remember correctly, in the ca. 2 years I've been involved with Cocoon
and recently Avalon I haven't managed to persuade anyone of anything.
Actually, much of what I said one year ago wouldn't persuade me today,
either. So, chances are I'm in the minority again with my opinion :)

cheers,

Ulrich

-- 
Ulrich Mayring
DENIC eG, Softwareentwicklung


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to