List of usage examples for com.google.common.util.concurrent ServiceManager servicesByState
public ImmutableMultimap<State, Service> servicesByState()
From source file:org.apache.aurora.GuavaUtils.java
/** * Create a new {@link ServiceManagerIface} that wraps a {@link ServiceManager}. * * @param delegate Service manager to delegate to. * @return A wrapper.//from w w w . j a v a 2 s. co m */ public static ServiceManagerIface serviceManager(final ServiceManager delegate) { return new ServiceManagerIface() { @Override public ServiceManagerIface startAsync() { delegate.startAsync(); return this; } @Override public void awaitHealthy() { delegate.awaitHealthy(); } @Override public ServiceManagerIface stopAsync() { delegate.stopAsync(); return this; } @Override public void awaitStopped(long timeout, TimeUnit unit) throws TimeoutException { delegate.awaitStopped(timeout, unit); } @Override public ImmutableMultimap<State, Service> servicesByState() { return delegate.servicesByState(); } }; }
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();/*w ww . j a v a 2s . com*/ 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; } }