Commit Graph

458 Commits (ec419fca8bf1a92085c689ac9d6cd22947e3f3c5)

Author SHA1 Message Date
Stephane Nicoll 0207b816d9 Attempt to detect ddl-auto mode only if necessary
This commit defers the resolution of the default ddl auto mode only when
it is absolutely necessary. This prevents Spring Boot to attempt to get
a connection when it isn't necessary

Closes gh-12374
7 years ago
Andy Wilkinson 317b51f2ad Make ApplicationContextRequestMatcher and subclasses thread-safe
Previously, when performing lazy initialisation of the context,
ApplicationContextRequestMatcher assigned the context field before it
called initialized. The context being non-null is used as the signal
that it’s ok to call a subclass’s matches method. If one thread checks
for a non-null context in between the field being assigned and
initialized being called on another thread, matches will be called
before the subclass is ready.

This commit closes the window for the race condition by only assigning
the context field once the subclass’s initialized method has been
called.

There is a secondary problem in each of the subclasses. Due to the use
of double-checked locking in ApplicationContextRequestMatcher, it’s
possible for a subclass’s matches method to be called by a thread that
has not synchronised on the context lock that’s held when initialized
is called and the delegate field is assigned. This means that the
value assigned to the field may not be visible to that thread.

This commit declares the delegate field of each
ApplicationContextRequestMatcher subclass as volatile to ensure that,
following initialisation, its value is guaranteed to be visible to
all threads.

Closes gh-12380
7 years ago
Stephane Nicoll 42629cb8ae Add support for ConnectionNameStrategy
This commit detects if a `ConnectionNameStrategy` bean exists in the
context and associates it with the auto-configured RabbitMQ's
`ConnectionFactory` when that is the case.

Closes gh-12367
7 years ago
Stephane Nicoll 326c1e123c Merge branch '1.5.x' 7 years ago
Stephane Nicoll 6f7501f62b Remove my clone 7 years ago
Stephane Nicoll 7f5b7a6b47 Polish contribution
Closes gh-12326
7 years ago
Johnny Lim 751c444166 Polish
See gh-12326
7 years ago
Johnny Lim 83ed0c7783 Make UserDetailsServiceAutoConfiguration.getOrDeducePassword() private
Closes gh-12295
7 years ago
Phillip Webb 7bc535e4fa Polish 7 years ago
Andy Wilkinson 9b46221345 Escape backslashes so they are preserved during Properties parsing
Closes gh-12285
7 years ago
Stephane Nicoll 0f652cdf4f Fix injection point with proxied DataSource
Prior to this commit, the `ApplicationContext` couldn't start with a
JDK-proxied `HikariDataSource` as the JMX auto-configuration was
attempting to inject a (too narrowed) `HikariDataSource`.

This commit rather injects a regular `DataSource` and attempt to unwrap
it as a `HikariDataSource`.

Closes gh-12271
7 years ago
Stephane Nicoll 5fa71a1f94 Switch test to ApplicationContextRunner 7 years ago
Stephane Nicoll 4180762d6d Polish contribution
Closes gh-12236
7 years ago
igor-suhorukov 56cbc65e7b Polish
See gh-12236
7 years ago
Phillip Webb c23b0e99f1 Fix failing PathRequestTests
Fix test failing due to commit d66496787d.

See gh-12238
7 years ago
Phillip Webb d66496787d Propagate exceptions in security matchers
Update `ApplicationContextRequestMatcher` and
`ApplicationContextServerWebExchangeMatcher` to use a supplier for
the context, rather than the context itself.

This allow exceptions to be propagated to subclasses which may choose
to deal with them.

See gh-12238
7 years ago
Andy Wilkinson dc36360155 Polish 7 years ago
Phillip Webb 3e4da3cc37 Polish 7 years ago
Andy Wilkinson c7ed5c3d4a Upgrade to EhCache 3.5.0
Closes gh-12256
7 years ago
Stephane Nicoll 6676967cc1 Polish 7 years ago
Phillip Webb 29c3be3590 Polish 7 years ago
Stephane Nicoll 306c79f0de Merge branch '1.5.x' 7 years ago
igor-suhorukov 98f4692c62 Polish
This commit changes invocations to immediately return the expression
instead of assigning it to a temporary variable. The method name should
be sufficient for callers to know exactly what will be returned.

