Stephen,
Thanks for the clarifications.
Here comes new questions based on
1. Is Serviceable == ServiceConsumer in Merlin?
It's not a definition I would use.
The Serviceable interface is just a interface that defines a delivery strategy. Is is the definition of a mechanisms that a component implementation can use to receive a ServiceManager instance.
If no, is there any ServiceConsumer like interface in Merlin?
Any component that is a consumer of external services needs to acquire a ServiceManager in order to lookup its dependents. Merlin can provide a ServiceManager to a component using one of two possible delivery strategies:
1. by supplying a populated ServiceManager as a constructor
argument 2. by invoking the service operation declared by the Serviceable
interfaceThe entries in the supplied ServiceManager are established relative to the @avalon.dependency key="some-key" type="org.whatever.SomeService" tag declaration by the component.
2. What interface does a service provider implement in Merlin? Is there any?
A service provider declares that it provides a service using the @avalon.service type="org.whatever.SomeService" tag. The value of the type attribute is typically an interface classname that the component will normally implement.
If the component class needs a
service manager, then the container will create a new service manager based on the information in the component model.
3. Is service manager created on demand? Or is it some vital built-in component(service) of a given container?
On demand - as part of the lifecycle processing handled under the ComponentFactory class in the activation/impl package.
Cheers, Stephen.
--
|---------------------------------------| | Magic by Merlin | | Production by Avalon | | | | http://avalon.apache.org | |---------------------------------------|
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
