Commit Graph

1838 Commits

Author SHA1 Message Date
Andy Wilkinson
c74f0a70ca Merge branch '1.4.x' into 1.5.x 2017-04-07 12:14:47 +01:00
Andy Wilkinson
5dad7182db Address deprecation warnings 2017-04-07 12:01:01 +01:00
Phillip Webb
ad38776de3 Polish 2017-04-04 09:48:10 -07:00
Phillip Webb
ddcb5ee328 Polish 2017-04-04 09:36:27 -07:00
Andy Wilkinson
4d71bfbf5c Merge branch '1.4.x' into 1.5.x 2017-04-04 10:03:19 +01:00
Andy Wilkinson
4b1e5e9c43 Improve diagnostics when loading a property source from a file fails
Closes gh-8294
2017-04-04 10:02:10 +01:00
Stephane Nicoll
52527c7298 Polish "Use git.commit.id.abbrev if present" contribution
Closes gh-8781
2017-03-31 15:09:43 +02:00
Pablo Tamarit
30b6166bc1 Use git.commit.id.abbrev if present
Currently GitProperties always shortens the property git.commit.id to an
hardcoded length of 7.

However, both the Maven plugin git-commit-id-plugin and the Gradle
plugin gradle-git-properties are now providing the property
git.commit.id.abbrev along with the propery git.commit.id.
Moreover, the Maven plugin allows to customize the length of the
abbreviated commit ID with the configuration abbrevLength. The Gradle
plugin doesn't allow (yet) to configure this length.

Closes gh-8773
2017-03-31 15:09:43 +02:00
Stephane Nicoll
c6182d510c Merge branch '1.4.x' into 1.5.x 2017-03-26 12:11:54 +02:00
Kyle Anderson
57977a654a Fix typo
Closes gh-8718
2017-03-26 12:10:04 +02:00
Madhura Bhave
e6f4d84618 Support setting log level ALL in logback
Fixes gh-8639
2017-03-17 15:51:30 -07:00
Stephane Nicoll
fa3679af71 Merge branch '1.4.x' into 1.5.x 2017-03-16 12:40:12 +01:00
Stephane Nicoll
cd76da9a4c Avoid using immutable collections for configuration proprerties
Closes gh-8620
2017-03-16 12:39:48 +01:00
Madhura Bhave
4607f8bc2f Determine key from configured alias for undertow
Closes gh-8245
2017-03-13 12:37:54 -07:00
Andy Wilkinson
1395f38ee7 Merge branch '1.4.x' into 1.5.x 2017-03-09 13:11:28 +00:00
Andy Wilkinson
a2cf0455fd Fix static resource handling when run in IDE or using Maven or Gradle
The changes made for gh-8299 attempted to make static resource
handling consistent across Jetty, Tomcat, and Undertow. They did so
for application's launched using JarLauncher or WarLauncher but did
not consider application's launched in an IDE or using spring-boot:run
in Maven or bootRun in Gradle.

Running in an IDE or via Maven or Gradle introduces two new
resource locations:

 - Jars on the classpath with file protocol URLs (they are always
   jar protocol URLs when using either launcher)
 - Directories on the classpath from a project that is depended upon
   and contains resources in META-INF/resources

This commit updates the factories for all three containers to handle
these new resources locations. The integration tests have also been
updated.
2017-03-09 12:41:32 +00:00
Phillip Webb
fedd7b9506 Polish 2017-03-06 12:01:05 -08:00
Phillip Webb
a3d5101369 Merge branch '1.4.x' into 1.5.x 2017-03-06 11:48:52 -08:00
Phillip Webb
f5aeac3658 Polish 2017-03-06 11:43:29 -08:00
Stephane Nicoll
28bba876fa Merge branch '1.4.x' into 1.5.x 2017-03-06 08:19:12 +01:00
Stephane Nicoll
9fb9a67c4b Avoid early initializations
This commit flags the two `BeanPostProcessors` registered by the
embedded support as `synthetic` so that they don't trigger an early
initialization of other components.