Closes gh-12211
7 years ago
Johnny Lim d441a8a89a Polish
Closes gh-12205
7 years ago
Andy Wilkinson 1314678890 Nest @EnableWebFluxSecurity to avoid overzealous Wildfly warnings
Closes gh-12174
7 years ago
Andy Wilkinson 782ab2803e Polish documentation regarding target class proxying
Closes gh-12196
7 years ago
Stephane Nicoll 9b61df6a2b Polish 7 years ago
Stephane Nicoll 13b736b1cd Migrate remaining duration-based properties for Rabbit
Closes gh-12192
7 years ago
Stephane Nicoll 976a23d977 Fix duration unit of spring.messages.cache-duration
Closes gh-12183
7 years ago
Stephane Nicoll 92d1c6126b Harmonize `accesslog.enabled` flag for Undertow
Closes gh-12178
7 years ago
Stephane Nicoll 09ff815f00 Harmonize metadata
Closes gh-12177
7 years ago
Phillip Webb 4b9c3c137e Polish Collection.toArray
Consistently use `StringUtils.toStringArray`, `ClassUtils.toClassArray`
or zero length when converting collections to arrays.

Fixes gh-12160
7 years ago
Phillip Webb cd5266ac03 Polish 7 years ago
Brian Clozel dcf61abe30 Fix Reactive Server auto-configuration ordering
This commit ensures that Tomcat is the first reactive server configured
if the Tomcat dependency is on classpath.

Spring Boot chose Reactor Netty as the default for the reactive web
starter, but the Reactor Netty dependency can be used also for its HTTP
client. In case developers are adding Tomcat, Undertow or Jetty on their
classpath, we must configure those and consider Reactor Netty for the
client only.

Fixes gh-12176
7 years ago
Johnny Lim 2fe86da95b Use isTrue() and isFalse() for AssertJ
Closes gh-12170
7 years ago
Andy Wilkinson e7176c63f5 Stop DataSource initialization from preventing Hikari instrumentation
Closes gh-12129
7 years ago
Phillip Webb 46021928ba Rework common server customization
Update the configurable embedded web server factory interfaces to
extend `ConfigurableWebServerFactory` so that the can be used in a
`WebServerFactoryCustomizer`.

Extract server specific customization to their own auto-configuration
and align reactive/servlet server auto-configuration.

Closes gh-8573
7 years ago
Phillip Webb 05faac2b09 Polish 7 years ago
Andy Wilkinson b5e2c5ec1c Polish 7 years ago
Stephane Nicoll ce01a9145b Polish 7 years ago
Stephane Nicoll 20f104766b Add missing default values for enums 7 years ago
Stephane Nicoll 6f59dd6b17 Polish "Update documentation to reference webjars-locator-core"
Closes gh-12135
7 years ago
Nikola Kološnjaji 4da4a4d385 Update documentation to reference webjars-locator-core
See gh-12135
7 years ago
Stephane Nicoll 44b7673ee6 Polish 7 years ago
Phillip Webb 20109e27be Add ApplicationConversionService and fix binder
Create a new `ApplicationConversionService` similar in design to the
DefaultFormattingConversionService from Spring Framework. The new
conversion service provides a central place for custom conversion logic
supported by Spring Boot.

Also replace the `BindingConversionService` with an internal
`BindConverter` class that now invokes the `SimpleTypeConverter`
directly. Binding for `@ConfigurationProperties` has been updated so
that any custom property editors registered with the BeanFactory can
be used.

Fixes gh-12095
7 years ago
Phillip Webb 61f44179cb Relocate XA wrapper types
Move `XADataSourceWrapper` to `jdb` and `XAConnectionFactoryWrapper` to
`jms` so that they are packaged in a similar way to the underlying XA
types.

Fixes gh-12061
7 years ago
igor-suhorukov fe023817c7 Polish static finals
Closes gh-12083
7 years ago
Johnny Lim 88b184ca23 Polish 7 years ago
Andy Wilkinson da5bebf574 Revert "Use Jersey BOM in dependency management"
This reverts commit da7bf05c87.

