Source:
protected void configure() { bind(AdminAccess.Configuration.class).to(AdminAccessConfiguration.class); install(new ComputeServiceTimeoutsModule()); bind(new TypeLiteral<Function<NodeMetadata, SshClient>>() { }).to(CreateSshClientOncePortIsListeningOnNode.class); bind(new TypeLiteral<Function<TemplateOptions, Statement>>() { }).to(TemplateOptionsToStatement.class); bind(TemplateBuilderImpl.class).to(ArbitraryCpuRamTemplateBuilderImpl.class); bind(LoginCredentials.class).annotatedWith(Names.named("image")).toProvider( GetLoginForProviderFromPropertiesAndStoreCredentialsOrReturnNull.class); bindCredentialsOverriderFunction(); install(new FactoryModuleBuilder() .implement(RunScriptOnNodeUsingSsh.class, Names.named("direct"), RunScriptOnNodeUsingSsh.class) .implement(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.class, Names.named("blocking"), RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.class) .implement(RunScriptOnNodeAsInitScriptUsingSsh.class, Names.named("nonblocking"), RunScriptOnNodeAsInitScriptUsingSsh.class).build(RunScriptOnNodeFactoryImpl.Factory.class)); install(new PersistNodeCredentialsModule()); install(new FactoryModuleBuilder().implement(new TypeLiteral<Callable<Void>>() { }, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.class) .implement(new TypeLiteral<Function<AtomicReference<NodeMetadata>, Void>>() { }, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.class) .build(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory.class)); install(new FactoryModuleBuilder().implement(new TypeLiteral<Callable<RunScriptOnNode>>() { }, InitializeRunScriptOnNodeOrPlaceInBadMap.class).build(InitializeRunScriptOnNodeOrPlaceInBadMap.Factory.class)); install(new FactoryModuleBuilder().build(BlockUntilInitScriptStatusIsZeroThenReturnOutput.Factory.class)); }

Target:
protected void configure() { bind(AdminAccess.Configuration.class).to(AdminAccessConfiguration.class); install(new ComputeServiceTimeoutsModule()); bind(new TypeLiteral<Function<NodeMetadata, SshClient>>() { }).to(CreateSshClientOncePortIsListeningOnNode.class); bind(new TypeLiteral<Function<TemplateOptions, Statement>>() { }).to(TemplateOptionsToStatement.class); bind(LoginCredentials.class).annotatedWith(Names.named("image")).toProvider( GetLoginForProviderFromPropertiesAndStoreCredentialsOrReturnNull.class); bindCredentialsOverriderFunction(); install(new FactoryModuleBuilder() .implement(RunScriptOnNodeUsingSsh.class, Names.named("direct"), RunScriptOnNodeUsingSsh.class) .implement(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.class, Names.named("blocking"), RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.class) .implement(RunScriptOnNodeAsInitScriptUsingSsh.class, Names.named("nonblocking"), RunScriptOnNodeAsInitScriptUsingSsh.class).build(RunScriptOnNodeFactoryImpl.Factory.class)); install(new PersistNodeCredentialsModule()); install(new FactoryModuleBuilder().implement(new TypeLiteral<Callable<Void>>() { }, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.class) .implement(new TypeLiteral<Function<AtomicReference<NodeMetadata>, Void>>() { }, CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.class) .build(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.Factory.class)); install(new FactoryModuleBuilder().implement(new TypeLiteral<Callable<RunScriptOnNode>>() { }, InitializeRunScriptOnNodeOrPlaceInBadMap.class).build(InitializeRunScriptOnNodeOrPlaceInBadMap.Factory.class)); install(new FactoryModuleBuilder().build(BlockUntilInitScriptStatusIsZeroThenReturnOutput.Factory.class)); }