Example usage for com.google.common.util.concurrent ServiceManager addListener

List of usage examples for com.google.common.util.concurrent ServiceManager addListener

Introduction

In this page you can find the example usage for com.google.common.util.concurrent ServiceManager addListener.

Prototype

public void addListener(Listener listener) 

Source Link

Document

Registers a Listener to be run when this ServiceManager changes state.

Usage

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;
    }
}