Commit Graph

2709 Commits (4c96e95ad992294c407ab998de07815f8791c283)

Author SHA1 Message Date
Phillip Webb 5abc050a96 Support detection and with test initializers
Relax `SpringBootTestContextBootstrapper` rules so that a test can
specify an `ApplicationContextInitializer` and still have
`@SpringBootConfiguration` detected.

Prior to this commit detection would not occur because it's possible
that an initializer _could_ register configuration. This scenario is
actually quite unlikely to occur, certainly less likely than wanting to
use an initializer in combination with auto-detection.

Fixes gh-8483
8 years ago
Phillip Webb c9561f031c Refine validator and MVC validator configuration
Update `ValidationAutoConfiguration` and `WebMvcAutoConfiguration` to
ensure as much as possible that only a single Validator bean of each
type is registered.

Validation auto-configuration now does the following:
- If no validator is found: Registers a `LocalValidatorFactoryBean`
  (providing both Spring and JSR validation)
- If the user defines a Spring & JSR validator: Backs off
- If the user defines only a JSR validator: Adapts it to a Spring
  validator (without exposing another JSR implementation)

WebMvcAutoConfiguration auto-configuration has been updated to make
MVC validation follow common Spring Boot patterns:
- If not validator beans are found (due to the user excluding
  ValidationAutoConfiguration) a new `mvcValidator` bean will be
  registered.
- If a single validator bean is found it will be used for MVC
  validation.
- If multiple validator beans are defined it will either use the one
  named `mvcValidator` or it will register a new `mvcValidator` bean

Any automatically registered `mvcValidator` bean will not implement
the JSR validator interface.

Finally, it is no longer possible to provide an MVC validator via a
`WebMvcConfigurer`.

Fixes gh-8495
8 years ago
Phillip Webb 94209e2883 Merge branch '1.5.x' 8 years ago
Andy Wilkinson b9be0e3e0f Skip actuator path extension content negotiation
Allow `PathExtensionContentNegotiationStrategy` to be bypassed by
actuator endpoints. Prior to this commit calling `/loggers/com.aaa.cab`
would return a HTTP 406 response due to `.cab` being a known extension.

Fixes gh-8765
8 years ago
Walter Seymore f5f65463d2 Fail fast on getKeyFromServer() failure
Update `ResourceServerTokenServicesConfiguration` to fail fast if the
`getKeyFromServer()` call fails. Since the key is part of the singleton
`JwtAccessTokenConverter` bean there is not real way to refresh without
restarting the application.

A hard failure seems preferable to an inconsistent state.

Closes gh-8924
8 years ago
Phillip Webb 383640d5ec Merge branch '1.5.x' 8 years ago
Phillip Webb b2ae6b5f50 Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb cdf3eadc95 Rename AbstractTemplateAvailabilityProvider
Rename `AbstractTemplateAvailabilityProvider` to
`PathBasedTemplateAvailabilityProvider`.

Closes gh-8913
8 years ago
Stephane Nicoll 92468d4ffc Merge branch '1.5.x' 8 years ago
Stephane Nicoll e1f727719a Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll b7efec5401 Support case insensitive value for Cassandra's SchemaAction
Closes gh-8903
8 years ago
Brian Clozel 23360d11a2 Change codec auto-configuration in HandlerStrategies
Since SPR-15415 and SPR-15435, the HandlerStrategies and its companion
builder are now using the new CodecConfigurer infrastructure to
configure codecs in a cross-cutting way.

This commit looks for a custom instance of `HandlerStrategies.Builder`
provided by the user, or create a default one if none was found.

Fixes gh-8897
8 years ago
Stephane Nicoll eeed3a841c Review configuration properties appendix 8 years ago
Stephane Nicoll 5114c9d651 Polish "Handle null value in OnExpressionCondition"
Closes gh-8128
8 years ago
tinexw ccf1800116 Handle null value in OnExpressionCondition
Closes gh-2886
8 years ago
Stephane Nicoll 036157aeae Polish "Use JDK hashCode() variants for primitives"
Closes gh-8768
8 years ago
dreis f3bbbc4530 Use JDK hashCode() variants for primitives
See gh-8768
8 years ago
Stephane Nicoll d3f180b664 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 715cf7da75 Do not enable cglib if spring.aop.proxy-target-class is configured
This commit makes sure to honour the `spring.aop.proxy-target-class`
property if set by the user. Previously, the
`PersistenceExceptionTranslationPostProcessor` was always configured to
use cglib, regardless of the value of that property.