Closes gh-8467
2017-03-06 08:16:58 +01:00
Spring Buildmaster
d23fa24340 Next Development Version 2017-03-03 16:18:26 +00:00
Spring Buildmaster
2a83e80a9b Next Development Version 2017-03-03 14:39:21 +00:00
Andy Wilkinson
6381a07c71 Prevent ErrorPageFilter from being used if SBServletInitializer is used
Previously, the configuration class that produces the ErrorPageFilter
bean was an inner class of SpringBootServletInitializer. As a result,
whenever SpringBootServletInitializer was subclasses, the
ErrorPageFilter would be used. This adversely affected applications
running as an executable war file and those deployed to a container
with error page filter registration disabled.

This commit makes ErrorPageFilterConfiguration a top-level class so
that it is no longer always found via SpringBootServletInitializer.
The test that verifies that error page filter registration can be
disabled has been updated to more accurately simulate the behaviour
when an application is deployed as a war to a standalone container.
A test that mimics the behaviour of an application run as an
executable war has also been added.

Closes gh-8477
2017-03-03 12:06:30 +00:00
Phillip Webb
3ee7dae09b Merge branch '1.4.x' into 1.5.x 2017-03-01 23:44:40 -08:00
Phillip Webb
5aafbc2a3b Refine engine counter logic
Update counter logic to prevent negative values. Since the stop method
can now be called more than once, it was possible for the counter to
move into negative values.

See gh-8227
2017-03-01 23:07:48 -08:00
Phillip Webb
7fda9c162e Polish web containers stop contribution
See gh-8227
2017-03-01 23:07:41 -08:00
Michael K. Werle
757aa647cf Ensure web containers are stopped after close
Update `EmbeddedServletContainer` implementations to ensure that stop
can be called even if start has not. This allows servers that are
partially started during `initialize()` to still be shut down.

This commit fixes a regression caused by commit 0af53b361f.

See gh-8036
Fixes gh-8224
Closes gh-8227
2017-03-01 22:04:09 -08:00
Andy Wilkinson
68af831059 Merge branch '1.4.x' into 1.5.x 2017-03-01 14:03:38 +00:00
Andy Wilkinson
b443b745fb Make static resource handling consistent across embedded containers
Previously, there were a number of inconsistencies in the embedded
containers' handling of static resources. The Servlet spec requires
that static resources can be served from the META-INF/resources/
directory of jars nested inside a war in WEB-INF/lib/. The intention
was also to extend this to cover jar packaging when jars are nested in
BOOT-INF/lib/. This worked when using Tomcat as long as Jasper was on
the classpath. If you didn't have Jasper on the classpath or you
were using Jetty or Undertow it did not work.

