Do you ever run two tasks simultaneously? If not, perhaps you can create a special provider that you can swap out the Caller where you're currently considering creating a new injector.
import com.google.inject.Provider; import java.util.concurrent.atomic.AtomicReference; public class CallerProvider implements Provider<Caller> { private AtomicReference<Caller> caller; public void set(Caller currentCaller) { caller.set(currentCaller); } @Override public Caller get() { return caller.get(); } } Inject Provider<Caller> anywhere you need to know who the caller is (when logging, etc) and call .get() to get the current caller. Consider using a Provider<Optional<Caller>> or at least be careful of null pointer exceptions when Caller is not set. Does this help you get to a solution? Are there other things you were hoping to replace by creating a new injector that doesn't fit into this pattern? On Sun, Oct 19, 2014 at 11:54 AM, Kevin Burton <burtona...@gmail.com> wrote: > I'm aware that it's probably that I might need to refactor some things ... > > However, I'm not sure the ideal way to have certain bindings, without > replacing them. > > I have one binding, Caller, which is literally just a string explaining > what root service called an object. > > This way I can trace things like how an HTTP request originated. > > By default, it's unknown... because any library should be able to perform > an HTTP request if necessary. > > However, I need to swap in a new one as I'm starting up certain tasks. > > So if I have a Foo and a Bar task each should have its own Caller. > > And yes, you might be right... I may need to rethink some of my > bindings... some of these aren't completely obvious though. > > -- > 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 google-guice+unsubscr...@googlegroups.com. > To post to this group, send email to google-guice@googlegroups.com. > 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/41e3b741-ec9b-49a2-bebe-b8881bd48aa7%40googlegroups.com > <https://groups.google.com/d/msgid/google-guice/41e3b741-ec9b-49a2-bebe-b8881bd48aa7%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 google-guice+unsubscr...@googlegroups.com. To post to this group, send email to google-guice@googlegroups.com. 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/CAHNex9-2Wn2_xdsgW%3D8wurkw16p2ZkU2cQdm770DLs3KA-cEgw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.