Commit Graph

4518 Commits (b719b0271cf9878c6665ddf97a401642ec11446e)
 

Author SHA1 Message Date
Stephane Nicoll b719b0271c Upgrade to Spring Framework 4.1.9.RELEASE
Closes gh-4440
9 years ago
Andy Wilkinson c0c79ab906 Revert "Upgrade to Spring Web Services 2.2.4.RELEASE"
This reverts commit acb3fb5399.

See gh-4789
9 years ago
Andy Wilkinson 43a16146ef Upgrade to Spring Integration 4.1.8.RELEASE
Closes gh-4719
9 years ago
Phillip Webb ce2a68276c Add ServletContext initialization documentation
Update the documentation to include a section about ServletContext
initialization with embedded servlet containers. This update is to
primarily highlight that `WebApplicationInitializers` and Servlet 3.0+
`ServletContainerInitializers` are not called.

Fixes gh-4643
9 years ago
Andy Wilkinson acb3fb5399 Upgrade to Spring Web Services 2.2.4.RELEASE
Closes gh-4789
9 years ago
Phillip Webb edb16a13ee Protect against SpEL injections
Prevent potential SpEL injection attacks by ensuring that whitelabel
error view SpEL placeholders are not recursively resolved.

Fixes gh-4763
9 years ago
Andy Wilkinson 7d5cc3da63 Stop ActiveMQ pooled connection factory when context is closed
Previously, ActiveMQ's pooled connection factory was not closed as
part of the application context being closed. This would leave
non-daemon threads running which could cause shutdown to hang unless
the JVM itself was shutting down (in which case a shutdown hook would
stop the pool).

This commit configures each pooled connection factory bean with a
custom destroy method so that the pool is stopped as part of the
application context being closed. To allow the destroy method to only
be declared when the connection factory is pooled, the bean method
has been split into two; one for pooled and one for non-pooled. This
is a partial backport of the changes made in bedf2edf.

Closes gh-4748
9 years ago
Andy Wilkinson 474ffa717e Upgrade to Spring Batch 3.0.6.RELEASE
Closes gh-4754
9 years ago
Phillip Webb 2694605a4d Polish 9 years ago
Stephane Nicoll ce2346b087 Reintroduce endpoints.metrics.filter.enabled
Commit 8c14009 removed the endpoints.metrics.filter.enabled property so
that endpoints.metrics.enabled is used for both disabling the endpoint
and the servlet filter that records interactions.

This was an unfortunate decision as it was no longer possible to only
disable the servlet filter. The endpoints.metrics.filter.enabled property
has therefore been restored.

Closes gh-4365
9 years ago
Andy Wilkinson ce541bebcf Align BasicErrorController’s HTML response status with non-HTML status
Previously, BasicErrorController would return the response status
set in the javax.servlet.error.status_code request attribute when
serving JSON but would also return a 200 OK response when serving
HTML. This didn’t cause much trouble when a person was browsing, but
proved problematic for machine clients that request text/html and care
about the response status. For example, the success handler would be
driven for an XHR request even though the response was really an error.

This commit updates BasicErrorController to set the response status for
text/html responses to match the status that it would use in an
application/json response.

Closes gh-4694
9 years ago
Andy Wilkinson b36fe2cbd8 Cache outcome of checking to see if host supports ANSI output
Closes gh-4510
9 years ago
Andy Wilkinson 8dc3b71ced Revert "Upgrade to Spring Integration 4.1.7.RELEASE"
This reverts commit bb9e1be72c.

4.1.7.RELEASE is incompatible with Spring IO Platform 1.1.x due to a
new dependency on kryo-shaded. kryo-shaded was introduced in Kryo
3.0.x but IO Platform 1.1.x uses Kryo 2.

See gh-4719
9 years ago
Andy Wilkinson 3b34f635a6 Upgrade to Spring Social Facebook 2.0.3.RELEASE
Closes gh-4738
9 years ago
Andy Wilkinson ae6971a61a Upgrade to Tomcat 8.0.30 and continue to use absolute redirects
Tomcat 8.0.30 has changed to using relative URIs in its redirects
by default. To avoid any problems that this behaviour change may
causes we override the default and configure Tomcat to continue to
use absolute URIs.