This commit updates the configuration of embedded Jetty, Tomcat, and
Undertow so that all three containers handle static resources in the
same way, serving them from jars in WEB-INF/lib/ or /BOOT-INF/lib/.
Numerous intergration tests have been added to verify the behaviour,
including tests for Tomcat 8.0 and 7.0 which is supported in addition
to the default 8.5.x. Note that static resource handling only works
with Jetty 9.3.x and 9.2 and earlier does not support nested jars (
see https://github.com/eclipse/jetty.project/issues/518 for details).

Closes gh-8299
2017-03-01 12:40:26 +00:00
Phillip Webb
ca1540cefe Update header copyright for changed files 2017-02-27 20:41:18 -08:00
Phillip Webb
5867cd6175 Polish 2017-02-27 20:41:18 -08:00
Phillip Webb
47fd5f4fac Merge branch '1.4.x' into 1.5.x 2017-02-27 14:00:46 -08:00
Phillip Webb
47b00c086c Polish 2017-02-27 13:56:17 -08:00
Phillip Webb
f6db1cbcb2 Extend Microsoft SQL Server detection
Update Microsoft SQL Server detection logic to retain "SQL SERVER"
support (just in case the server string is driver specific).

See gh-8222
2017-02-27 13:41:34 -08:00
Madhura Bhave
b4134e239e Add autoconfiguration for JWKTokenStore
If `jwk.key-set-uri` is present.

Closes gh-4437
2017-02-15 12:05:29 -08:00
Stephane Nicoll
a0ef61a27d Enable proxy target class for MethodValidationPostProcessor
Closes gh-8277
2017-02-14 10:32:26 +01:00
Andy Wilkinson
7dd8e8c4b8 Honour spring.profiles.include even when .active has not been set
393cfe50 expanded the scope of spring.profiles.include so that it
could be used in any property source, and not just in a configuration
file. However, it did so in such a way that it would only take effect
when used outside of a configuration file if spring.profiles.active
was also set.

This commit updates ConfigFileApplicationListener so that included
profiles are activated when spring.profiles.active has not be set.

Closes gh-8244
2017-02-09 11:44:16 +00:00
Andy Wilkinson
7d247a71e4 Resolve placeholders against the env in active/include profiles values
The changes made in 919d0c61 meant that the value of
spring.profiles.active or spring.profiles.include was only processed
when a single property source, the property source for the config file
being read, was available. This meant that any placeholders in those
values would only be resolved against properties in the configuration
file rather than against the entire environment.

This commit updates the binding process so that placeholder resolution
is not performed during binding against a single configuration file.
Once binding has completed, the bounds values are post-processed to
resolve and placeholders that they may contain.

The two-step process described above is used in preference to binding
against the whole environment. This avoids a problem with profiles
that are active or included by property sources in the environment
being processed repeatedly.

Closes gh-8234
2017-02-08 15:00:25 +00:00
Johnny Lim
b3203058be Fix an assertion in SkipPatternJarScanner
Closes gh-8153
2017-02-08 14:59:33 +01:00
Stephane Nicoll
c48f45e755 Merge branch '1.4.x' into 1.5.x 2017-02-08 14:05:30 +01:00
Stephane Nicoll
3a15287c07 Fix detection for Microsoft SQL Server
Closes gh-8222
2017-02-08 14:04:46 +01:00
Andy Wilkinson
c2f4d027b4 Merge branch '1.4.x' into 1.5.x 2017-02-08 12:00:28 +00:00
Andy Wilkinson
9247cd9c36 Don't let standalone Tomcat render its error page after redirect
Previously, if the configured error controller responded with a
redirect to an error caused by an exception, standalone Tomcat would
render its default error page for the original exception. This
occurred because ErrorPageFilter sets the
javax.servlet.error.exception request attribute prior to dispatching
to the error controller and then does not clear it. As the request
unwinds, Tomcat's ErrorReportValve notices that the attribute is set
and renders an error page for the exception that is the attribute's
value.

This commit updates ErrorPageFilter to remove the
javax.servlet.error.exception and javax.servlet.error.exception_type
attributes upon successful completion of a forward to the error
controller. This prevents Tomcat from rendering an error page for
an exception that has already been handled by the error controller.

Closes gh-7920
2017-02-08 12:00:02 +00:00
Johnny Lim
0adab8a2be Use logical 'and' instead of bitwise 'and'
Closes gh-8198
2017-02-06 10:35:13 +01:00
Phillip Webb
87b8ce61de Fix Invalid target for Validator error
Update `PropertiesConfigurationFactory` so that the validator is only
set when it supports the target object.

Fixes gh-8149
2017-02-05 18:11:33 -08:00
Stephane Nicoll
3d1f8aa8d7 Merge branch '1.4.x' into 1.5.x 2017-02-05 09:25:48 +01:00
Stephane Nicoll
a30461c5c7 Polish pid metadata
This commit moves the `spring.pid.*` metadata to the relevant project. It
also updates the doc to refer to the new `ApplicationPidFileWriter`
rather than the one in its deprecatred form.

Closes gh-8196
2017-02-05 09:23:56 +01:00
Phillip Webb
4fa38aeba4 Consider hierarchy when searching for @Validated
Update `ConfigurationPropertiesBindingPostProcessor` to use a more
exhaustive hierarchy search when checking for `@Validated`.

Fixes gh-8150
2017-01-31 17:09:02 -08:00
Spring Buildmaster
5c12500366 Next Development Version 2017-01-30 20:10:13 +00:00