Polish
This commit is contained in:
parent
e130c00e6c
commit
9dfbc25eaa
|
@ -26,13 +26,12 @@ import org.springframework.boot.context.event.ApplicationStartedEvent;
|
|||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.SystemPropertyUtils;
|
||||
|
||||
/**
|
||||
* An {@link org.springframework.context.ApplicationListener} that saves application PID
|
||||
* into file. This application listener will be triggered exactly once per JVM, and the file
|
||||
* name can be overridden at runtime with a System property or environment variable named
|
||||
* "PIDFILE" (or "pidfile").
|
||||
* into file. This application listener will be triggered exactly once per JVM, and the
|
||||
* file name can be overridden at runtime with a System property or environment variable
|
||||
* named "PIDFILE" (or "pidfile").
|
||||
*
|
||||
* @author Jakub Kubrynski
|
||||
* @author Dave Syer
|
||||
|
@ -46,6 +45,8 @@ public class ApplicationPidListener implements
|
|||
|
||||
private static final String DEFAULT_FILE_NAME = "application.pid";
|
||||
|
||||
private static final String[] PROPERTY_VARIABLES = { "PIDFILE", "pidfile" };
|
||||
|
||||
private static final AtomicBoolean created = new AtomicBoolean(false);
|
||||
|
||||
private int order = Ordered.HIGHEST_PRECEDENCE + 13;
|
||||
|
@ -74,10 +75,30 @@ public class ApplicationPidListener implements
|
|||
*/
|
||||
public ApplicationPidListener(File file) {
|
||||
Assert.notNull(file, "File must not be null");
|
||||
String actual = SystemPropertyUtils.resolvePlaceholders("${PIDFILE}", true);
|
||||
actual = !actual.contains("$") ? actual : SystemPropertyUtils.resolvePlaceholders("${pidfile}", true);
|
||||
actual = !actual.contains("$") ? actual : file.getAbsolutePath();
|
||||
this.file = new File(actual);
|
||||
String override = getOverride();
|
||||
if (override != null) {
|
||||
this.file = new File(override);
|
||||
}
|
||||
else {
|
||||
this.file = file;
|
||||
}
|
||||
}
|
||||
|
||||
private String getOverride() {
|
||||
for (String property : PROPERTY_VARIABLES) {
|
||||
try {
|
||||
String override = System.getProperty(property);
|
||||
override = (override != null ? override : System.getenv(property));
|
||||
if (override != null) {
|
||||
return override;
|
||||
}
|
||||
}
|
||||
catch (Throwable ex) {
|
||||
System.err.println("Could not resolve '" + property
|
||||
+ "' as system property: " + ex);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -67,7 +67,9 @@ public class ApplicationPidListenerTests {
|
|||
System.setProperty("PIDFILE", this.temporaryFolder.newFile().getAbsolutePath());
|
||||
ApplicationPidListener listener = new ApplicationPidListener(file);
|
||||
listener.onApplicationEvent(EVENT);
|
||||
assertThat(FileCopyUtils.copyToString(new FileReader(System.getProperty("PIDFILE"))), not(isEmptyString()));
|
||||
assertThat(
|
||||
FileCopyUtils.copyToString(new FileReader(System.getProperty("PIDFILE"))),
|
||||
not(isEmptyString()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -465,11 +465,11 @@ HTTPS connector:
|
|||
|
||||
[[howto-use-tomcat-behind-a-proxy-server]]
|
||||
=== Use Tomcat behind a front-end proxy server
|
||||
Spring Boot will automatically configure Tomcat's `RemoteIpValve` if you enable it. This allows you to
|
||||
transparently use the standard `x-forwarded-for` and `x-forwarded-proto` headers that
|
||||
most front-end proxy servers add. The valve is switched on by setting one or both of these
|
||||
properties to something non-empty (these are the conventional values used by most proxies, and if
|
||||
you only set one the other will be set automatically):
|
||||
Spring Boot will automatically configure Tomcat's `RemoteIpValve` if you enable it. This
|
||||
allows you to transparently use the standard `x-forwarded-for` and `x-forwarded-proto`
|
||||
headers that most front-end proxy servers add. The valve is switched on by setting one or
|
||||
both of these properties to something non-empty (these are the conventional values used by
|
||||
most proxies, and if you only set one the other will be set automatically):
|
||||
|
||||
[indent=0]
|
||||
----
|
||||
|
@ -477,9 +477,8 @@ you only set one the other will be set automatically):
|
|||
server.tomcat.protocol_header=x-forwarded-protocol
|
||||
----
|
||||
|
||||
If your proxy uses different headers you can
|
||||
customize the valve's configuration by adding some entries to `application.properties`,
|
||||
e.g.
|
||||
If your proxy uses different headers you can customize the valve's configuration by adding
|
||||
some entries to `application.properties`, e.g.
|
||||
|
||||
[indent=0]
|
||||
----
|
||||
|
|
Loading…
Reference in New Issue