Merge branch '1.5.x'

Closes gh-10457
pull/10494/head
Andy Wilkinson 7 years ago
commit 41424e4529

@ -115,7 +115,7 @@ Running a full build is a two phase process.
Preparing the build will compile and install the `spring-boot-maven-plugin` so that it
can be referenced during the full build. It also generates a `settings.xml` file that
enables a `snapshot`, `milestone` or `release` profiles based on the version being
build. To prepare the build, from the root directory use:
built. To prepare the build, from the root directory use:
[indent=0]
----

@ -53,7 +53,7 @@ import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMappi
/**
* A custom {@link RequestMappingInfoHandlerMapping} that makes web endpoints available on
* Cloudfoundry specific URLS over HTTP using Spring MVC.
* Cloud Foundry specific URLs over HTTP using Spring MVC.
*
* @author Madhura Bhave
*/

@ -37,7 +37,7 @@ public class HealthIndicatorProperties {
private List<String> order = null;
/**
* Mapping of health statuses to HttpStatus codes. By default, registered health
* Mapping of health statuses to HTTP status codes. By default, registered health
* statuses map to sensible defaults (i.e. UP maps to 200).
*/
private final Map<String, Integer> httpMapping = new HashMap<>();

@ -513,7 +513,7 @@
{
"name": "endpoints.health.mapping",
"type": "java.util.Map<java.lang.String,org.springframework.http.HttpStatus>",
"description": "Mapping of health statuses to HttpStatus codes. By default, registered health\n statuses map to sensible defaults (i.e. UP maps to 200).",
"description": "Mapping of health statuses to HTTP status codes. By default, registered health\n statuses map to sensible defaults (i.e. UP maps to 200).",
"deprecation": {
"replacement": "management.health.status.http-mapping",
"level": "error"

@ -45,7 +45,7 @@ public class JolokiaManagementContextConfigurationTests {
JolokiaManagementContextConfiguration.class));
@Test
public void jolokiaIsEnabledByDefault() {
public void jolokiaCanBeEnabled() {
this.contextRunner.withPropertyValues("management.jolokia.enabled=true")
.run((context) -> {
context.getBean(ServletRegistrationBean.class);

@ -38,18 +38,18 @@ import org.springframework.context.ConfigurableApplicationContext;
@Endpoint(id = "shutdown", defaultEnablement = DefaultEnablement.DISABLED)
public class ShutdownEndpoint implements ApplicationContextAware {
private static final Map<String, Object> NO_CONTEXT_MESSAGE = Collections
.unmodifiableMap(Collections.<String, Object>singletonMap("message",
private static final Map<String, String> NO_CONTEXT_MESSAGE = Collections
.unmodifiableMap(Collections.<String, String>singletonMap("message",
"No context to shutdown."));
private static final Map<String, Object> SHUTDOWN_MESSAGE = Collections
.unmodifiableMap(Collections.<String, Object>singletonMap("message",
private static final Map<String, String> SHUTDOWN_MESSAGE = Collections
.unmodifiableMap(Collections.<String, String>singletonMap("message",
"Shutting down, bye..."));
private ConfigurableApplicationContext context;
@WriteOperation
public Map<String, Object> shutdown() {
public Map<String, String> shutdown() {
if (this.context == null) {
return NO_CONTEXT_MESSAGE;
}

@ -74,7 +74,7 @@ public class CompositeReactiveHealthIndicator implements ReactiveHealthIndicator
}
/**
* Specify an alternative timeout {@link Health} if an {@link HealthIndicator} failed
* Specify an alternative timeout {@link Health} if a {@link HealthIndicator} failed
* to reply after specified {@code timeout}.
* @param timeout number of milliseconds to wait before using the
* {@code timeoutHealth}

@ -51,7 +51,7 @@ public class ShutdownEndpointTests {
contextRunner.run((context) -> {
EndpointConfig config = context.getBean(EndpointConfig.class);
ClassLoader previousTccl = Thread.currentThread().getContextClassLoader();
Map<String, Object> result;
Map<String, String> result;
Thread.currentThread().setContextClassLoader(
new URLClassLoader(new URL[0], getClass().getClassLoader()));
try {
@ -60,7 +60,7 @@ public class ShutdownEndpointTests {
finally {
Thread.currentThread().setContextClassLoader(previousTccl);
}
assertThat((String) result.get("message")).startsWith("Shutting down");
assertThat(result.get("message")).startsWith("Shutting down");
assertThat(((ConfigurableApplicationContext) context).isActive()).isTrue();
assertThat(config.latch.await(10, TimeUnit.SECONDS)).isTrue();
assertThat(config.threadContextClassLoader)
@ -74,7 +74,7 @@ public class ShutdownEndpointTests {
EmptyConfig.class).child(EndpointConfig.class)
.web(WebApplicationType.NONE).run();
CountDownLatch latch = context.getBean(EndpointConfig.class).latch;
assertThat((String) context.getBean(ShutdownEndpoint.class).shutdown()
assertThat(context.getBean(ShutdownEndpoint.class).shutdown()
.get("message")).startsWith("Shutting down");
assertThat(context.isActive()).isTrue();
assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue();
@ -87,7 +87,7 @@ public class ShutdownEndpointTests {
.web(WebApplicationType.NONE).run();
CountDownLatch parentLatch = context.getBean(EndpointConfig.class).latch;
CountDownLatch childLatch = context.getBean(EmptyConfig.class).latch;
assertThat((String) context.getBean(ShutdownEndpoint.class).shutdown()
assertThat(context.getBean(ShutdownEndpoint.class).shutdown()
.get("message")).startsWith("Shutting down");
assertThat(context.isActive()).isTrue();
assertThat(parentLatch.await(10, TimeUnit.SECONDS)).isTrue();

@ -42,7 +42,7 @@ public class SessionProperties {
*/
private StoreType storeType;
private Integer timeout;
private final Integer timeout;
private Servlet servlet = new Servlet();

@ -190,7 +190,7 @@ public class HttpMessageConvertersAutoConfigurationTests {
}
@Test
public void sringCustomConverter() {
public void stringCustomConverter() {
this.contextRunner.withUserConfiguration(StringConverterConfig.class)
.run(assertConverter(StringHttpMessageConverter.class,
"customStringMessageConverter"));

@ -335,7 +335,7 @@ public class SecurityAutoConfigurationTests {
protected static class TestAuthenticationProviderConfiguration {
@Bean
public AuthenticationProvider myauthenticationProvider() {
public AuthenticationProvider myAuthenticationProvider() {
return new TestingAuthenticationProvider();
}

@ -38,14 +38,14 @@ import org.springframework.boot.cli.command.run.RunCommand;
*/
public class DefaultCommandFactory implements CommandFactory {
private static final List<Command> DEFAULT_COMMANDS = Arrays.<Command>asList(
private static final List<Command> defaultCommands = Arrays.<Command>asList(
new VersionCommand(), new RunCommand(), new GrabCommand(), new JarCommand(),
new WarCommand(), new InstallCommand(), new UninstallCommand(),
new InitCommand());
@Override
public Collection<Command> getCommands() {
return DEFAULT_COMMANDS;
return defaultCommands;
}
}

@ -42,23 +42,23 @@ import org.springframework.core.env.PropertySource;
@Order(Ordered.LOWEST_PRECEDENCE)
public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostProcessor {
private static final Map<String, Object> PROPERTIES;
private static final Map<String, Object> properties;
static {
Map<String, Object> properties = new HashMap<>();
properties.put("spring.thymeleaf.cache", "false");
properties.put("spring.freemarker.cache", "false");
properties.put("spring.groovy.template.cache", "false");
properties.put("spring.mustache.cache", "false");
properties.put("server.session.persistent", "true");
properties.put("spring.h2.console.enabled", "true");
properties.put("spring.resources.cache-period", "0");
properties.put("spring.resources.chain.cache", "false");
properties.put("spring.template.provider.cache", "false");
properties.put("spring.mvc.log-resolved-exception", "true");
properties.put("server.servlet.jsp.init-parameters.development", "true");
properties.put("spring.reactor.stacktrace-mode.enabled", "true");
PROPERTIES = Collections.unmodifiableMap(properties);
Map<String, Object> devToolsProperties = new HashMap<>();
devToolsProperties.put("spring.thymeleaf.cache", "false");
devToolsProperties.put("spring.freemarker.cache", "false");
devToolsProperties.put("spring.groovy.template.cache", "false");
devToolsProperties.put("spring.mustache.cache", "false");
devToolsProperties.put("server.session.persistent", "true");
devToolsProperties.put("spring.h2.console.enabled", "true");
devToolsProperties.put("spring.resources.cache-period", "0");
devToolsProperties.put("spring.resources.chain.cache", "false");
devToolsProperties.put("spring.template.provider.cache", "false");
devToolsProperties.put("spring.mvc.log-resolved-exception", "true");
devToolsProperties.put("server.servlet.jsp.init-parameters.development", "true");
devToolsProperties.put("spring.reactor.stacktrace-mode.enabled", "true");
properties = Collections.unmodifiableMap(devToolsProperties);
}
@Override
@ -66,7 +66,7 @@ public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostPro
SpringApplication application) {
if (isLocalApplication(environment) && canAddProperties(environment)) {
PropertySource<?> propertySource = new MapPropertySource("refresh",
PROPERTIES);
properties);
environment.getPropertySources().addLast(propertySource);
}
}

@ -1249,7 +1249,7 @@ content into your application; rather pick only the properties that you need.
management.health.rabbit.enabled=true # Enable RabbitMQ health check.
management.health.redis.enabled=true # Enable Redis health check.
management.health.solr.enabled=true # Enable Solr health check.
management.health.status.http-mapping= # Mapping of health statuses to HttpStatus codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).
management.health.status.http-mapping= # Mapping of health statuses to HTTP status codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).
management.health.status.order=DOWN, OUT_OF_SERVICE, UP, UNKNOWN # Comma-separated list of health statuses in order of severity.
# INFO CONTRIBUTORS ({sc-spring-boot-actuator}/autoconfigure/info/InfoContributorProperties.{sc-ext}[InfoContributorProperties])

@ -1836,7 +1836,7 @@ respectively.
Spring Data REST can expose the `Repository` implementations as REST endpoints for you as
long as Spring MVC has been enabled for the application.
Spring Boot exposes as set of useful properties from the `spring.data.rest` namespace that
Spring Boot exposes a set of useful properties from the `spring.data.rest` namespace that
customize the
{spring-data-rest-javadoc}/core/config/RepositoryRestConfiguration.{dc-ext}[`RepositoryRestConfiguration`].
If you need to provide additional customization, you should use a

@ -114,7 +114,7 @@ The following technology agnostic endpoints are available:
|Allows the application to be gracefully shutdown (not enabled by default).
|`status`
|Show application status information (i.e. `health` status with no additional details)
|Show application status information (i.e. `health` status with no additional details).
|`threaddump`
|Performs a thread dump.
@ -393,7 +393,7 @@ to your application properties:
The HTTP status code in the response reflects the overall health status (e.g. `UP`
maps to 200, `OUT_OF_SERVICE` or `DOWN` to 503). You might also want to register custom
status mappings if you access the health endpoint over HTTP. For example, the following
maps `FATAL` to `HttpStatus.SERVICE_UNAVAILABLE`:
maps `FATAL` to 503 (service unavailable).
[source,properties,indent=0]
----

@ -1903,7 +1903,7 @@ You can also customize the static resource locations using
`spring.resources.static-locations` (replacing the default values with a list
of directory locations). The root Servlet context path `"/"` will be automatically
added as a location as well. If you do this the default welcome page detection will
switch to your custom locations, so if there is an `index.html` in any of your locations
switch to your custom locations. So if there is an `index.html` in any of your locations
on startup, it will be the home page of the application.
In addition to the '`standard`' static resource locations above, a special case is made

@ -228,14 +228,14 @@ class ImportsContextCustomizer implements ContextCustomizer {
private static final Class<?>[] NO_IMPORTS = {};
private static final Set<AnnotationFilter> ANNOTATION_FILTERS;
private static final Set<AnnotationFilter> annotationFilters;
static {
Set<AnnotationFilter> filters = new HashSet<>();
filters.add(new JavaLangAnnotationFilter());
filters.add(new KotlinAnnotationFilter());
filters.add(new SpockAnnotationFilter());
ANNOTATION_FILTERS = Collections.unmodifiableSet(filters);
annotationFilters = Collections.unmodifiableSet(filters);
}
private final Set<Object> key;
@ -274,7 +274,7 @@ class ImportsContextCustomizer implements ContextCustomizer {
}
private boolean isIgnoredAnnotation(Annotation annotation) {
for (AnnotationFilter annotationFilter : ANNOTATION_FILTERS) {
for (AnnotationFilter annotationFilter : annotationFilters) {
if (annotationFilter.isIgnored(annotation)) {
return true;
}

@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link ApplicationContextAssert}.
*
* @author Phillip Webb
* @uathor Andy Wilkinson
* @author Andy Wilkinson
*/
public class ApplicationContextAssertTests {

@ -76,7 +76,7 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
WRAPPER_TYPES = Collections.unmodifiableMap(types);
}
private static final Map<Class<?>, Object> DEFAULT_TYPE_VALUES;
private static final Map<Class<?>, Object> defaultTypeValues;
static {
Map<Class<?>, Object> values = new HashMap<>();
@ -85,16 +85,16 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
values.put(Short.class, (short) 0);
values.put(Integer.class, 0);
values.put(Long.class, (long) 0);
DEFAULT_TYPE_VALUES = Collections.unmodifiableMap(values);
defaultTypeValues = Collections.unmodifiableMap(values);
}
private static final Map<String, Object> WELL_KNOWN_STATIC_FINALS;
private static final Map<String, Object> wellKnownStaticFinals;
static {
Map<String, Object> values = new HashMap<>();
values.put("Boolean.TRUE", true);
values.put("Boolean.FALSE", false);
WELL_KNOWN_STATIC_FINALS = Collections.unmodifiableMap(values);
wellKnownStaticFinals = Collections.unmodifiableMap(values);
}
private final Map<String, Object> fieldValues = new HashMap<>();
@ -115,7 +115,7 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
private Object getValue(VariableTree variable) throws Exception {
ExpressionTree initializer = variable.getInitializer();
Class<?> wrapperType = WRAPPER_TYPES.get(variable.getType());
Object defaultValue = DEFAULT_TYPE_VALUES.get(wrapperType);
Object defaultValue = defaultTypeValues.get(wrapperType);
if (initializer != null) {
return getValue(initializer, defaultValue);
}
@ -148,7 +148,7 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
return this.staticFinals.get(expression.toString());
}
if (expression.getKind().equals("MEMBER_SELECT")) {
return WELL_KNOWN_STATIC_FINALS.get(expression.toString());
return wellKnownStaticFinals.get(expression.toString());
}
return defaultValue;
}

@ -120,7 +120,7 @@ public final class Layouts {
*/
public static class War implements Layout {
private static final Map<LibraryScope, String> SCOPE_DESTINATIONS;
private static final Map<LibraryScope, String> scopeDestinations;
static {
Map<LibraryScope, String> map = new HashMap<>();
@ -128,7 +128,7 @@ public final class Layouts {
map.put(LibraryScope.CUSTOM, "WEB-INF/lib/");
map.put(LibraryScope.RUNTIME, "WEB-INF/lib/");
map.put(LibraryScope.PROVIDED, "WEB-INF/lib-provided/");
SCOPE_DESTINATIONS = Collections.unmodifiableMap(map);
scopeDestinations = Collections.unmodifiableMap(map);
}
@Override
@ -138,7 +138,7 @@ public final class Layouts {
@Override
public String getLibraryDestination(String libraryName, LibraryScope scope) {
return SCOPE_DESTINATIONS.get(scope);
return scopeDestinations.get(scope);
}
@Override

@ -42,15 +42,15 @@ import org.springframework.boot.loader.tools.LibraryScope;
*/
public class ArtifactsLibraries implements Libraries {
private static final Map<String, LibraryScope> SCOPES;
private static final Map<String, LibraryScope> scopes;
static {
Map<String, LibraryScope> scopes = new HashMap<>();
scopes.put(Artifact.SCOPE_COMPILE, LibraryScope.COMPILE);
scopes.put(Artifact.SCOPE_RUNTIME, LibraryScope.RUNTIME);
scopes.put(Artifact.SCOPE_PROVIDED, LibraryScope.PROVIDED);
scopes.put(Artifact.SCOPE_SYSTEM, LibraryScope.PROVIDED);
SCOPES = Collections.unmodifiableMap(scopes);
Map<String, LibraryScope> libraryScopes = new HashMap<>();
libraryScopes.put(Artifact.SCOPE_COMPILE, LibraryScope.COMPILE);
libraryScopes.put(Artifact.SCOPE_RUNTIME, LibraryScope.RUNTIME);
libraryScopes.put(Artifact.SCOPE_PROVIDED, LibraryScope.PROVIDED);
libraryScopes.put(Artifact.SCOPE_SYSTEM, LibraryScope.PROVIDED);
scopes = Collections.unmodifiableMap(libraryScopes);
}
private final Set<Artifact> artifacts;
@ -70,7 +70,7 @@ public class ArtifactsLibraries implements Libraries {
public void doWithLibraries(LibraryCallback callback) throws IOException {
Set<String> duplicates = getDuplicates(this.artifacts);
for (Artifact artifact : this.artifacts) {
LibraryScope scope = SCOPES.get(artifact.getScope());
LibraryScope scope = scopes.get(artifact.getScope());
if (scope != null && artifact.getFile() != null) {
String name = getFileName(artifact);
if (duplicates.contains(name)) {

@ -56,12 +56,12 @@ public class Binder {
private static final Set<Class<?>> NON_BEAN_CLASSES = Collections
.unmodifiableSet(new HashSet<>(Arrays.asList(Object.class, Class.class)));
private static final List<BeanBinder> BEAN_BINDERS;
private static final List<BeanBinder> beanBinders;
static {
List<BeanBinder> beanBinders = new ArrayList<>();
beanBinders.add(new JavaBeanBinder());
BEAN_BINDERS = Collections.unmodifiableList(beanBinders);
List<BeanBinder> binders = new ArrayList<>();
binders.add(new JavaBeanBinder());
beanBinders = Collections.unmodifiableList(binders);
}
private final Iterable<ConfigurationPropertySource> sources;
@ -302,7 +302,7 @@ public class Binder {
return null;
}
return context.withBean(type, () -> {
Stream<?> boundBeans = BEAN_BINDERS.stream()
Stream<?> boundBeans = beanBinders.stream()
.map((b) -> b.bind(name, target, context, propertyBinder));
return boundBeans.filter(Objects::nonNull).findFirst().orElse(null);
});

@ -49,28 +49,28 @@ import org.springframework.boot.ansi.AnsiStyle;
@ConverterKeys({ "clr", "color" })
public final class ColorConverter extends LogEventPatternConverter {
private static final Map<String, AnsiElement> ELEMENTS;
private static final Map<String, AnsiElement> elements;
static {
Map<String, AnsiElement> elements = new HashMap<>();
elements.put("faint", AnsiStyle.FAINT);
elements.put("red", AnsiColor.RED);
elements.put("green", AnsiColor.GREEN);
elements.put("yellow", AnsiColor.YELLOW);
elements.put("blue", AnsiColor.BLUE);
elements.put("magenta", AnsiColor.MAGENTA);
elements.put("cyan", AnsiColor.CYAN);
ELEMENTS = Collections.unmodifiableMap(elements);
Map<String, AnsiElement> ansiElements = new HashMap<>();
ansiElements.put("faint", AnsiStyle.FAINT);
ansiElements.put("red", AnsiColor.RED);
ansiElements.put("green", AnsiColor.GREEN);
ansiElements.put("yellow", AnsiColor.YELLOW);
ansiElements.put("blue", AnsiColor.BLUE);
ansiElements.put("magenta", AnsiColor.MAGENTA);
ansiElements.put("cyan", AnsiColor.CYAN);
elements = Collections.unmodifiableMap(ansiElements);
}
private static final Map<Integer, AnsiElement> LEVELS;
private static final Map<Integer, AnsiElement> levels;
static {
Map<Integer, AnsiElement> levels = new HashMap<>();
levels.put(Level.FATAL.intLevel(), AnsiColor.RED);
levels.put(Level.ERROR.intLevel(), AnsiColor.RED);
levels.put(Level.WARN.intLevel(), AnsiColor.YELLOW);
LEVELS = Collections.unmodifiableMap(levels);
Map<Integer, AnsiElement> ansiLevels = new HashMap<>();
ansiLevels.put(Level.FATAL.intLevel(), AnsiColor.RED);
ansiLevels.put(Level.ERROR.intLevel(), AnsiColor.RED);
ansiLevels.put(Level.WARN.intLevel(), AnsiColor.YELLOW);
levels = Collections.unmodifiableMap(ansiLevels);
}
private final List<PatternFormatter> formatters;
@ -101,7 +101,7 @@ public final class ColorConverter extends LogEventPatternConverter {
}
PatternParser parser = PatternLayout.createPatternParser(config);
List<PatternFormatter> formatters = parser.parse(options[0]);
AnsiElement element = (options.length == 1 ? null : ELEMENTS.get(options[1]));
AnsiElement element = (options.length == 1 ? null : elements.get(options[1]));
return new ColorConverter(formatters, element);
}
@ -125,7 +125,7 @@ public final class ColorConverter extends LogEventPatternConverter {
AnsiElement element = this.styling;
if (element == null) {
// Assume highlighting
element = LEVELS.get(event.getLevel().intLevel());
element = levels.get(event.getLevel().intLevel());
element = (element == null ? AnsiColor.GREEN : element);
}
appendAnsiString(toAppendTo, buf.toString(), element);

@ -38,35 +38,35 @@ import org.springframework.boot.ansi.AnsiStyle;
*/
public class ColorConverter extends CompositeConverter<ILoggingEvent> {
private static final Map<String, AnsiElement> ELEMENTS;
private static final Map<String, AnsiElement> elements;
static {
Map<String, AnsiElement> elements = new HashMap<>();
elements.put("faint", AnsiStyle.FAINT);
elements.put("red", AnsiColor.RED);
elements.put("green", AnsiColor.GREEN);
elements.put("yellow", AnsiColor.YELLOW);
elements.put("blue", AnsiColor.BLUE);
elements.put("magenta", AnsiColor.MAGENTA);
elements.put("cyan", AnsiColor.CYAN);
ELEMENTS = Collections.unmodifiableMap(elements);
Map<String, AnsiElement> ansiElements = new HashMap<>();
ansiElements.put("faint", AnsiStyle.FAINT);
ansiElements.put("red", AnsiColor.RED);
ansiElements.put("green", AnsiColor.GREEN);
ansiElements.put("yellow", AnsiColor.YELLOW);
ansiElements.put("blue", AnsiColor.BLUE);
ansiElements.put("magenta", AnsiColor.MAGENTA);
ansiElements.put("cyan", AnsiColor.CYAN);
elements = Collections.unmodifiableMap(ansiElements);
}
private static final Map<Integer, AnsiElement> LEVELS;
private static final Map<Integer, AnsiElement> levels;
static {
Map<Integer, AnsiElement> levels = new HashMap<>();
levels.put(Level.ERROR_INTEGER, AnsiColor.RED);
levels.put(Level.WARN_INTEGER, AnsiColor.YELLOW);
LEVELS = Collections.unmodifiableMap(levels);
Map<Integer, AnsiElement> ansiLevels = new HashMap<>();
ansiLevels.put(Level.ERROR_INTEGER, AnsiColor.RED);
ansiLevels.put(Level.WARN_INTEGER, AnsiColor.YELLOW);
levels = Collections.unmodifiableMap(ansiLevels);
}
@Override
protected String transform(ILoggingEvent event, String in) {
AnsiElement element = ELEMENTS.get(getFirstOption());
AnsiElement element = elements.get(getFirstOption());
if (element == null) {
// Assume highlighting
element = LEVELS.get(event.getLevel().toInteger());
element = levels.get(event.getLevel().toInteger());
element = (element == null ? AnsiColor.GREEN : element);
}
return toAnsiString(in, element);

@ -66,23 +66,23 @@ public class ApplicationPidFileWriter
private static final String DEFAULT_FILE_NAME = "application.pid";
private static final List<Property> FILE_PROPERTIES;
private static final List<Property> fileProperties;
static {
List<Property> properties = new ArrayList<>();
properties.add(new SpringProperty("spring.pid.", "file"));
properties.add(new SpringProperty("spring.", "pidfile"));
properties.add(new SystemProperty("PIDFILE"));
FILE_PROPERTIES = Collections.unmodifiableList(properties);
fileProperties = Collections.unmodifiableList(properties);
}
private static final List<Property> FAIL_ON_WRITE_ERROR_PROPERTIES;
private static final List<Property> failOnWriteErrorProperties;
static {
List<Property> properties = new ArrayList<>();
properties.add(new SpringProperty("spring.pid.", "fail-on-write-error"));
properties.add(new SystemProperty("PID_FAIL_ON_WRITE_ERROR"));
FAIL_ON_WRITE_ERROR_PROPERTIES = Collections.unmodifiableList(properties);
failOnWriteErrorProperties = Collections.unmodifiableList(properties);
}
private static final AtomicBoolean created = new AtomicBoolean(false);
@ -153,7 +153,7 @@ public class ApplicationPidFileWriter
private void writePidFile(SpringApplicationEvent event) throws IOException {
File pidFile = this.file;
String override = getProperty(event, FILE_PROPERTIES);
String override = getProperty(event, fileProperties);
if (override != null) {
pidFile = new File(override);
}
@ -162,7 +162,7 @@ public class ApplicationPidFileWriter
}
private boolean failOnWriteError(SpringApplicationEvent event) {
String value = getProperty(event, FAIL_ON_WRITE_ERROR_PROPERTIES);
String value = getProperty(event, failOnWriteErrorProperties);
return (value == null ? false : Boolean.parseBoolean(value));
}

@ -43,14 +43,14 @@ import org.springframework.web.context.WebApplicationContext;
class ServletComponentRegisteringPostProcessor
implements BeanFactoryPostProcessor, ApplicationContextAware {
private static final List<ServletComponentHandler> HANDLERS;
private static final List<ServletComponentHandler> handlers;
static {
List<ServletComponentHandler> handlers = new ArrayList<>();
handlers.add(new WebServletHandler());
handlers.add(new WebFilterHandler());
handlers.add(new WebListenerHandler());
HANDLERS = Collections.unmodifiableList(handlers);
List<ServletComponentHandler> servletComponentHandlers = new ArrayList<>();
servletComponentHandlers.add(new WebServletHandler());
servletComponentHandlers.add(new WebFilterHandler());
servletComponentHandlers.add(new WebListenerHandler());
handlers = Collections.unmodifiableList(servletComponentHandlers);
}
private final Set<String> packagesToScan;
@ -78,7 +78,7 @@ class ServletComponentRegisteringPostProcessor
for (BeanDefinition candidate : componentProvider
.findCandidateComponents(packageToScan)) {
if (candidate instanceof ScannedGenericBeanDefinition) {
for (ServletComponentHandler handler : HANDLERS) {
for (ServletComponentHandler handler : handlers) {
handler.handle(((ScannedGenericBeanDefinition) candidate),
(BeanDefinitionRegistry) this.applicationContext);
}
@ -97,7 +97,7 @@ class ServletComponentRegisteringPostProcessor
false);
componentProvider.setEnvironment(this.applicationContext.getEnvironment());
componentProvider.setResourceLoader(this.applicationContext);
for (ServletComponentHandler handler : HANDLERS) {
for (ServletComponentHandler handler : handlers) {
componentProvider.addIncludeFilter(handler.getTypeFilter());
}
return componentProvider;

Loading…
Cancel
Save