Could you share the code in a gist or paste (obviously excluding the credentials)? Just the relevant code that creates the context,, the module class and your function implementation. Just to have a bit more context.
Thanks! On 5 June 2014 22:44, Charles Paclat <char...@paclat.net> wrote: > Hi Ignasi, This is what I am doing... > > bind(ImageToOperatingSystem.class).to(MagnetImageToOperatingSystem.class).in(Singleton.class); > > Where the class is... > > public class MagnetImageToOperatingSystem extends ImageToOperatingSystem { > > private final Map<OsFamily, Map<String, String>> osVersionMap; > > @Inject > public MagnetImageToOperatingSystem(Map<OsFamily, Map<String, String>> > osVersionMap) { > super(osVersionMap); > this.osVersionMap = osVersionMap; > } > > @Override > public OperatingSystem apply(Image from) { > > This does not fail to initialize, but when I set a break point in both of > the apply() methods it is only calling the original.. > > > On Thu, Jun 5, 2014 at 9:37 AM, Ignasi Barrera <n...@apache.org> wrote: > >> How are you configuring the binding in your Guice module? You need to >> bind it like: >> >> >> bind(ImageToOperatingSystem.class).to(YourCustomImageToOperatingSystem.class).in(SINGLETON); >> >> >> >> On 5 June 2014 18:06, Charles Paclat <char...@paclat.net> wrote: >> > Ignasi, >> > >> > Thanks again for your patience. I guess what I need is for the wrapper >> > classes to be injected with my version of the class and not the original, >> > I did subclass the original class, but then it did not seem to find my >> > registered instance. So it seem the only thing I am not quite getting is >> > how I get the Guice injector to pick up my version of the class over the >> > original... >> > >> > Charles >> > >> > >> > On Thu, Jun 5, 2014 at 7:59 AM, Ignasi Barrera <n...@apache.org> wrote: >> > >> >> No. AFAIK there's no way to do that. That's why I said you'd have to >> >> create a subclass, just to bind the "result of the original binding" >> >> to your custom one, instead of overriding the original binding, which >> >> is not allowed bu Guice. >> >> >> >> On 5 June 2014 16:49, Charles Paclat <char...@paclat.net> wrote: >> >> > Thanks again for the pointers. I was able to make some progress by >> >> using... >> >> > >> >> > When I tried using the .class of the original as suggest it was not >> >> finding >> >> > my replacement. >> >> > >> >> > I found the other alternatives for bind that used TypeLiteral and Key >> and >> >> > tried those. >> >> > >> >> > protected void configure() { >> >> > bind(Key.get(new TypeLiteral<Function<Image, OperatingSystem>>() { >> >> > })).to(MagnetImageToOperatingSystem.class).in(Singleton.class); >> >> > } >> >> > >> >> > Now I am getting the errors below. Is there a way to force it to >> replace >> >> > the exiting binding? >> >> > >> >> > com.google.inject.CreationException: Guice creation errors: >> >> > >> >> > >> >> > 1) A binding to >> >> > >> >> >> com.google.common.base.Function<org.jclouds.openstack.nova.v2_0.domain.Image, >> >> > org.jclouds.compute.domain.OperatingSystem> was already configured at >> >> > >> >> >> com.magnet.tools.cloud.provision.jclouds.nova.CustomMagnetBindingsModule.configure(CustomMagnetBindingsModule.java:23) >> >> >>