At 11:42 PM 7/4/2002 +0200, you wrote: >Suggested interfaces >-------------------- >This builds upon the current avalon containerkit package. Please don't >worry too much about namespace at this point. > >package org.apache.excalibur.meta; > >/** > * The assembly of object instances of a components > * declared dependencies on other components, as well as dependency on a > * Logger, Configuration, Parameters and Context. > */ >interface MetaData
Never going to use an interface again for this. If you remember back about 1 1/2 years ago we separated out interface and implementations for the meta classes. It sucked hugely. >{ > DependencyMetaData[] getDependencyData(); > Logger getLogger(); -1 This should go into component entry not metadata as it is tied to a particular instance, not a profile. > Configuration getConfiguration(); > Parameters getParameters(); > Context getContext(); -1 Same reason as above. /** > * provides valuable information to assembler and end user about a > * component. > */ >interface ComponentDescriptor extends Descriptor >{ > String getName(); > Version getVersion(); > String getDescription(); > String getDefaultRoleName(); -1 only makes sense in some containers. Thus it should be an attribute. >/** > * Provide information about a component-to-component dependency > */ >interface DependencyDescriptor extends Descriptor >{ > String getRole(); > Version getVersion(); > > boolean isOptional(); > boolean isRequired(); > /* maybe... > DependencyDescriptor getAlternative(); > boolean isAlternative( DependencyDescriptor descriptor ); > boolean betterAlternativeTo( DependencyDescriptor descriptor ); > */ -1 Selection criterion are context sensitive and can be relegated to a particular container implementation. Cheers, Peter Donald ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "Faced with the choice between changing one's mind, and proving that there is no need to do so - almost everyone gets busy on the proof." - John Kenneth Galbraith ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>