AzureEnvironmentAutoConfiguration.java

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.azure.spring.cloud.autoconfigure.context;

import com.microsoft.azure.spring.cloud.context.core.api.EnvironmentProvider;
import com.microsoft.azure.spring.cloud.context.core.config.AzureProperties;
import com.microsoft.azure.spring.cloud.context.core.impl.DefaultEnvironmentProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Auto-config to provide default {@link EnvironmentProvider} for all Azure services
 *
 * @author Warren Zhu
 */
@Configuration
public class AzureEnvironmentAutoConfiguration {

    @Autowired(required = false)
    private AzureProperties azureProperties;

    @Bean
    @ConditionalOnMissingBean
    public EnvironmentProvider environmentProvider() {
        DefaultEnvironmentProvider defaultEnvironmentProvider = new DefaultEnvironmentProvider();
        if (this.azureProperties != null) {
            defaultEnvironmentProvider.setEnvironment(azureProperties.getEnvironment());
        }

        return defaultEnvironmentProvider;
    }
}