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