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]>

Reply via email to