Closes gh-8887
8 years ago
Stephane Nicoll 2f2b1a0e8f Polish 8 years ago
Stephane Nicoll bcb13bea63 Split JPA-specific bits of Batch auto-config
This commit separates the JPA-specific bits of the batch
auto-configuration so that it is possible to reuse most of the logic if
JPA isn't available at all.

Closes gh-8877
8 years ago
Phillip Webb c4cba6b0ea Merge branch '1.5.x' 8 years ago
Phillip Webb c97268981a Polish 8 years ago
Phillip Webb d301d0f4c3 Merge branch '1.4.x' into 1.5.x 8 years ago
Phillip Webb 758ddcd420 Polish 8 years ago
Stephane Nicoll bd28de09b0 Merge branch '1.5.x' 8 years ago
Stephane Nicoll a00b695748 Do not enable cglib if spring.aop.proxy-target-class is configured
This commit makes sure to honour the `spring.aop.proxy-target-class`
property if set by the user. Previously, the
`MethodValidationPostProcessor` was always configured to use cglib,
regardless of the value of that property.

Closes gh-8869
8 years ago
Stephane Nicoll 134e93f3fd Fix API change in latest snapshot 8 years ago
Stephane Nicoll 2bdbe343df Merge branch '1.5.x' 8 years ago
Stephane Nicoll a132bd141f Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll 0a55e3e736 Polish "Clarify edge case docs on ConditionalOnClass"
Closes gh-8185
8 years ago
Andy Wilkinson aacdeaea4e Merge branch '1.5.x' 8 years ago
Andy Wilkinson 035cbd91f4 Use main thread in OnClassCondition if thread create/start fails
Previously, as a result of the changes made in de50cfa21e, an
application would fail to start on Google AppEngine as it prevents
the creation of new threads.

This commit updates OnClassCondition so that it falls back to
performing the work on the main thread when its unable to shift it
to a separate thread.

Closes gh-8584
8 years ago
Phillip Verheyden 08f8219248 Clarify edge case docs on ConditionalOnClass
When used as a meta-annotation the value() attribute of
@ConditionalOnClass will fail silently resulting in the @Conditional
nature of the annotation being ignored.

See gh-8185
8 years ago
Andy Wilkinson 5ac5aa3e9a Merge branch '1.5.x' 8 years ago
Andy Wilkinson f6a7e17688 Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 6564fb3d96 Consider all loader paths when checking template availability
Closes gh-8842
8 years ago
Stephane Nicoll bc340002cf Merge branch '1.5.x' 8 years ago
Stephane Nicoll 7c9b2afa5b Merge branch '1.4.x' into 1.5.x 8 years ago
Dr. Stefan Hüttemann 0294ad3e95 Allow to disable max http post size limit
Closes gh-8508
8 years ago
Andy Wilkinson c74f0a70ca Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson 5dad7182db Address deprecation warnings 8 years ago
Andy Wilkinson f0c5372642 Align with Spring Framework 5's new Commons Logging adapter
Closes gh-8825
8 years ago
Vedran Pavic 2667b7f51c Upgrade to Hazelcast 3.8
Closes gh-8808
8 years ago
Phillip Webb 2de7e9c310 Merge branch '1.5.x' 8 years ago
Phillip Webb ad38776de3 Polish 8 years ago
Phillip Webb ddcb5ee328 Polish 8 years ago
Andy Wilkinson 09898308ab Update autoconfigure's test deps to align with latest spring-kafka-test 8 years ago
Stephane Nicoll 78845fe63a Switch default value of spring.aop.proxy-target-class
This commit ensures that the default proxying value matches the opinion we
have applied for `@EnableTransactionManagement`

