Thats a common interface not syd:) On May 30, 2011 5:22 PM, "nino martinez wael" <[email protected]> wrote: > 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.
