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

com.netflix.discovery.guice.Ec2EurekaClientModule Maven / Gradle / Ivy

There is a newer version: 2.0.4
Show newest version
package com.netflix.discovery.guice;

import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
import com.netflix.appinfo.AbstractInstanceConfig;
import com.netflix.appinfo.ApplicationInfoManager;
import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.appinfo.InstanceInfo;
import com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider;
import com.netflix.archaius.api.Config;
import com.netflix.discovery.DiscoveryClient;
import com.netflix.discovery.Ec2EurekaArchaius2InstanceConfig;
import com.netflix.discovery.EurekaArchaius2ClientConfig;
import com.netflix.discovery.EurekaArchaius2InstanceConfig;
import com.netflix.discovery.EurekaClient;
import com.netflix.discovery.EurekaClientConfig;
import com.netflix.discovery.shared.transport.EurekaArchaius2TransportConfig;
import com.netflix.discovery.shared.transport.EurekaTransportConfig;
import com.netflix.eventbus.impl.EventBusImpl;
import com.netflix.eventbus.spi.EventBus;

/**
 * Add this module to your project to enable Eureka client and registration
 *
 * @author elandau
 *
 */
public class Ec2EurekaClientModule extends AbstractModule {
    @Override
    protected void configure() {
        requireBinding(Config.class);

        bind(ApplicationInfoManager.class).asEagerSingleton();

        // Bindings for eureka
        bind(EurekaInstanceConfig.class).to(Ec2EurekaArchaius2InstanceConfig.class);
        bind(AbstractInstanceConfig.class).to(Ec2EurekaArchaius2InstanceConfig.class);
        bind(EurekaArchaius2InstanceConfig.class).to(Ec2EurekaArchaius2InstanceConfig.class);

        bind(EurekaTransportConfig.class).to(EurekaArchaius2TransportConfig.class);
        bind(EurekaClientConfig.class).to(EurekaArchaius2ClientConfig.class);

        bind(InstanceInfo.class).toProvider(EurekaConfigBasedInstanceInfoProvider.class);
        bind(EurekaClient.class).to(DiscoveryClient.class);

        bind(EventBus.class).to(EventBusImpl.class).in(Scopes.SINGLETON);
    }

    @Override
    public boolean equals(Object obj) {
        return Ec2EurekaClientModule.class.equals(obj.getClass());
    }

    @Override
    public int hashCode() {
        return Ec2EurekaClientModule.class.hashCode();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy