I haven't thought to hard about it either, but I think you're right:
it would need a reference to the Registry or any Module object. Since
I don't think it's currently possible to inject either of these into
the core implementation it would have to be a method parameter.
Shouldn't be a problem for factory services which do have access to
the invoking Module object.
Note that we already have a class named DependencyDescriptor in
HiveMind. And wouldn't it almost be easier for the client to perform
the dependency injection itself than using this 2nd method? E.g.
PropertyUtils.write(dependentObject, propertyName,
Registry.getService(dependencyId);
instead of:
serviceInjector.injectDependencies(registry, dependentObject, new
DependencyDescriptor[] { new DependencyDescriptorImpl(dependencyType,
propertyName, dependencyId) });
But instead of an array of DependencyDescriptors the client could
maybe pass a set of objects, which the service could select from for
the injection.
--knut
On Wed, 27 Oct 2004 08:36:42 -0400, James Carman
<[EMAIL PROTECTED]> wrote:
> Do you think it would be overkill to also provide a method which performs
> specified injection? Something like this...
>
> public void injectDependencies( Registry registry, Object dependentObject );
> public void injectDependencies( Registry registry, Object dependentObject,
> DependencyDescriptor[] dependencies );
>
> A DependencyDescriptor would look like...
>
> public class DependencyDescriptor
> {
> public Class getDependencyType();
> public String getPropertyName();
> public String getDependencyId();
> }
>
> Basically, this is for when you have multiple service points with the same
> service interface. I added the Registry parameter because I don't know
> whether or not this should be a service. Maybe it could just be a helper
> method somewhere (or added to Registry itself). Wouldn't we run into a
> chicken and egg situation if we wanted to make this a service? I mean, what
> builds the service implementation for this service? BuilderFactory? But,
> what does BuilderFactory use to wire together the implementation object?
> Even if we make it a primitive service (which I don't think is built by
> BuilderFactory), what injects its dependencies? I may be wrong here, as I
> haven't really thought through it completely (need more coffee), but
> something just doesn't smell right to me (maybe I need a shower too).
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]