Closes gh-4715
9 years ago
Andy Wilkinson b10b7a883d Upgrade to Spring Security 3.2.9.RELEASE
Closes gh-4721
9 years ago
Andy Wilkinson 85bb1780d8 Upgrade to Spring Web Services 2.2.3.RELEASE
Closes gh-4720
9 years ago
Andy Wilkinson bb9e1be72c Upgrade to Spring Integration 4.1.7.RELEASE
Closes gh-4719
9 years ago
Andy Wilkinson e50357d907 Upgrade to Spring Loaded 1.2.5.RELEASE
Closes gh-4718
9 years ago
Andy Wilkinson e54f9063a8 Upgrade to SLF4J 1.7.13
Closes gh-4717
9 years ago
Andy Wilkinson 70ead7113d Upgrade to Jetty 9.2.14.v20151106
Closes gh-4716
9 years ago
Andy Wilkinson 349794f9cf Upgrade to mysql-connector-java 5.1.38
Closes gh-4714
9 years ago
Andy Wilkinson 8feaf1e92c Upgrade to Undertow 1.1.9.Final
Closes gh-4713
9 years ago
Andy Wilkinson 00b668b2c5 Only clean up logging system when root application context is closed
Previously, LoggingApplicationListener would clean up the logging
system in response to any application context with which it was
registered being closed. This caused problems when a child context was
closed. Specifically, closing the child context would cause any
SLF4J-based logging systems to unregister the JUL bridge handler
preventing an JUL logging being bridged into Logback or Log4J2.

This commit updates LoggingApplicationListener so that the logging
system is only cleaned up when a root application context is
closed.

Closes gh-4651
9 years ago
Ivan Chen d6bd120b2c Remove unused test.css from spring-boot-sample-tomcat
Closes gh-4606
9 years ago
Vladimir Tsanev 939b66f4ee Use fast exceptions in findResource(s)
Some libraries like aspectj are using findResource to see the raw
bytecode of a class. It will even call findResource for every method of
every class of beans that are post processed. This can be significant
performance hit on startup when LaunchedURLClassLoader and there are a
lot of nested jars.

See gh-3640
Fixes gh-4557
9 years ago
Andy Wilkinson 0214fe4b82 Remove inconsistent synchronization from EmbeddedWebApplicationContext
Previously, EmbeddedWebApplicationContext used synchronized, but did
not do so consistently. It also synchronized on this so its lock was
exposed outside of the class, creating a risk of deadlock if a caller
synchronized incorrectly. Furthermore, not all fields on the class
were sychronized so the class wasn't truly thread-safe.

This commit attempts to rectify some of the problems above. The use
of synchronized has been dropped in favour of using a volatile field
for the embedded servlet container. Whenever this field is accessed,
a local variable is used to "cache" the value thereby preventing a
change on another thread from causing unwanted behaviour such as an
NPE.

Closes gh-4593
9 years ago
Stephane Nicoll 9bffdc80ff Upgrade to Spring Framework 4.1.9.BUILD-SNAPSHOT 9 years ago
Stephane Nicoll 1ab05326a9 Upgrade to Spring Social 1.1.4.RELEASE 9 years ago
Dave Syer 7d04ca1e1b Add tests to assert behaviour of actuator endpoints with context path
See gh-4401
9 years ago
Stephane Nicoll ae13082e0d Generate meta-data for nested Lombok types
Closes gh-4397
9 years ago
Stephane Nicoll 8ede966708 Harmonize java.mail dependency management
Closes gh-4588
9 years ago
Stephane Nicoll e5ea0252cd Upgrade to commons-collections 3.2.2
Closes gh-4520
9 years ago
Stephane Nicoll d9f09e46f8 Cherry-pick 398d06e
Fixed initially in #3725

The target attribute is effectively checked for null beforehand so this
additional defensive check can be removed.

Closes gh-4567
9 years ago
Dimitri c605675b7a Fix wrong class reference
Closes gh-4551
9 years ago
Andy Wilkinson 2fe0819495 Isolate multiple Undertow deployments
Previously, UndertowEmbeddedServletContainerFactory always used
Undertow’s default ServletContainer. This meant that if there were two
UndertowEmbeddedServletContainers created, they would share the same
ServletContainer and the second one that was created would overwrite
the deployment for the first. This resulted in a async request
handling failing as the attempt to look up the deployment for the
first embedded Undertow instance would incorrectly find the deployment
for the second.

