This is my understanding as well...

However, my problem is that if I update the bindings , say by replacing one 
with a new binding, then when I create the child injector it fails because 
that binding was "already configured"

I replace bindings because during init various systems changes.  For 
example, I have a bunch of threads for one task then a bunch of threads for 
another. I have a 'Caller' that I use and change so that HTTP requests can 
be logged based on which task performed the request.  

I guess one strategy would be to call getAllBindings on the injector and 
then find all singletons, then merge the singletons into the new binding by 
calling bind( Foo.class ).toInstance( ).. 

... I think that would work but there are edge cases I am probably missings.

On Sunday, October 19, 2014 5:49:58 AM UTC-7, Nate Bauernfeind wrote:
>
> It sounds like you might want to use a childInjector pattern here. 
> Structure it something like this:
>
> Global Injector binds everything that is truly a singleton in your 
> project. Then in the service(s) where you want to be able to set some state 
> and create a new object that references the global state create a 
> childInjector.
>
> It's possible I don't completely understand your use case. Though, I think 
> this should help you do what you want.
>
> Nate
>
> On Sun, Oct 19, 2014 at 12:47 AM, Kevin Burton <[email protected] 
> <javascript:>> wrote:
>
>> Long story short, I've painted myself into a corner.
>>
>> I was creating new modules and a new injector in some code each time a 
>> service started.
>>
>> The problem is I need to keep state by moving over singletons to the new 
>> injector.
>>
>> The problem is, some of these bindings are now changes and possibly 
>> replaced.
>>
>> Is it possible to migrate all existing singletons to a new injector with 
>> new bindings?
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/google-guice.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-guice/bcb4d057-1685-409e-ae6b-b66913d6464e%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-guice/bcb4d057-1685-409e-ae6b-b66913d6464e%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/3bfbaa8e-dfe5-42e0-9b96-fca6c4ae6033%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to