mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Merge pull request #25455 from nguyensach
* pr/25455: Polish 'Don't detect CloudPlatform when property is set' Don't detect CloudPlatform when property is set Closes gh-25455
This commit is contained in:
commit
930c637b77
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -28,6 +28,7 @@ import org.springframework.core.env.StandardEnvironment;
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Brian Clozel
|
||||
* @author Nguyen Sach
|
||||
* @since 1.3.0
|
||||
*/
|
||||
public enum CloudPlatform {
|
||||
@ -131,13 +132,16 @@ public enum CloudPlatform {
|
||||
|
||||
};
|
||||
|
||||
private static final String PROPERTY_NAME = "spring.main.cloud-platform";
|
||||
|
||||
/**
|
||||
* Determines if the platform is active (i.e. the application is running in it).
|
||||
* @param environment the environment
|
||||
* @return if the platform is active.
|
||||
*/
|
||||
public boolean isActive(Environment environment) {
|
||||
return isEnforced(environment) || isDetected(environment);
|
||||
String platformProperty = environment.getProperty(PROPERTY_NAME);
|
||||
return isEnforced(platformProperty) || (platformProperty == null && isDetected(environment));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -148,7 +152,10 @@ public enum CloudPlatform {
|
||||
* @since 2.3.0
|
||||
*/
|
||||
public boolean isEnforced(Environment environment) {
|
||||
String platform = environment.getProperty("spring.main.cloud-platform");
|
||||
return isEnforced(environment.getProperty(PROPERTY_NAME));
|
||||
}
|
||||
|
||||
private boolean isEnforced(String platform) {
|
||||
return name().equalsIgnoreCase(platform);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -19,6 +19,7 @@ package org.springframework.boot.cloud;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@ -34,6 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* Tests for {@link CloudPlatform}.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Nguyen Sach
|
||||
*/
|
||||
class CloudPlatformTests {
|
||||
|
||||
@ -137,6 +139,17 @@ class CloudPlatformTests {
|
||||
assertThat(platform).isEqualTo(CloudPlatform.KUBERNETES);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isActiveWhenNoCloudPlatformIsEnforcedAndHasKubernetesServiceHostAndKubernetesServicePort() {
|
||||
Map<String, Object> envVars = new HashMap<>();
|
||||
envVars.put("EXAMPLE_SERVICE_HOST", "---");
|
||||
envVars.put("EXAMPLE_SERVICE_PORT", "8080");
|
||||
Environment environment = getEnvironmentWithEnvVariables(envVars);
|
||||
((MockEnvironment) environment).setProperty("spring.main.cloud-platform", "none");
|
||||
assertThat(Stream.of(CloudPlatform.values()).filter((platform) -> platform.isActive(environment)))
|
||||
.containsExactly(CloudPlatform.NONE);
|
||||
}
|
||||
|
||||
private Environment getEnvironmentWithEnvVariables(Map<String, Object> environmentVariables) {
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
PropertySource<?> propertySource = new SystemEnvironmentPropertySource(
|
||||
|
Loading…
Reference in New Issue
Block a user