On Thu, 14 Feb 2002 00:08, Sylvain Wallez wrote: > >* 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. > > Yes, mainly because they're not ThreadSafe. So, if I understand > correctly, a block is implicitly considered as thread safe and doesn't > use the lifestyle interfaces (ThreadSafe, SingleThreaded, etc).
Yep. Where a service needs to provide non ThreadSafe components they do it by returning a non-threadsafe component from one of the service methods. ie The Phoenix way would be to do something like interface ParserManager { Parser aquireParser(); void releaseParser( Parser parser ); } where cocoon would directly get parser component. > >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 > > I guess this mean the block implements the 3 interfaces, or that these > interfaces extend each other, right ? A bit of both. A likely arrangement would be interface FooService {} interface ExtendedFooService extends FooService {} interface FooMBean {} but it is largely up to the implementors. -- Cheers, Pete ----------------------------------------------------- First, we shape our tools, thereafter, they shape us. ----------------------------------------------------- -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>