Re: [picocontainer-dev] A way forward for annotations in Pico codebase
Paul Hammant <[email protected]>
| Newsgroups | gmane.comp.java.picocontainer.devel |
|---|---|
| Message-ID | <[email protected]> |
Erik,
On May 1, 2007, at 9:43 AM, Putrycz, Erik wrote:
> I totally agree about the two sides.
> Concerning the generics, I don't mind working against pico 2 svn if
> that
> can provide a way to support the generics.
>
> As a note,
> pico.registerComponentInstance(PicoContainer.class, pico);
>
> doesn't totally work cf http://jira.codehaus.org/browse/PICO-292. I
> had
> solved this problem but Joerg said it was this was not a valid use
> case
> (and causes security problems?) so I never bothered sending a patch. I
> don't mind looking at it again if that could go somewhere.
>
Of course. There's not an easy work around. Wrapping in
ImmutablePicoContainer on registration would work if the start()/stop
() methods were silent. At least before Pico2 where PicoContainer is
no longer Startable - MutablePicoContainer is instead.
> It also seems to me that the current code in the svn works pretty much
> the way you are suggesting (thanks to Mauri's nice refactoring). The
> annotation @Inject is processed by the InjectingComponentAdapter.
> Basically this could be used on its own with the Inject class in a
> DefaultPicoContainer.
>
> The bug you are talking in injectDependencies, is it about circular
> dependencies? If yes, I'm not sure how to deal with it. To detect
> them,
> it would be necessary to know the whole object graph in this method?
>
> I know that other containers such as hivemind do allow circular
> dependencies and do proxy everything.
>
Spring too I think. Amateurs! ;-)
We're never going to allow circular references.
I think what I was trying to say that its possible for
AnnotationInjectingComponentAdapter (please rename from too generic
InjectingCA) to work the way the other ones do. Playing with the
design allows for more complex directive graphs.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email