pull/9712/merge
Johnny Lim 7 years ago committed by Andy Wilkinson
parent bcbf7b5511
commit bfa291f671

@ -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 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 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 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] [indent=0]
---- ----

@ -38,7 +38,7 @@ public class SessionProperties {
*/ */
private StoreType storeType; private StoreType storeType;
private Integer timeout; private final Integer timeout;
private final Hazelcast hazelcast = new Hazelcast(); private final Hazelcast hazelcast = new Hazelcast();

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2014 the original author or authors. * Copyright 2012-2017 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.
@ -39,14 +39,14 @@ import org.springframework.boot.cli.command.test.TestCommand;
*/ */
public class DefaultCommandFactory implements CommandFactory { 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 TestCommand(), new GrabCommand(), new VersionCommand(), new RunCommand(), new TestCommand(), new GrabCommand(),
new JarCommand(), new WarCommand(), new InstallCommand(), new JarCommand(), new WarCommand(), new InstallCommand(),
new UninstallCommand(), new InitCommand()); new UninstallCommand(), new InitCommand());
@Override @Override
public Collection<Command> getCommands() { public Collection<Command> getCommands() {
return DEFAULT_COMMANDS; return defaultCommands;
} }
} }

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

@ -1022,7 +1022,7 @@ content into your application; rather pick only the properties that you need.
endpoints.flyway.sensitive= # Mark if the endpoint exposes sensitive information. endpoints.flyway.sensitive= # Mark if the endpoint exposes sensitive information.
endpoints.health.enabled= # Enable the endpoint. endpoints.health.enabled= # Enable the endpoint.
endpoints.health.id= # Endpoint identifier. endpoints.health.id= # Endpoint identifier.
endpoints.health.mapping.*= # Mapping of health statuses to HttpStatus codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200). endpoints.health.mapping.*= # Mapping of health statuses to HTTP status codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).
endpoints.health.path= # Endpoint path. endpoints.health.path= # Endpoint path.
endpoints.health.sensitive= # Mark if the endpoint exposes sensitive information. endpoints.health.sensitive= # Mark if the endpoint exposes sensitive information.
endpoints.health.time-to-live=1000 # Time to live for cached result, in milliseconds. endpoints.health.time-to-live=1000 # Time to live for cached result, in milliseconds.

@ -2061,7 +2061,7 @@ respectively.
Spring Data REST can expose the `Repository` implementations as REST endpoints for you as Spring Data REST can expose the `Repository` implementations as REST endpoints for you as
long as Spring MVC has been enabled for the application. 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 customize the
{spring-data-rest-javadoc}/core/config/RepositoryRestConfiguration.{dc-ext}[`RepositoryRestConfiguration`]. {spring-data-rest-javadoc}/core/config/RepositoryRestConfiguration.{dc-ext}[`RepositoryRestConfiguration`].
If you need to provide additional customization, you should use a If you need to provide additional customization, you should use a

@ -397,7 +397,7 @@ to your application properties:
The HTTP status code in the response reflects the overall health status (e.g. `UP` 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 maps to 200, `OUT_OF_SERVICE` or `DOWN` to 503). You might also want to register custom
status mappings with the `HealthMvcEndpoint` if you access the health endpoint over HTTP. status mappings with the `HealthMvcEndpoint` if you access the health endpoint over HTTP.
For example, the following maps `FATAL` to `HttpStatus.SERVICE_UNAVAILABLE`: For example, the following maps `FATAL` to 503 (service unavailable):
[source,properties,indent=0] [source,properties,indent=0]
---- ----

@ -1876,7 +1876,7 @@ can be achieved as follows:
You can also customize the static resource locations using You can also customize the static resource locations using
`spring.resources.static-locations` (replacing the default values with a list of directory `spring.resources.static-locations` (replacing the default values with a list of directory
locations). If you do this the default welcome page detection will switch to your custom locations). 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 on startup, it will be locations. So if there is an `index.html` in any of your locations on startup, it will be
the home page of the application. the home page of the application.
In addition to the '`standard`' static resource locations above, a special case is made 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 Class<?>[] NO_IMPORTS = {};
private static final Set<AnnotationFilter> ANNOTATION_FILTERS; private static final Set<AnnotationFilter> annotationFilters;
static { static {
Set<AnnotationFilter> filters = new HashSet<AnnotationFilter>(); Set<AnnotationFilter> filters = new HashSet<AnnotationFilter>();
filters.add(new JavaLangAnnotationFilter()); filters.add(new JavaLangAnnotationFilter());
filters.add(new KotlinAnnotationFilter()); filters.add(new KotlinAnnotationFilter());
filters.add(new SpockAnnotationFilter()); filters.add(new SpockAnnotationFilter());
ANNOTATION_FILTERS = Collections.unmodifiableSet(filters); annotationFilters = Collections.unmodifiableSet(filters);
} }
private final Set<Object> key; private final Set<Object> key;
@ -274,7 +274,7 @@ class ImportsContextCustomizer implements ContextCustomizer {
} }
private boolean isIgnoredAnnotation(Annotation annotation) { private boolean isIgnoredAnnotation(Annotation annotation) {
for (AnnotationFilter annotationFilter : ANNOTATION_FILTERS) { for (AnnotationFilter annotationFilter : annotationFilters) {
if (annotationFilter.isIgnored(annotation)) { if (annotationFilter.isIgnored(annotation)) {
return true; return true;
} }

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

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

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

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

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

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

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

Loading…
Cancel
Save