Closes gh-12103
7 years ago
Phillip Webb 9e75680e6f Polish 7 years ago
Madhura Bhave 51de220b55 Enable CSRF protection by default
Fixes gh-11758
7 years ago
Brian Clozel 7ed4273fc3 Fix Redis Cache tests after key prefix changes
Update Redis Cache tests after changes in DATAREDIS-715.
7 years ago
Andy Wilkinson fe4c8f95ed Rename ReactiveWebServerAutoConfiguration
Closes gh-12086
7 years ago
Vedran Pavic da7bf05c87 Use Jersey BOM in dependency management
Closes gh-12082
7 years ago
Brian Clozel 0c1aac14a0 Move server.display-name configuration property
The `server.display-name` configuration property is used to configure
the application display name for Servlet-based applications.

This commit moves that property to:
`server.servlet.application-display-name` and keeps the same defaults.

Closes gh-8624
7 years ago
Phillip Webb 6771cc9674 Polish 7 years ago
Brian Clozel 8d22a79eb6 Polish 7 years ago
sdeleuze e399cf6918 Improve WebFlux error logging
This commit avoids printing the stacktrace for ResponseStatusException
in order to be consistent with WebFlux ResponseStatusExceptionHandler
and because this stacktrace is usually not very useful in Reactive
world and mainly pollutes the logs, only the message is logged in that
case.

It also logs a WARN message for Bad Request (400) HTTP responses in
order to have a feedback when an exception is thrown due to client error
(unable to deserialize request body for example).

See related SPR-15083 issue on Spring Framework side.
7 years ago
Stephane Nicoll d468a0714e Polish "Polish modifier order"
Closes gh-12019
7 years ago
Johnny Lim 87bf0b26df Polish modifier order
See gh-12019
7 years ago
Stephane Nicoll 31da4cc35d Polish "Remove redundant casts"
Closes gh-12011
7 years ago
igor-suhorukov 71351de694 Remove redundant casts
See gh-12011
7 years ago
Phillip Webb 74cede5cdc Migrate integration tests to context runner
Migrate `IntegrationAutoConfigurationTests` to use the
`ApplicationContextRunner`.
7 years ago
Phillip Webb f34aa6f4d8 Migrate to Spring Integration Micrometer support
Remove custom `SpringIntegrationMetrics` and instead provide
auto-configuration to the direct Micrometer support added in Spring
Integration 5.0.2.

Closes gh-11985
7 years ago
Phillip Webb 0348889fd7 Polish 7 years ago
Stephane Nicoll ca5ebea24b Polish 7 years ago
Stephane Nicoll 9aa751a949 Make an explicit link to MongoDataAutoConfiguration
Closes gh-12001
7 years ago
Andy Wilkinson 1b156fc2c3 Polish 7 years ago
Andy Wilkinson 6d1d9eb816 Polish 7 years ago
Stephane Nicoll 2f13449b26 Polish "Improve FailureAnalyzer for embedded datasource"
Closes gh-11953
7 years ago
Patryk Kostrzewa e66745a98a Improve FailureAnalyzer for embedded datasource
See gh-11953
7 years ago
Phillip Webb 3ec778fb64 Polish 7 years ago
Stephane Nicoll a97a762086 Only set mapping resources when present
This commit sets a mapping resources list only when there is at least an
element in it. This allows the default fallback of finding an "orm.xml"
file to kick in when no customization has been applied.

Closes gh-11964
7 years ago
Phillip Webb 5de46c3186 Polish 7 years ago
Andy Wilkinson 5522174e96 Provide package info for all packages included in javadoc 7 years ago
Andy Wilkinson a09c64e18c Polish 7 years ago
Andy Wilkinson 76a450dfba Format with Eclipse Oxygen SR2 7 years ago
Madhura Bhave 0a446cb962 Refactor Spring Security auto-configuration classes
The auto-configuration for a `UserDetailsService` and the web bits
has been split into two.

