this.configuration = configuration;
connectionManager = new ConnectionManager(configuration.getConnections(), configuration.getProjectionExpiration().toMillis());
EventService eventService = new EventService(connectionManager, configuration.getPingTime().toMillis());
DiscoveryService discoveryService = new DiscoveryService(connectionManager);
CuratorProjectionService projectionService = new CuratorProjectionService(connectionManager);
DiscoveryServiceLowLevel discoveryServiceLowLevel = new DiscoveryServiceLowLevel(connectionManager);
ThriftServiceProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(), Lists.<ThriftEventHandler>newArrayList(), projectionService, eventService, discoveryService, discoveryServiceLowLevel);
server = new ThriftServer(processor, configuration.getThrift());
}