Peter,

1) Central definition of interfaces (and exceptions)

   Pros : Simple solution
   Cons : Not version tolerant, though could have heretical version
numbers in package or class names (ref LayoutManager2).  Only good for
regular server concepts (HTTPServer) as opposed to bespoke concepts
(company X's ABC Server)

2) Promotion of interfaces (and exceptions).  SAR file contains a jar of
interfaces that it implements, it could hand it to the parent component
(Phoenix) and Phoenix could make them available seperately, not
necessarily at promordial level.  It's an RMI type concept, but RMI is
overkill for several reasons, not least of which is the ill-defined
RemoteException.

  Pros : Can tolerate different versions.  Good for standards based
services as well as bespoke ones.
  Cons : Difficult to implement

Thoughts?


I like (1)


OK, that's cool.  Often simple is best.

Proposal : We move org.apache.avalon.cornerstone.services.* to org.apache.avalon.pheonix.services.*

This will pave the way for a central & default implementation of a particular service. Assemblers can still choose to have a particular impl bundled in their SAR file, but can (in the future) use a default block impl for the service.

As we introduce other blocks for really large server components, we can introduce services that express the features of those in a general way. I'm thinking multiple implementations of HTTP and EJB server all being interchangable given the same interfaces. As Peter says we should mark some of the interfaces as "in progress" in some way.

Regards,

- Paul H


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



Reply via email to