Commit Graph

2425 Commits

Author SHA1 Message Date
Andy Wilkinson
31b0e81765 Add @FunctionalInterface to remaining public and protected interfaces
See gh-6857
2017-01-27 16:41:09 +00:00
Eddú Meléndez
3d52c86a21 Annotate interfaces with @FunctionaInterface
Closes gh-6857
2017-01-27 16:41:01 +00:00
Andy Wilkinson
bed727ae8c Merge branch '1.5.x' 2017-01-26 15:05:02 +00:00
Andy Wilkinson
f34d309548 Formatting 2017-01-26 15:03:02 +00:00
Andy Wilkinson
5d24c9c589 Merge branch '1.5.x' 2017-01-26 10:52:08 +00:00
Andy Wilkinson
f5445ba5ff Remove OnValidatorAvailableCondition as it is now redundant
Previously, Hibernate Validator would fail to initialize if it was
on the classpath but an EL implementation was not.
OnValidatorAvailableCondition protected against this scenario by
initializing the validator.

The Hibernate Validator shortcoming was addressed in eb222209
(gh-7598). As a result, checking for the precences of the
ValidationProvider META-INF/services resource is now sufficient to
auto-configure validation. This commit removes
OnValidatorAvailableCondition as it is no longer necessary.

Closes gh-8110
2017-01-26 10:42:46 +00:00
Andy Wilkinson
4993f32da8 Merge branch '1.5.x' 2017-01-26 09:40:33 +00:00
Brian Clozel
de98c4b3ff Provide Reactor 3 auto-configuration
This commit provides auto-configuration for the Reactor Core 3 library.
A new configuration namespace, "spring.reactor" allows to configure
hooks on operators, like "spring.reactor.stacktrace-mode.enabled".

This property is enabled automatically by devtools, since it improves
the developer experience and provides full stacktrace information when
exceptions occur (but at a performance cost).

Fixes gh-7302
2017-01-26 10:35:12 +01:00
Andy Wilkinson
f823599d1f Replace @PostConstruct validation with setter validation
Closes gh-7579
2017-01-26 09:32:07 +00:00
Andy Wilkinson
05831e4b87 Merge branch '1.5.x' 2017-01-25 14:55:39 +00:00
Andy Wilkinson
37cf31f450 Upgrade to Couchbase Java Client 2.3.7
In version 2.3.6 and earlier, an attempt to create a Bucket or a
ClusterInfo would fail fast with a ConnectException in the cause of
the Couchbase server was done. In 2.3.7 this remains true for a
Bucket but is no longer the case for ClusterInfo. The latter now
retries for 75 seconds by default and when it eventually fails a
ConnectException is no longer part of the cause chain.

This commit makes the auto-configured ClusterInfo depend on the
auto-configured Bucket. This means that the Bucket is always created
before the ClusterInfo, thereby ensuring that things fail gracefully
with useful diagnostics when the server is unavailable.

Closes gh-8092
2017-01-25 14:55:28 +00:00
Andy Wilkinson
9bba73a1a9 Upgrade to Thymeleaf 3 and drop support for Thymleaf 2
This commit raises the minimum supported version of Thymeleaf to
3.0.x. It also upgrades Spring Social to a version that is compatible
with Thymeleaf 3.

Closes gh-7450
Closes gh-6258
See gh-7885
2017-01-25 13:59:09 +00:00
Stephane Nicoll
661fd848eb Merge branch '1.5.x' 2017-01-25 11:02:32 +01:00
Stephane Nicoll
505e7f75ea Polish contribution
Closes gh-8089
2017-01-25 11:01:53 +01:00
dreis
d58f38f6f6 Use String.replace() with single char if possible
See gh-8089
2017-01-25 11:01:52 +01:00
Stephane Nicoll
551bfb2c60 Polish contribution
Closes gh-8103
2017-01-25 11:01:52 +01:00
Johnny Lim
32f9e90de5 Replace 'String.length() == 0' with 'String.isEmpty()'
See gh-8103
2017-01-25 11:01:52 +01:00
Stephane Nicoll
d67ce78e8b Merge branch '1.5.x' 2017-01-24 13:23:06 +01:00
Johnny Lim
e0de28a1f7 Polish
Closes gh-8076
2017-01-24 13:22:22 +01:00
Andy Wilkinson
0148276c05 Remove unnecessary warning suppressions 2017-01-24 11:03:05 +00:00
Phillip Webb
8ffaa54e74 Merge branch '1.5.x' 2017-01-23 23:45:44 -08:00
Phillip Webb
b0e06c30a0 Polish 2017-01-23 22:14:58 -08:00
Phillip Webb
de50cfa21e Make OnClassCondition an AutoConfigurationImportFilter
Update OnClassCondition to implement AutoConfigurationImportFilter so
that auto-configuration candidates can be filtered early. The
optimization helps to improve application startup time by reducing
the number of classes that are loaded.

See gh-7573
2017-01-23 22:14:58 -08:00
Phillip Webb
20a20b7711 Add AutoConfigurationImportFilter support
Add `AutoConfigurationImportFilter` strategy interface which can be used
to filter auto-configuration candidates before they are loaded.

See gh-7573
2017-01-23 22:14:57 -08:00
Phillip Webb
02641a8207 Optimize AutoConfigurationSorter
Optimize `AutoConfigurationSorter` by used properties generated by the
annotation processor whenever possible. The removes the need for each
candidate class to be ASM parsed just to access the order annotations.

See gh-7573
2017-01-23 22:14:57 -08:00
Phillip Webb
1cbda9bd60 Add AutoConfigurationMetadata abstraction
Add AutoConfigurationMetadata interface and a an internal loader that
allows easy access to data written by `spring-boot-configure-processor`.

