Allow PORTFILE to always override the file to use

Previously, the `PORTFILE` system property was not checked if the
`EmbeddedServerPortFileWriter` was created using the default constructor.

This had the effect to prevent overriding of the port file when this
listener is created without any file or via `META-INF/spring.factories`.

Closes gh-4254
pull/4261/head
Stephane Nicoll 9 years ago
parent cfbac20807
commit 2e2ebeb9fa

@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2014 the original author or authors. * Copyright 2012-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -57,7 +57,7 @@ public class EmbeddedServerPortFileWriter
* 'application.port'. * 'application.port'.
*/ */
public EmbeddedServerPortFileWriter() { public EmbeddedServerPortFileWriter() {
this.file = new File(DEFAULT_FILE_NAME); this(new File(DEFAULT_FILE_NAME));
} }
/** /**

@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2014 the original author or authors. * Copyright 2012-2015 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -66,7 +66,16 @@ public class EmbeddedServerPortFileWriterTests {
} }
@Test @Test
public void overridePortFile() throws Exception { public void overridePortFileWithDefault() throws Exception {
System.setProperty("PORTFILE", this.temporaryFolder.newFile().getAbsolutePath());
EmbeddedServerPortFileWriter listener = new EmbeddedServerPortFileWriter();
listener.onApplicationEvent(mockEvent("", 8080));
assertThat(FileCopyUtils.copyToString(
new FileReader(System.getProperty("PORTFILE"))), equalTo("8080"));
}
@Test
public void overridePortFileWithExplicitFile() throws Exception {
File file = this.temporaryFolder.newFile(); File file = this.temporaryFolder.newFile();
System.setProperty("PORTFILE", this.temporaryFolder.newFile().getAbsolutePath()); System.setProperty("PORTFILE", this.temporaryFolder.newFile().getAbsolutePath());
EmbeddedServerPortFileWriter listener = new EmbeddedServerPortFileWriter(file); EmbeddedServerPortFileWriter listener = new EmbeddedServerPortFileWriter(file);

Loading…
Cancel
Save