mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Merge branch '2.2.x' into 2.3.x
Closes gh-22849
This commit is contained in:
commit
980ddcffd0
@ -131,7 +131,7 @@ public final class EndpointId {
|
|||||||
|
|
||||||
private static String migrateLegacyId(Environment environment, String value) {
|
private static String migrateLegacyId(Environment environment, String value) {
|
||||||
if (environment.getProperty(MIGRATE_LEGACY_NAMES_PROPERTY, Boolean.class, false)) {
|
if (environment.getProperty(MIGRATE_LEGACY_NAMES_PROPERTY, Boolean.class, false)) {
|
||||||
return value.replace(".", "");
|
return value.replaceAll("[-.]+", "");
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -101,12 +101,30 @@ class EndpointIdTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void ofWhenMigratingLegacyNameRemovesDots(CapturedOutput output) {
|
void ofWhenMigratingLegacyNameRemovesDots(CapturedOutput output) {
|
||||||
|
EndpointId endpointId = migrateLegacyName("one.two.three");
|
||||||
|
assertThat(endpointId.toString()).isEqualTo("onetwothree");
|
||||||
|
assertThat(output).doesNotContain("contains invalid characters");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void ofWhenMigratingLegacyNameRemovesHyphens(CapturedOutput output) {
|
||||||
|
EndpointId endpointId = migrateLegacyName("one-two-three");
|
||||||
|
assertThat(endpointId.toString()).isEqualTo("onetwothree");
|
||||||
|
assertThat(output).doesNotContain("contains invalid characters");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void ofWhenMigratingLegacyNameRemovesMixOfDashAndDot(CapturedOutput output) {
|
||||||
|
EndpointId endpointId = migrateLegacyName("one.two-three");
|
||||||
|
assertThat(endpointId.toString()).isEqualTo("onetwothree");
|
||||||
|
assertThat(output).doesNotContain("contains invalid characters");
|
||||||
|
}
|
||||||
|
|
||||||
|
private EndpointId migrateLegacyName(String name) {
|
||||||
EndpointId.resetLoggedWarnings();
|
EndpointId.resetLoggedWarnings();
|
||||||
MockEnvironment environment = new MockEnvironment();
|
MockEnvironment environment = new MockEnvironment();
|
||||||
environment.setProperty("management.endpoints.migrate-legacy-ids", "true");
|
environment.setProperty("management.endpoints.migrate-legacy-ids", "true");
|
||||||
EndpointId endpointId = EndpointId.of(environment, "foo.bar");
|
return EndpointId.of(environment, name);
|
||||||
assertThat(endpointId.toString()).isEqualTo("foobar");
|
|
||||||
assertThat(output).doesNotContain("contains invalid characters");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2012-2020 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.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package smoketest.actuator;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
|
||||||
|
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Endpoint(id = "lega.cy")
|
||||||
|
public class SampleLegacyEndpointWithDot {
|
||||||
|
|
||||||
|
@ReadOperation
|
||||||
|
public Map<String, String> example() {
|
||||||
|
return Collections.singletonMap("legacy", "legacy");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -24,8 +24,8 @@ import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Endpoint(id = "lega.cy")
|
@Endpoint(id = "another-legacy")
|
||||||
public class SampleLegacyEndpoint {
|
public class SampleLegacyEndpointWithHyphen {
|
||||||
|
|
||||||
@ReadOperation
|
@ReadOperation
|
||||||
public Map<String, String> example() {
|
public Map<String, String> example() {
|
@ -173,13 +173,21 @@ class SampleActuatorApplicationTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testLegacy() {
|
void testLegacyDot() {
|
||||||
ResponseEntity<Map<String, Object>> entity = asMapEntity(
|
ResponseEntity<Map<String, Object>> entity = asMapEntity(
|
||||||
this.restTemplate.withBasicAuth("user", "password").getForEntity("/actuator/legacy", Map.class));
|
this.restTemplate.withBasicAuth("user", "password").getForEntity("/actuator/legacy", Map.class));
|
||||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||||
assertThat(entity.getBody()).contains(entry("legacy", "legacy"));
|
assertThat(entity.getBody()).contains(entry("legacy", "legacy"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testLegacyHyphen() {
|
||||||
|
ResponseEntity<Map<String, Object>> entity = asMapEntity(
|
||||||
|
this.restTemplate.withBasicAuth("user", "password").getForEntity("/actuator/anotherlegacy", Map.class));
|
||||||
|
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||||
|
assertThat(entity.getBody()).contains(entry("legacy", "legacy"));
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
static <K, V> ResponseEntity<Map<K, V>> asMapEntity(ResponseEntity<Map> entity) {
|
static <K, V> ResponseEntity<Map<K, V>> asMapEntity(ResponseEntity<Map> entity) {
|
||||||
return (ResponseEntity) entity;
|
return (ResponseEntity) entity;
|
||||||
|
Loading…
Reference in New Issue
Block a user