On Wed, 13 Feb 2002 21:04, Sylvain Wallez wrote:
> Something that's missing in component management is some formal
> description of components : blockinfo provides block dependencies, but
> we could also have a formal description of the configuration of the
> component (I don't want to say XMLSchema because of it's heavy weight).

+100

We have talked about this before but no one ever got around to implementing 
it ;)

> BTW, I know quite well CM/CS for having used it a lot in Cocoon and my
> projects, but not much Phoenix. It seems to me (and the current
> discussions enforce this feeling) there's a lot of redundancy both in
> concepts and code between Service/Block and Component
> interface/implementation. Moreover, looking at the "what-is-a-block"
> page, many of the given examples are what we have as components in Cocoon.

Yep. There are four main differences.

* In Phoenix the container is considered god and enforces all the contracts. 
It provides each block to other blocks only via a proxy and shutsdown the 
proxy when block gets shutdown (eliminating dangling references). It also 
only allows access to components if explicit dependencies are declared and 
makes sure everythings gets called with correct ContextClassLoader and 
ThreadGroup set etc.

* In phoenix there is left emphasis on request based components and more on 
persistent service components. ie You will never see any Block use 
ComponentManager.release() because it does not make sense in the context but 
I suspect at then end of each request a bunch of resources are released back 
to Cocoons container.

* assembly in Phoenix is more complex and explicit. Except for the 
environment.xml file most of this could be done in a lightweight fashion to 
fit in with cocoon but no one has ever made time to do so ;) 

* Phoenix hosts multiple applications in different areas where ECM does a 
single application - but may allow partial isolation via inheritance of ECM 
etc

>  From what I can, see, a block can provide several services (but AFAICS,
> most of them provide only one), whereas a component implements only one
> role. Could you enlighten me on this or point me to relevant resources
> (other than the web site) ?

Yep in Phoenix you can provide multiple services - usually different versions 
of same sort of service but useful to different users. For instance a Block 
may suppoort the FooService, ExtendedFooService and FooMBean - each of which 
is used by different clients but has the same general idea

-- 
Cheers,

Pete

*------------------------------------------------------*
|  Hlade's Law: If you have a difficult task, give it  |
|     to a lazy person -- they will find an easier     |
|                    way to do it.                     |
*------------------------------------------------------*

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to