This commit fixes the problem by ensuring that each 
UndertowEmbeddedServletContainerFactory uses a separate Undertow
ServletContainer instance.

Closes gh-4329
9 years ago
Phillip Webb 604ca52491 Revert "Upgrade to Spring Social 1.1.3"
This reverts commit 331a26a497.
9 years ago
Phillip Webb 331a26a497 Upgrade to Spring Social 1.1.3
Fixes gh-4464
9 years ago
Phillip Webb 49a5587558 Fully support `-cp` arguments
The CLI application advertises `-cp` support but it appears that only
`--cp` is really supported. The fix for gh-178 forgot to update the
call to `getParser().parse(...)`.

See gh-178
9 years ago
Phillip Webb f08f872729 Restore original embedded container shutdown order
Update EmbeddedWebApplicationContext so that the servlet container is
shutdown after the context is closed. Unfortunately shutting the
container down before the context has been closed causes exceptions if
the `/shutdown` actuator endpoint is used. It can also cause the Tomcat
classloader to throw IllegalStateExceptions if resources are accessed
during shutdown.

As this commit effectively reverts 0069e41c we need to fix the shutdown
deadlock issue reported in gh-4130 in a different way. The deadlock can
be caused when an incoming HTTP connection occurs whilst the context is
closing. The incoming connection triggers the `FrameworkServlet` to
call `initWebApplicationContext` which in turn calls `refresh`. The
`FrameworkServlet` checks `ApplicationContext.isActive()` before
performing an initialization but prior to this commit we would set
active to `false` before stopping the servlet container. We now override
`onClose` rather than `doClose` in `EmbeddedWebApplicationContext` to
ensure that the active flag is only set to `false` once the servlet
container has been stopped.

See gh-4130
Fixes gh-4396
9 years ago
Stephane Nicoll 6d90188a27 Fix Maven/Gradle wrapper executable flag
Spring Initalizr now bundles a wrapper script for the build system. While
that wrapper has the necessary execute flag in the zip archive, that flag
is lost as the zip abstraction does not honor those.

The init command now makes sure to restore the execute flag on `mvnw`
and `gradlew` if necessary.

Unfortunately, this can't be tested as the Windows build would fail to
assert that the executable flag has been propertly set.

Closes gh-4392
9 years ago
Stephane Nicoll 96ca3e0c0f Polish
Add missing documentation

See gh-4220
9 years ago
Phillip Webb 9432ee6a6b Polish 9 years ago
Dave Syer 124574e345 Add mediaTypes (extension to media type mapping) in MVC resources
Allows users to configure "allowed" file extensions for controller
mappings, so that browsers will not switch to downloading "f.txt"
(part of the recent RFD attack fixes in Spring MVC).

See gh-4220
9 years ago
Phillip Webb 2118242e00 Polish 9 years ago
Stephane Nicoll 8c140092b6 Fix key to disable the metrics filter
Commit d0cf6b5 introduced a `endpoints.metrics.filter.enabled` property
key meant to disable the filter. Unfortunately, the `endpoints.metrics`
namespace is already managed so setting this property will fail.

We now use the same key than the one used to disable the metrics
endpoint.

Closes gh-4365
9 years ago
Stephane Nicoll 791e3048cf Fixup version numbers following release 9 years ago
Andy Wilkinson 1f92360583 Ensure that HATEOAS sample does not try to produce XML
The HATEOAS sample does not support XML responses. Previously, the
controller doesn't constrain the media types that it could produce.
This would result in a failure when handling a request that prefers
XML responses.

This commit updates the produces clauses in the controller so that
the sample will only attempt to produce JSON.

Closes gh-4343
9 years ago
Andy Wilkinson 05b501ce41 Update Tomcat multi-connectors sample to configure SSL declaratively
The documentation recommends configuring the HTTP connector in code
and using application.properties to configure the HTTPS connector
as it's easier. This commit updates the sample to follow that
recommendation.

Closes gh-4342
9 years ago
Stephane Nicoll 7c1bf58262 Filter duplicate
Improve the initial PR to include a filtering of the profiles that were
already enabled via the `spring.profiles.active` property.

Also add more tests to prove that each profile is loaded only once
now.

Closes gh-4273
9 years ago