Closes gh-8786
8 years ago
Andy Wilkinson 6c6b9c284d Upgrade to Solr 6.5 and align with latest Spring Data Solr snapshots
Closes gh-8801
8 years ago
Andy Wilkinson 7f870aa19a Merge branch '1.5.x' 8 years ago
Andy Wilkinson 94e9c9417d Merge branch '1.4.x' into 1.5.x 8 years ago
Andy Wilkinson b280e3092d Don't forward to welcome page that won't exist due to custom mapping
Previously, WelcomePageHandlerMapping would forward to index.html.
This assumed that the static path pattern was always /**. If it had
been customised to, for example, /foo/**, then the forward would still
be to index.html and a 404 would result as the page is actually
available at /foo/index.html.

At first glance, it would appear that the forward should be made to
foo/index.html. However, as it's a forward rather than a redirect,
any relative URLs in the index.html page would then be resolved using
/ whereas they should be resolved using /foo/. This could be addressed
by using a redirect rather than a forward, but we don't want to do
that as it's more invasive and would require a roundtrip back to the
client. Instead, this commit simply stops performing the forward when
the static path pattern is not /**.

Closes gh-8788
8 years ago
Stephane Nicoll 3915f37dae Merge branch '1.5.x' 8 years ago
Stephane Nicoll 5cc2e103f2 Disable unexpected datasource initialization
This commit restore the disabling of datasource initialization that was
accidently removed in db33a75 so that other tests aren't affected by it.
8 years ago
Stephane Nicoll 4c32d6a7de Merge branch '1.5.x' 8 years ago
Stephane Nicoll 0163731043 Automatically enable transaction management for Neo4j
This commit makes sure that `@EnableTransactionManagement` is
auto-configured with Neo4j. It actually reuses what was done in #8434,
making sure that the `Neo4jDataAutoConfiguration` is ordered properly.

Closes gh-8587
8 years ago
Stephane Nicoll db33a75484 Enable transaction management consistently
Previously to this commit, transaction management was only enabled when
a `DataSource` is configured. The processing of `@Transactional`
annotations are now enabled as long as a `PlatformTransactionManager` is
present.

Also, the `spring.aop.proxy-target-class` is now honoured if set, still
defaulting to CGLIB mode.

Closes gh-8434
8 years ago
Andy Wilkinson f52b0b975a Update WebFlux auto-configuration following recent API changes 8 years ago
Brian Clozel df2d6b370e Fix compilation error with latest webflux changes
See commit c5bcefbd in Spring Framework, which refactored
the RequestMappingHandlerAdapter.
8 years ago
Andy Wilkinson aaf76e435e Align with latest Neo4j OGM 3.0 snapshots
See gh-8687
8 years ago
Johnny Lim 287520a810 Polish
Closes gh-8698
8 years ago
Andy Wilkinson d322d8613b Upgrade to Flyway 4.1.2
Closes gh-8752
8 years ago
Madhura Bhave 0ab7c25d9f Revert "Change default for new_generator_mappings to true"
This reverts commit 735dbc4583.
8 years ago
Andy Wilkinson e0a80c287c Remove Tomcat 7.0 and 8.0-based WebSocket support
Closes gh-8615
8 years ago
Madhura Bhave 735dbc4583 Change default for new_generator_mappings to true
Closes gh-7612
8 years ago
Andy Wilkinson a9a31107cf Align with API changes in latest Spring Data Kay snapshots
See gh-7461
8 years ago
Andy Wilkinson 87ebec6838 Upgrade to Jackson 2.9.0.pr2
As part of the upgrade, this commit removes the use of any API that
has been deprecated in 2.9. This includes the config props endpoint's
use of SerializationFeature.WRITE_NULL_MAP_VALUES. This has been
replaced with configuring serialization inclusion to only include
properties with non-null values. This means that all null-valued
properties will no longer be serialized, not just those that are an
entry in a map.

Closes gh-8604
Closes gh-8537
Closes gh-7695
8 years ago
Andy Wilkinson 25bf4a14cd Start building against Neo4j OGM 3.0.0 snapshots
This commit our Neo4j OGM dependency with the Spring Data Neo4j
snapshots that are currently included in snapshots of Spring Data Kay.

It switches to using Neo4j's Bolt driver by default, aligning it with
the default of the latest Spring Data Neo4j 5 snapshots.

It also contains a workaround for a Neo4j OGM issue [1] and a change
to Neo4jDataAutoConfigurationTests that prevents the entire classpath
from being scanned.

See gh-8687

[1] https://github.com/neo4j/neo4j-ogm/issues/340
8 years ago
Phillip Webb 34de119eba Polish 8 years ago
Stephane Nicoll da7287322b Polish 8 years ago
Stephane Nicoll b7d3aad54b Merge branch '1.5.x' 8 years ago
Stephane Nicoll fa3679af71 Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll cd76da9a4c Avoid using immutable collections for configuration proprerties
Closes gh-8620
8 years ago
Andy Wilkinson 1893fdab0d Revert "Upgrade to Jackson 2.9.0.pr1"
This reverts commit 10ae5e8f3f. Health
serialization fails with Jackson 2.9.0 (gh-7695).

See gh-8537
8 years ago
Andy Wilkinson 10ae5e8f3f Upgrade to Jackson 2.9.0.pr1
As part of the upgrade, this commit removes the use of any API that
has been deprecated in 2.9.0.pr1. This includes the config props
endpoint's use of SerializationFeature.WRITE_NULL_MAP_VALUES. This
has been replaced with configuring serialization inclusion to only
include properties with non-null values. This means that all
null-valued properties will no longer be serialized, not just those
that are an entry in a map.

Closes gh-8604
Closes gh-8537
8 years ago
Stephane Nicoll 7ee5e43109 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 22934e097d Merge branch '1.4.x' into 1.5.x 8 years ago
Vedran Pavic 17aad4f00c Improve `RedisSessionConfiguration` conditions
Closes gh-8582
8 years ago
Johnny Lim a3d15ed222 Polish
Closes gh-8621
8 years ago
Phillip Webb b76ca0bf8f Restructure web auto-configuration
Restructure `org.springframework.boot.autoconfigure.web` to better align
with the new package structure in `spring-boot`.

Auto-configuration is now split into client, servlet and reactive
sub-packages. In addition a new `http` package now handles common
HTTP concerns.

Fixes gh-8616
8 years ago
Phillip Webb 33e54ed723 Relocate `org.springframework.boot.web.support`
Move `org.springframework.boot.web.support` under the `servlet` package.

Fixes gh-8557
8 years ago
Phillip Webb 099e188f9f Unify WebServerFactoryCustomizers
Replace `ReactiveWebServerCustomizer` and `WebServerFactoryCustomizer`
with a unified `WebServerFactoryCustomizer`.

Fixes gh-8558
8 years ago
Phillip Webb 13db69bf41 Drop superfluous `@Order` annotation
Remove `@Order` which has no effect on `ImportBeanDefinitionRegistrar`.

Fixes gh-8603
8 years ago
Phillip Webb 4100360ceb Make ReactiveWebServerFactory functional interface
Update `ReactiveWebServerFactory` to contain only a single method.

Fixes gh-8559
8 years ago
Phillip Webb 69b72874ea Extract logging listeners
Separate logging ApplicationListeners classes to a different package
so that the root `logging` package is no longer aware of `context`
concerns.

Fixes gh-8611
8 years ago
Madhura Bhave 517b30acbb Merge branch '1.5.x' 8 years ago
Madhura Bhave 8deb72be80 Fix ResourceServerProperties validation
Only try and validate if clientId is present.

Fixes gh-8565
8 years ago
Phillip Webb 67556ba8ea Restructure embedded web server packages
Rework `org.springframework.boot.context.embedded` to relocate classes
to `org.springframework.boot.web`. Packages are now organized around
the following areas:

Packages for shared concerns, for example the `WebServer` interface
to start/stop a server and the common configuration elements:
- org.springframework.boot.web.context
- org.springframework.boot.web.server

Servlet specific packages:
- org.springframework.boot.web.servlet.server
- org.springframework.boot.web.servlet.context
- org.springframework.boot.web.servlet.filter

Reactive specific packages:
- org.springframework.boot.web.reactive.context
- org.springframework.boot.web.reactive.server

Embedded server implementations (both reactive and servlet):
- org.springframework.boot.web.embedded

In addition:

- Rename `EmbeddedServletContainerFactory` to `ServletWebServerFactory`
  to align with the `ReactiveWebServerFactory`.
- Rename `EmbeddedWebApplicationContext` to
  `ServletWebServerApplicationContext` and
- Rename `EmbeddedReactiveWebApplicationContext` to
  `ReactiveWebServerApplicationContext`.
- Add checkstyle rules to restrict imports.
- Fixup all affected code to use the correct imports and local names.

Fixes gh-8532
8 years ago
Phillip Webb b1f679b1c5 Fix HttpHandlerAutoConfiguration
Fix HttpHandlerAutoConfiguration following upstream Spring Framework
changes.
8 years ago
Stephane Nicoll 4f7e5efac8 Merge branch '1.5.x' 8 years ago
Stephane Nicoll 5d27c7e501 Handle non supported JOOQ dialect
This commit uses a fallback translator if the JOOQ Dialect in use is not
one we support.

Closes gh-8521
8 years ago
Stephane Nicoll 5ca197b5b6 Merge branch '1.5.x' 8 years ago
Stephane Nicoll f8bf05b91f Polish contribution
Closes gh-8474
8 years ago
srichard 0ddaca57fb Add Tomcat Access Log's fileDateFormat property
Closes gh-8396
8 years ago
Stephane Nicoll abef1ee4db Merge branch '1.5.x' 8 years ago
Stephane Nicoll feb1ab375f Merge branch '1.4.x' into 1.5.x 8 years ago
Eddú Meléndez 251090b1e5 Add missing spring-data-cassandra metadata
This commit adds the missing
`spring.data.cassandra.repositories.enabled` in the metadata and the
documentation.

Closes gh-8562
8 years ago
Stephane Nicoll 6624fe47c3 Merge branch '1.4.x' into 1.5.x 8 years ago
Stephane Nicoll e7922a574a Polish 8 years ago