All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.eureka2.server.EurekaBridgeServer Maven / Gradle / Ivy

package com.netflix.eureka2.server;

import com.google.inject.Module;
import com.netflix.governator.guice.LifecycleInjectorBuilder;
import com.netflix.governator.guice.LifecycleInjectorBuilderSuite;
import com.netflix.eureka2.server.spi.ExtensionLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

import static java.util.Arrays.asList;

/**
 * A Bridge (Write) server that captures snapshots of Eureka 1.0 Data and replicates changes of the 1.0 data
 * to other Eureka Write servers.
 *
 * @author David Liu
 */
public class EurekaBridgeServer extends AbstractEurekaServer {

    private static final Logger logger = LoggerFactory.getLogger(EurekaBridgeServer.class);

    public EurekaBridgeServer(String name) {
        super(name);
    }

    @Override
    protected void additionalModules(List suites) {
        suites.add(new LifecycleInjectorBuilderSuite() {
            @Override
            public void configure(LifecycleInjectorBuilder builder) {
                List all = new ArrayList<>();
                all.add(new EurekaBridgeServerModule(config));

                List extModules = asList(new ExtensionLoader().asModuleArray());

                all.addAll(extModules);
                builder.withAdditionalModules(all);
            }
        });
    }

    public static void main(String[] args) {
        logger.info("Eureka 2.0 Bridge Server");

        EurekaBridgeServer server = null;
        try {
            server = new EurekaBridgeServer("eureka-bridge-server");
            server.start();
        } catch (Exception e) {
            logger.error("Error while starting Eureka Bridge server.", e);
            if (server != null) {
                server.shutdown();
            }
            System.exit(-1);
        }
        server.waitTillShutdown();

        // In case we have non-daemon threads running
        System.exit(0);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy