List of usage examples for com.google.common.util.concurrent ServiceManager addListener
public void addListener(Listener listener)
From source file:org.apache.aurora.scheduler.SchedulerServicesModule.java
@Provides @Singleton//from w w w . j a v a 2 s .co m @AppStartup ServiceManagerIface provideAppStartupServiceManager(@AppStartup Set<Service> services, LifecycleShutdownListener listener) { ServiceManager manager = new ServiceManager(services); manager.addListener(listener); return GuavaUtils.serviceManager(manager); }
From source file:org.apache.aurora.scheduler.SchedulerServicesModule.java
@Provides @Singleton/*from w ww. j av a 2 s . c o m*/ @SchedulerActive ServiceManagerIface provideSchedulerActiveServiceManager(@SchedulerActive Set<Service> services, LifecycleShutdownListener listener) { ServiceManager manager = new ServiceManager(services); manager.addListener(listener); return GuavaUtils.serviceManager(manager); }
From source file:com.zxy.commons.lang.server.AbstractStartServer.java
/** * ?/*w ww. j a v a 2s. c o m*/ */ protected void startServer() { final ServiceManager manager = new ServiceManager(asList(this)); RecordingListener listener = new RecordingListener(); manager.addListener(listener); logger.info("Starting server..."); manager.startAsync().awaitHealthy(); logger.info("server has started successfully."); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override public void run() { try { logger.info("Stopping server..."); manager.stopAsync().awaitStopped(10, TimeUnit.SECONDS); logger.info("server has stopped successfully."); } catch (Exception timeout) { logger.warn(timeout.getMessage(), timeout); } } })); }
From source file:org.graylog2.bootstrap.ServerBootstrap.java
@Override protected void startCommand() { final AuditLogger auditLogger = injector.getInstance(AuditLogger.class); final Map<String, Object> auditLogContext = ImmutableMap.of("version", version, "java", Tools.getSystemInformation()); auditLogger.success("<system>", "initiated", "startup", auditLogContext); final OS os = OS.getOs(); LOG.info("Graylog {} {} starting up", commandName, version); LOG.info("JRE: {}", Tools.getSystemInformation()); LOG.info("Deployment: {}", configuration.getInstallationSource()); LOG.info("OS: {}", os.getPlatformName()); LOG.info("Arch: {}", os.getArch()); final ServerStatus serverStatus = injector.getInstance(ServerStatus.class); serverStatus.initialize();/*from www . java 2s .c o m*/ startNodeRegistration(injector); final ActivityWriter activityWriter; final ServiceManager serviceManager; try { activityWriter = injector.getInstance(ActivityWriter.class); serviceManager = injector.getInstance(ServiceManager.class); } catch (ProvisionException e) { LOG.error("Guice error", e); annotateProvisionException(e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); return; } catch (Exception e) { LOG.error("Unexpected exception", e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); return; } Runtime.getRuntime().addShutdownHook(new Thread(injector.getInstance(shutdownHook()))); // propagate default size to input plugins MessageInput.setDefaultRecvBufferSize(configuration.getUdpRecvBufferSizes()); // Start services. final ServiceManagerListener serviceManagerListener = injector.getInstance(ServiceManagerListener.class); serviceManager.addListener(serviceManagerListener); try { serviceManager.startAsync().awaitHealthy(); } catch (Exception e) { try { serviceManager.stopAsync().awaitStopped(configuration.getShutdownTimeout(), TimeUnit.MILLISECONDS); } catch (TimeoutException timeoutException) { LOG.error("Unable to shutdown properly on time. {}", serviceManager.servicesByState()); } LOG.error("Graylog startup failed. Exiting. Exception was:", e); auditLogger.failure("<system>", "initiated", "startup", auditLogContext); System.exit(-1); } LOG.info("Services started, startup times in ms: {}", serviceManager.startupTimes()); activityWriter.write(new Activity("Started up.", Main.class)); LOG.info("Graylog " + commandName + " up and running."); auditLogger.success("<system>", "completed", "startup", auditLogContext); // Block forever. try { Thread.currentThread().join(); } catch (InterruptedException e) { return; } }