On 04/04/2009, Dhanji R. Prasanna <[email protected]> wrote: > On Sat, Apr 4, 2009 at 10:07 AM, James Strachan > <[email protected]>wrote: > >> >> On 03/04/2009, Bob Lee <[email protected]> wrote: >> > I actually have a plan for this! :-) >> > >> > We can't expose a binding to the injection listener. The listener only >> knows >> > about injectable types which are orthogonal to bindings. >> >> OK - I thought that creating an instance to pass into the >> InjectionListener would have used the binding to know if it should >> even bother creating an instance. I'll take your word for it though >> :-) >> >> > >> > My plan is to make singleton scope overridable in Guice 2 (using >> > Modules.override() internally). Then, you can bind your own singleton >> scope >> > implementation that has a destroy() method and looks for @PreDestroy >> > methods. This will work for all singletons, not just those annotated >> > with >> > @Singleton. >> >> Would this approach only work for singleton? What about other scopes >> like request/session/conversation/test or other wacky scopes folks >> might use? >> >> >> > Ideally, we'd have a callback on the Scope interface so we could tell an >> > impl at initialization time about all of the bindings in that scope (and >> you >> > could validate the types, etc.), but this will have to wait for Guice 3. >> >> Would it be so bad for a Scope to have an iterate() method so tools & >> frameworks could iterate through all the objects that have been >> created in a scope? > > > This would make Scope source incompatible with all Guice 1.0 and > transitional code. =( > > Also, the way we have designed most scopes now, scope closure is internal to > the scope (or perhaps completely orthogonal as in the case of GuiceFilter, > where the Filter is totally agnostic to the scope). I think there's a happy > compromise with registration of scoped elements using an injection listener
Agreed - that's a very elegant solution with no api changes or impact on scope implementations, if someone can figure out a clever way of finding the binding/scope for an injectee instance inside the InjectionListener. > or a (re)bound scope. > > Dhanji. > > > > -- James ------- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~----------~----~----~----~------~----~------~--~---
