Browse Source

Clean remote url if necessary

Make sure that the remote URL does not contain a trailing slash.

Closes gh-4297
pull/4293/merge
Stephane Nicoll 10 years ago
parent
commit
40c2c6db08
  1. 9
      spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteUrlPropertyExtractor.java
  2. 7
      spring-boot-devtools/src/test/java/org/springframework/boot/devtools/RemoteUrlPropertyExtractorTests.java

9
spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteUrlPropertyExtractor.java

@ -46,7 +46,7 @@ class RemoteUrlPropertyExtractor @@ -46,7 +46,7 @@ class RemoteUrlPropertyExtractor
@Override
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
ConfigurableEnvironment environment = event.getEnvironment();
String url = environment.getProperty(NON_OPTION_ARGS);
String url = cleanRemoteUrl(environment.getProperty(NON_OPTION_ARGS));
Assert.state(StringUtils.hasLength(url), "No remote URL specified");
Assert.state(url.indexOf(",") == -1, "Multiple URLs specified");
try {
@ -60,6 +60,13 @@ class RemoteUrlPropertyExtractor @@ -60,6 +60,13 @@ class RemoteUrlPropertyExtractor
environment.getPropertySources().addLast(propertySource);
}
private String cleanRemoteUrl(String url) {
if (StringUtils.hasText(url) && url.endsWith("/")) {
return url.substring(0, url.length() - 1);
}
return url;
}
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;

7
spring-boot-devtools/src/test/java/org/springframework/boot/devtools/RemoteUrlPropertyExtractorTests.java

@ -79,6 +79,13 @@ public class RemoteUrlPropertyExtractorTests { @@ -79,6 +79,13 @@ public class RemoteUrlPropertyExtractorTests {
is(nullValue()));
}
@Test
public void cleanValidUrl() throws Exception {
ApplicationContext context = doTest("http://localhost:8080/");
assertThat(context.getEnvironment().getProperty("remoteUrl"),
equalTo("http://localhost:8080"));
}
private ApplicationContext doTest(String... args) {
SpringApplication application = new SpringApplication(Config.class);
application.setWebEnvironment(false);

Loading…
Cancel
Save