Closes gh-11915
Fixes gh-11891
7 years ago
Andy Wilkinson 9a456924e4 Remove - from path-match and content-negotiation properties
Closes gh-11913
7 years ago
Phillip Webb a631619f63 Allow subpath H2 console matching
Fixes gh-11926
7 years ago
Phillip Webb eab1705351 Restore EmbeddedLdapAutoConfiguration condition
Restore a `@Condition` guard to `EmbeddedLdapAutoConfiguration`.

See gh-11764
7 years ago
Phillip Webb eab0b84a80 Polish 'Add support for multi baseDn;
Update multi baseDn support to use the recently introduced
`@Delimter` annotation

Closes gh-11764
7 years ago
Eddú Meléndez 270dc2cd72 Add support for multi baseDn
Update LDAP properties and auto-configuration to support multiple
base DN values.

See gh-11764
7 years ago
Eddú Meléndez 44ad630de3 Migrate LDAP tests to use ApplicationContextRunner 7 years ago
Lukas Eder 44cd3352a5 Detect jOOQ SQLDialect through jOOQ's JDBCUtils
This change updates SqlDialectLookup to delegate to jOOQ's JDBCUtils
rather than creating an additional mapping between
org.springframework.boot.jdbc.DatabaseDriver and org.jooq.SQLDialect.

This has the following advantages:

1. jOOQ's `SQLDialect` to URL mappings are already maintained by jOOQ,
   so no additional changes will be necessary to Spring Boot in the
   future.
2. Delegating to jOOQ means that the mapping also works for the
   commercial jOOQ distributions, e.g. when working with DB2, Oracle,
   SQL Server, etc., as the JDBCUtils of the commercial distribution
   also contains the relevant logic to map to e.g. `SQLDialect.DB2`,
   `SQLDialect.ORACLE`, `SQLDialect.SQLSERVER` (which are not
   available from the open source distribution linked by Spring Boot
   by default).

Closes gh-11466
7 years ago
Andy Wilkinson 00489c74ea Start building against Spring Data Kay SR4 snapshots
The fix in Spring Data Redis for sentinel configuration means that
two Jedis sentinel tests now attempt to connect to a Sentinel. As a
result the tests fail. Running a Redis Sentinel in a Docker container
appears to be non-trivial. As an alternative, this commit updates the
tests to capture the JedisConnectionFactory prior to its
initialization (which is the failure trigger) and then assert that its
configuration is as expected.

See gh-11884
Closes gh-11855
7 years ago
Andy Wilkinson 9a87424809 Use ApplicationContextRunner in RedisAutoConfigurationJedisTests 7 years ago
Andy Wilkinson 875091ed85 Polish “Remove or use unused method parameters”
Closes gh-11812
7 years ago
igor-suhorukov 717bd2c580 Remove or use unused method parameters 7 years ago
Phillip Webb c3ec316890 Move Application* and *FileWriter classes
Move `ApplicationHome`, `ApplicationPid` and `ApplicationTemp` to the
`system` package. Since `system` package is now much lower level, the
existing `FileWriter` implementations also needed to move to prevent
package tangles.

Fixes gh-8614
7 years ago
Andy Wilkinson 4a1bea1fed Polish 7 years ago
Phillip Webb 7d5e41f7dc Polish 7 years ago
dreis2211 3e84f5bdbe Remove obsolete comment
Closes gh-11874
7 years ago
Johnny Lim 3cead7693d Polish
Closes gh-11871
7 years ago
Madhura Bhave 71e9db012b Convert tests to use ApplicationContextRunner 7 years ago
Madhura Bhave 905666e797 Document usage of `AuthenticationEventPublisher`
Closes gh-11420
7 years ago
Stephane Nicoll 1106c582a7 Remove error-level metadata for Spring Mobile
While Spring Mobile support has been removed from Spring Boot, the
auto-configuration has been relocated to a separate module that uses
the same keys.

Flagging those keys as deprecated means that the IDE will be confused
when the extra jar is present on the classpath as it advertizes, as
it should, support fo them.

Closes gh-11844
7 years ago
Stephane Nicoll 726a1d075e Polish metadata for spring.flyway.sql-migration-suffix 7 years ago
Stephane Nicoll 87c82310cf Merge branch '1.5.x' 7 years ago
Phillip Webb c90a5a9e9e Polish 7 years ago