package com.netflix.appinfo.providers;
import javax.inject.Provider;
import com.google.inject.Inject;
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
*/
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;
}
}