Package com.netflix.appinfo.providers

Source Code of com.netflix.appinfo.providers.CloudInstanceConfigProvider

package com.netflix.appinfo.providers;

import javax.inject.Singleton;

import com.google.inject.Inject;
import com.google.inject.Provider;
import com.netflix.appinfo.CloudInstanceConfig;
import com.netflix.discovery.DiscoveryManager;
import com.netflix.discovery.EurekaNamespace;

/**
* This provider is necessary because the namespace is optional.
* @author elandau
*/
@Singleton
public class CloudInstanceConfigProvider implements Provider<CloudInstanceConfig> {
    @Inject(optional = true)
    @EurekaNamespace
    private String namespace;

    private CloudInstanceConfig config;
   
    @Override
    public synchronized CloudInstanceConfig get() {
        if (config == null) {
            if (namespace == null) {
                config = new CloudInstanceConfig();
            } else {
                config = new CloudInstanceConfig(namespace);
            }
   
            // TODO: Remove this when DiscoveryManager is finally no longer used
            DiscoveryManager.getInstance().setEurekaInstanceConfig(config);
        }
        return config;
    }

}
TOP

Related Classes of com.netflix.appinfo.providers.CloudInstanceConfigProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.