Example usage for com.google.common.base Service getClass

List of usage examples for com.google.common.base Service getClass

Introduction

In this page you can find the example usage for com.google.common.base Service getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

From source file:fathom.Services.java

public synchronized void stop() {
    // stop the services in the reverse order
    Collections.reverse(instances);
    for (Service service : instances) {
        if (service.isRunning()) {
            log.info("Stopping service '{}'", service.getClass().getName());
            try {
                service.stop();/*  w  w  w. ja v  a 2  s .c  o m*/
            } catch (Exception e) {
                log.error("Failed to stop '{}'", service.getClass().getName(), e);
            }
        }
    }
}

From source file:fathom.Services.java

public synchronized void start(Injector injector) {
    started = true;//from  ww w  .j  av a  2  s.  c  o  m

    getServiceClasses().forEach((serviceClass) -> {

        if (RequireUtil.allowClass(settings, serviceClass)) {
            Service service = injector.getInstance(serviceClass);
            instances.add(service);
        }

    });

    // sort the services into the preferred start order
    Collections.sort(instances, new Comparator<Service>() {
        @Override
        public int compare(Service o1, Service o2) {
            if (o2.getPreferredStartOrder() < 0) {
                return -1;
            } else if (o1.getPreferredStartOrder() < 0) {
                return 1;
            } else if (o1.getPreferredStartOrder() < o2.getPreferredStartOrder()) {
                return -1;
            } else if (o1.getPreferredStartOrder() > o2.getPreferredStartOrder()) {
                return 1;
            }
            return 0;
        }
    });

    for (Service service : instances) {
        log.debug("{} '{}'", Strings.padStart("" + service.getPreferredStartOrder(), 3, '0'),
                service.getClass().getName());
    }

    for (Service service : instances) {
        log.info("Starting service '{}'", service.getClass().getName());
        try {
            service.start();
        } catch (Exception e) {
            log.error("Failed to start '{}'", service.getClass().getName(), e);

            if (e instanceof FatalException) {
                stop();
                System.exit(1);
            }
        }
    }
}