Source:
<code>protected void configure() { Multibinder<ContainerSystemSettingsProvisioner> settingsProvisioners = Multibinder.newSetBinder(binder(), ContainerSystemSettingsProvisioner.class); settingsProvisioners.addBinding().to(DnsSettingsProvisioner.class); settingsProvisioners.addBinding().to(SecurityOptProvisioner.class); settingsProvisioners.addBinding().to(ExtraHostsProvisioner.class); settingsProvisioners.addBinding().to(ProxySettingsProvisioner.class); settingsProvisioners.addBinding().to(ExtraVolumesProvisioner.class); settingsProvisioners.addBinding().to(SwapLimitProvisioner.class); settingsProvisioners.addBinding().to(PidLimitProvisioner.class); settingsProvisioners.addBinding().to(CGroupParentProvisioner.class); settingsProvisioners.addBinding().to(CpuLimitsProvisioner.class); settingsProvisioners.addBinding().to(PrivilegedModeProvisioner.class); install(new DockerEnvironmentsModule()); install(new DockerEnvironmentConvertersModule()); install(new ContainerSystemSettingsProvisioningModule()); bind(CheApiEnvVarProvider.class).to(DockerCheApiEnvVarProvider.class); bind(RuntimeInfrastructure.class).to(DockerRuntimeInfrastructure.class); bind(DockerRegistryDynamicAuthResolver.class) .to(NoOpDockerRegistryDynamicAuthResolverImpl.class); install(new FactoryModuleBuilder().build(DockerRuntimeFactory.class)); install(new FactoryModuleBuilder().build(DockerBootstrapperFactory.class)); install(new FactoryModuleBuilder().build(DockerRuntimeContextFactory.class)); bind( org.eclipse.che.workspace.infrastructure.docker.monit.DockerAbandonedResourcesCleaner .class); <START> if (Boolean.parseBoolean(System.getenv("CHE_SINGLE_PORT"))) { <END> bind(URLRewriter.class).to(SinglePortUrlRewriter.class); } else { bind(URLRewriter.class).to(ExternalIpURLRewriter.class); } }</code><technical_language>I suggest conditional binding. complaining solutions. Instead of technique in Che 5 <LINK_0></technical_language>

Target:
protected void configure() { Multibinder<ContainerSystemSettingsProvisioner> settingsProvisioners = Multibinder.newSetBinder(binder(), ContainerSystemSettingsProvisioner.class); settingsProvisioners.addBinding().to(DnsSettingsProvisioner.class); settingsProvisioners.addBinding().to(SecurityOptProvisioner.class); settingsProvisioners.addBinding().to(ExtraHostsProvisioner.class); settingsProvisioners.addBinding().to(ProxySettingsProvisioner.class); settingsProvisioners.addBinding().to(ExtraVolumesProvisioner.class); settingsProvisioners.addBinding().to(SwapLimitProvisioner.class); settingsProvisioners.addBinding().to(PidLimitProvisioner.class); settingsProvisioners.addBinding().to(CGroupParentProvisioner.class); settingsProvisioners.addBinding().to(CpuLimitsProvisioner.class); settingsProvisioners.addBinding().to(PrivilegedModeProvisioner.class); install(new DockerEnvironmentsModule()); install(new DockerEnvironmentConvertersModule()); install(new ContainerSystemSettingsProvisioningModule()); bind(CheApiEnvVarProvider.class).to(DockerCheApiEnvVarProvider.class); bind(RuntimeInfrastructure.class).to(DockerRuntimeInfrastructure.class); bind(DockerRegistryDynamicAuthResolver.class) .to(NoOpDockerRegistryDynamicAuthResolverImpl.class); install(new FactoryModuleBuilder().build(DockerRuntimeFactory.class)); install(new FactoryModuleBuilder().build(DockerBootstrapperFactory.class)); install(new FactoryModuleBuilder().build(DockerRuntimeContextFactory.class)); bind( org.eclipse.che.workspace.infrastructure.docker.monit.DockerAbandonedResourcesCleaner .class); MapBinder<String, URLRewriter> rewriters = MapBinder.newMapBinder(binder(), String.class, URLRewriter.class); rewriters.addBinding("default").to(ExternalIpURLRewriter.class); rewriters.addBinding("singleport").to(SinglePortUrlRewriter.class); bind(URLRewriter.class).toProvider(UrlRewriterProvider.class); }