We use private modules in conjunction with multibinder and names annotated to create a driver like framework, using a syd interface. When i have more time ill put up a blog or something somewhere. On Apr 6, 2011 2:51 PM, "Fred Faber" <[email protected]> wrote: > Top-level view: you seem to want to configure classes within A with the Foo > that is exported from B. If A is a private module, simply install B without > making B a PrivateModule. That will make the bindings in B be visible to > everything in A, but it won't export anything from B into a potential > collision with bindings in C. > > Similarly, at least from the simplified example, I don't know that you'd > need to export Foo from C. > > Fred > > On Wed, Apr 6, 2011 at 1:09 AM, Andy <[email protected]> wrote: > >> I understand what your saying about PrivateModules not being ideal, >> but I need to use them. >> >> From my test code, I am unable to add bindings for the same class is >> PrivateModule legs. >> >> class A extends PrivateModule >> {@Override >> protected void configure() {install(new B()); >> } >> >> class B extends PrivateModule >> {@Override >> protected void configure() { >> bind(Foo.class).to(FooImpl.class); >> expose(Foo.class); >> }} >> >> class C extends PrivateModule >> { >> @Override >> protected void configure() { >> bind(Foo.class).to(FooImpl.class); >> expose(Foo.class); >> }} >> >> >> Creating an Injector with Modules A and C breaks, >> i.e. >> Guice.createInjector(new A(),new C()); >> >> Before I asked this question, this was basically my setup. What I >> dont understand is, that I'm not exposing the Foo.class binding from >> the A module, so why it is interfering with the binding in the C >> module. >> >> When you said "Exposing a binding makes it visible to the containing >> module and its sibling modules.", >> >> I thought perhaps that I could modify module A to wrap B in a >> PrivateModule, >> public class A extends PrivateModule{ >> @Override >> protected void configure() { >> install(new PrivateModule() { >> @Override >> protected void configure() { >> install(new B()); >> }});}} >> >> No dice though, this fails too. Any recommendations? >> >> -- >> 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. >> >> > > -- > 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. >
-- 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.
