in zuul-sample/src/main/java/com/netflix/zuul/sample/Bootstrap.java [81:142]
public void start() {
long startNanos = System.nanoTime();
logger.info("Zuul Sample: starting up.");
int exitCode = 0;
Server server = null;
try {
ConfigurationManager.loadCascadedPropertiesFromResources("application");
AccessLogPublisher accessLogPublisher = new AccessLogPublisher(
"ACCESS", (channel, httpRequest) -> ClientRequestReceiver.getRequestFromChannel(channel)
.getContext()
.getUUID());
ApplicationInfoManager instance = new ApplicationInfoManager(null, null, null);
PushConnectionRegistry pushConnectionRegistry = new PushConnectionRegistry();
SamplePushMessageSenderInitializer pushMessageSenderInitializer =
new SamplePushMessageSenderInitializer(pushConnectionRegistry);
DefaultRegistry registry = new DefaultRegistry();
SampleServerStartup serverStartup = new SampleServerStartup(
new ServerStatusManager(instance) {
@Override
public void localStatus(InstanceStatus status) {}
},
new StaticFilterLoader(new SampleFilterFactory(), FILTER_TYPES),
new ZuulSessionContextDecorator(new BasicNettyOriginManager(registry)),
new BasicFilterUsageNotifier(registry),
new BasicRequestCompleteHandler(),
registry,
new DirectMemoryMonitor(registry),
new EventLoopGroupMetrics(registry),
null,
instance,
accessLogPublisher,
pushConnectionRegistry,
pushMessageSenderInitializer);
serverStartup.init();
server = serverStartup.server();
server.start();
long startupDuration = System.nanoTime() - startNanos;
logger.info(
"Zuul Sample: finished startup. Duration = {}ms", TimeUnit.NANOSECONDS.toMillis(startupDuration));
server.awaitTermination();
} catch (Throwable t) {
// Don't use logger here, as we may be shutting down the JVM and the logs won't be printed.
t.printStackTrace();
System.err.println("###############");
System.err.println("Zuul Sample: initialization failed. Forcing shutdown now.");
System.err.println("###############");
exitCode = 1;
} finally {
// server shutdown
if (server != null) {
server.stop();
}
System.exit(exitCode);
}
}