@Override protected int getEurekaWebAdminPort() { return config.getWebAdminPort(); }
protected String formatAdminURI() { return "http://localhost:" + config.getWebAdminPort() + "/admin"; }
protected void bindConfigurationProvider(LifecycleInjectorBuilder bootstrapBinder) { final Properties props = new Properties(); props.setProperty(AdminResourcesContainer.CONTAINER_LISTEN_PORT, Integer.toString(config.getWebAdminPort())); props.setProperty("netflix.platform.admin.pages.packages", "netflix"); bootstrapBinder.withAdditionalBootstrapModules(new BootstrapModule() { @Override public void configure(BootstrapBinder binder) { binder.bind(PropertiesLoader.class).toInstance(new PropertiesLoader() { @Override public void load() { ConfigurationManager.loadProperties(props); } }); binder.bind(PropertiesInitializer.class).asEagerSingleton(); Builder builder = ArchaiusConfigurationProvider.builder(); builder.withOwnershipPolicy(ConfigurationOwnershipPolicies.ownsAll()); binder.bindConfigurationProvider().toInstance(builder.build()); } }); }
@Override public InstanceInfo.Builder call(DataCenterInfo dataCenterInfo) { final String instanceId = config.getAppName() + '#' + UUID.randomUUID().toString();; String address = AddressSelector.selectBy().publicIp(true).or().any().returnNameOrIp(dataCenterInfo.getAddresses()); HashSet<String> healthCheckUrls = new HashSet<>(); healthCheckUrls.add("http://" + address + ':' + config.getWebAdminPort() + "/healthcheck"); return new InstanceInfo.Builder() .withId(instanceId) .withApp(config.getAppName()) .withVipAddress(config.getVipAddress()) .withHealthCheckUrls(healthCheckUrls) .withDataCenterInfo(dataCenterInfo) .withStatus(InstanceInfo.Status.STARTING); } })
@Override public void configure(BootstrapBinder binder) { if (config == null) { bindConfigurationProvider(binder); } else { // WebAdmin resource uses Archaius singleton ConfigurationManager.getConfigInstance().setProperty( "netflix.platform.admin.resources.port", Integer.toString(config.getWebAdminPort())); } bindMetricsRegistry(binder); binder.include(EurekaHealthStatusModule.class); binder.include(KaryonWebAdminModule.class); binder.include(new AbstractModule() { @Override protected void configure() { bind(EurekaShutdownService.class).asEagerSingleton(); bind(ShutdownDetector.class).toInstance(new ShutdownDetector()); bind(HealthCheckHandler.class).to(KaryonHealthCheckHandler.class).asEagerSingleton(); bind(HealthCheckInvocationStrategy.class).to(SyncHealthCheckInvocationStrategy.class).asEagerSingleton(); } }); binder.include(EurekaHealthStatusModule.class); } });