Source:
protected void configure() { super.configure(); bind(ComputeService.class).to(GoogleComputeEngineService.class); bind(new TypeLiteral<ComputeServiceAdapter<Instance, MachineType, Image, Location>>() { }).to(GoogleComputeEngineServiceAdapter.class); bind(ArbitraryCpuRamTemplateBuilderImpl.class).to(GoogleComputeEngineArbitraryCpuRamTemplateBuilderImpl.class); install(new LocationsFromComputeServiceAdapterModule<Instance, MachineType, Image, Location>() { }); bind(new TypeLiteral<Function<Location, Location>>() { }).toInstance(Functions.<Location>identity()); bind(ImplicitLocationSupplier.class).to(FirstZone.class); bind(new TypeLiteral<Function<Instance, NodeMetadata>>() { }).to(InstanceToNodeMetadata.class); bind(new TypeLiteral<Function<MachineType, Hardware>>() { }).to(MachineTypeToHardware.class); bind(new TypeLiteral<Function<Image, org.jclouds.compute.domain.Image>>() { }).to(GoogleComputeEngineImageToImage.class); bind(org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.class) .to(CreateNodesWithGroupEncodedIntoNameThenAddToSet.class); bind(TemplateOptions.class).to(GoogleComputeEngineTemplateOptions.class); bind(new TypeLiteral<Function<Set<? extends NodeMetadata>, Set<String>>>() { }).to(OrphanedGroupsFromDeadNodes.class); bind(new TypeLiteral<Predicate<String>>() { }).to(GroupIsEmpty.class); bind(new TypeLiteral<Function<String, OperatingSystem>>() { }).to(ImageNameToOperatingSystem.class); bind(FirewallTagNamingConvention.Factory.class).in(Scopes.SINGLETON); bind(new TypeLiteral<CacheLoader<URI, Image>>() { }).to(DiskURIToImage.class); bindHttpApi(binder(), Resources.class); }

Target:
protected void configure() { super.configure(); bind(ComputeService.class).to(GoogleComputeEngineService.class); bind(new TypeLiteral<ComputeServiceAdapter<Instance, MachineType, Image, Location>>() { }).to(GoogleComputeEngineServiceAdapter.class); bind(TemplateBuilderImpl.class).to(GoogleComputeEngineArbitraryCpuRamTemplateBuilderImpl.class); install(new LocationsFromComputeServiceAdapterModule<Instance, MachineType, Image, Location>() { }); bind(new TypeLiteral<Function<Location, Location>>() { }).toInstance(Functions.<Location>identity()); bind(ImplicitLocationSupplier.class).to(FirstZone.class); bind(new TypeLiteral<Function<Instance, NodeMetadata>>() { }).to(InstanceToNodeMetadata.class); bind(new TypeLiteral<Function<MachineType, Hardware>>() { }).to(MachineTypeToHardware.class); bind(new TypeLiteral<Function<Image, org.jclouds.compute.domain.Image>>() { }).to(GoogleComputeEngineImageToImage.class); bind(org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.class) .to(CreateNodesWithGroupEncodedIntoNameThenAddToSet.class); bind(TemplateOptions.class).to(GoogleComputeEngineTemplateOptions.class); bind(new TypeLiteral<Function<Set<? extends NodeMetadata>, Set<String>>>() { }).to(OrphanedGroupsFromDeadNodes.class); bind(new TypeLiteral<Predicate<String>>() { }).to(GroupIsEmpty.class); bind(new TypeLiteral<Function<String, OperatingSystem>>() { }).to(ImageNameToOperatingSystem.class); bind(FirewallTagNamingConvention.Factory.class).in(Scopes.SINGLETON); bind(new TypeLiteral<CacheLoader<URI, Image>>() { }).to(DiskURIToImage.class); bindHttpApi(binder(), Resources.class); }