See gh-7573
2017-01-23 22:14:57 -08:00
Madhura Bhave
ca435512c0 Introduce spring-boot-autoconfigure-processor
Add an annotation processor that generates properties files for certain
auto-configuration class annotations. Currently attribute values from
@AutoConfigureOrder, @AutoConfigureBefore, @AutoConfigureAfter and
@ConditionalOnClass annotations are stored.

The properties file will allow optimizations to be added in the
`spring-boot-autoconfigure` project. Primarily by removing the need
to ASM parse as many `.class` files.

See gh-7573
2017-01-23 22:14:56 -08:00
Phillip Webb
ccf964eb9a Optimize OnEnabledResourceChainCondition
Optimize OnEnabledResourceChainCondition by removing the DataBinder.
Properties are now read directly from the Environment.

See gh-7573
2017-01-23 18:29:23 -08:00
Phillip Webb
f8ded6de63 Don't use DataBinder to work out excludes
Update `AutoConfigurationImportSelector` so that exclude properties
are loaded without invoking a `DataBinder`. This optimization helps
to improve application startup time.

See gh-7573
2017-01-23 18:29:23 -08:00
Phillip Webb
cfd5a73b64 Don't call ReflectionUtils do deduce bean type
Update `OnBeanCondition` to no longer call `ReflectionUtils` when
deducing the bean method return type. Since Spring Framework 4.2
the return type has been directly available from `MethodMetadata`.

See gh-7573
2017-01-23 17:33:39 -08:00
Phillip Webb
996afafac6 Optimize OnClassCondition isPresent check
Update `OnClassCondition` to use its own `isPresent` rather than using
`ClassUtils.isPresent`. Using our own implementation saves a few cycles
since we never need to check for native types, and we don't support
nested class references specified in the non `$` notation.

See gh-7573
2017-01-23 17:33:28 -08:00
Phillip Webb
9650668291 Remove dependency from root to condition
Remove the slightly unusual dependency from the root autoconfigure
pacakge to `condition`. Prior to this commit the link was required in
ordere to populate the `ConditionEvaluationReport`. We now introduce
a `AutoConfigurationImportListener` strategy that allows anyone to
listen for AutoConfigurationImportEvents. The listener implementation
is now used to update the ConditionEvaluationReport.

Fixes gh-8073
2017-01-23 17:33:15 -08:00
Phillip Webb
b225b7f33a Rename EnableAutoConfigurationImportSelector
Rename EnableAutoConfigurationImportSelector to the more general
AutoConfigurationImportSelector since it's now used for more than
just the enable annotation.

The existing EnableAutoConfigurationImportSelector class remains in
a deprecated form so that it can be made package-private again in
Spring Boot 2.0.

Fixes gh-8072
2017-01-23 17:33:02 -08:00
Phillip Webb
2c89d9918f Relocate AutoConfigurations from root package
Move PropertyPlaceholder and MessageSource auto-configuration from the
root package to the `context` subpackage.

Fixes gh-8071
2017-01-23 17:32:45 -08:00
Phillip Webb
3893383cbe Merge branch '1.5.x' 2017-01-23 16:40:30 -08:00
Phillip Webb
5703fb1515 Polish 2017-01-23 16:03:59 -08:00
Andy Wilkinson
c543101dc1 Merge branch '1.5.x' 2017-01-23 10:10:59 +00:00
Andy Wilkinson
9a79d32f4c Polishing 2017-01-23 10:10:45 +00:00
Andy Wilkinson
79bf7d473c Merge branch '1.5.x' 2017-01-23 09:48:44 +00:00
Andy Wilkinson
c86b844477 Remove @Component from ResourceServerFilterChainOrderProcessor
Closes gh-8050
2017-01-23 09:48:21 +00:00
Andy Wilkinson
d4c4bc35fd Start building against Spring Data Kay snapshots
See gh-7461
2017-01-20 21:16:38 +00:00
Andy Wilkinson
258595e162 Merge branch '1.5.x' 2017-01-20 16:40:12 +00:00
Andy Wilkinson
a30fe9d9ff Update ServerPropertiesTests to tolerate changes in Tomcat 8.5.11
Closes gh-7360
2017-01-20 16:39:00 +00:00
Stephane Nicoll
4fe04178b7 Merge branch '1.5.x' 2017-01-20 16:43:21 +01:00
Stephane Nicoll
915c959a28 Polish contribution
Closes gh-7600
2017-01-20 16:40:48 +01:00
Stephane Nicoll
b19d31e067 Use a random port with embedded Mongo by default
This commit improves the logic of the embedded Mongo support to use a
random port if no custom port has been specified. This doesn't change
the default if the embedded support isn't active.

Closes gh-8044
2017-01-20 16:40:06 +01:00
Andy Wilkinson
65fe405f19 Merge branch '1.5.x' 2017-01-20 15:32:09 +00:00
Andy Wilkinson
b900a3efc8 Update Actuator endpoints to use custom media type
Previously, the actuator's endpoints produced application/json and,
where appropriate, also consumed application/json. Without a custom,
versioned media type, it's impossible for us to make changes to the
endpoints without breaking clients.

This commit introduces a new media type,
application/spring-boot.actuator.v1+json, that is now produced by
default with application/json also being produced if requested.
Endpoints that consume JSON will now also accept content the uses
the new media type in addition to application/json.

Closes gh-7967
2017-01-20 15:31:22 +00:00
Phillip Webb
89f7ec054f Merge branch '1.5.x' 2017-01-19 12:45:26 -08:00
Phillip Webb
f3cd0ad22c Polish 2017-01-19 12:44:57 -08:00