Commit Graph

2338 Commits

Author SHA1 Message Date
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 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 f3cd0ad22c Polish 2017-01-19 12:44:57 -08:00
Madhura Bhave a5a382b8b1 Set AccessTokenConverter if available
Fixes gh-7091
2017-01-19 11:49:54 -08:00
Stephane Nicoll e5e497ec3a Document `@ImportAutoConfiguration#exclude`
Closes gh-7862
2017-01-19 16:47:07 +01:00
Andy Wilkinson f93d4a0cbf Add explicit aliases for exclude and excludeName on SpringBootApplication
Previously, SpringBootApplication relied on implicity aliasing of
exclude and excludeName that worked because the two attributes have
the same names as the equivalent attributes on
EnableAutoConfiguration.

This commit updates SpringBootApplication to make the aliases explicit
and also adds tests to EnableAutoConfigurationImportSelectorTests to
verify that the aliasing is working as intended.

Closes gh-7951
2017-01-19 12:29:46 +00:00
Stephane Nicoll c41ff17dd7 Provide relevant default values for Enums
This commits adds manual metadata for enums that have a default value
since the annotation processor is not able to detect that yet.

Closes gh-7890
2017-01-19 13:19:13 +01:00
Phillip Webb f42ebe428c Remove JSR-330 configuration annotations
Replace JSR-330 validation annotations from all internal
`@ConfigurationProperties` classes with standard Asserts.

Prior to this commit validation of our own configuration properties
would only occur when the user happens to have compliant JSR-330
implementation on their classpath.

See gh-7579
2017-01-18 20:51:35 -08:00
Phillip Webb 0a6456a748 Always use `prefix` config annotation attribute
Update use of `@ConfigurationProperties` to prefer the more explicit
`prefix` attribute, rather than `value`.

See gh-7579
2017-01-18 20:49:53 -08:00
Phillip Webb 43d432a527 Polish 2017-01-18 20:35:41 -08:00
Kazuki Shimizu 19e117c9cb Use constructor injection in DataSourceInitializer
Closes gh-7973
2017-01-17 16:13:10 +00:00
Kazuki Shimizu bd6ae47d68 Prevent unnecessary debug log message creation
Closes gh-8001
2017-01-17 09:57:15 +01:00
Stephane Nicoll d556e82cf7 Polish contribution
Closes gh-8004
2017-01-17 09:56:05 +01:00
Johnny Lim acc36c076d Polish
See gh-8004
2017-01-17 09:53:50 +01:00
Stephane Nicoll ada441bccc Allow custom override of user info OAuth2RestTemplate
Closes gh-5996
2017-01-16 16:09:32 +01:00
Stephane Nicoll 3e05329fd7 Order internal RepositoryRestConfigurer
This commit provides an order of zero for the RepositoryRestConfigurer
that is used internally to configure the `RepositoryRestConfiguration`. In
practice, an unordered `RepositoryRestConfigurer` will run after ours.

Closes gh-7981
2017-01-16 10:41:44 +01:00
Vedran Pavic 8f6a0e96fd Improve `UserInfoTokenServices` logging
Closes gh-7995
2017-01-16 10:08:28 +01:00
Andy Wilkinson ae3434ba4c Merge branch '1.4.x' into 1.5.x 2017-01-13 18:45:50 -05:00
Andy Wilkinson d2201d5284 Correct copyright dates and enforce that starting year is 2012
Closes gh-7923
2017-01-13 18:43:30 -05:00
Andy Wilkinson 66915a456a Merge branch '1.4.x' into 1.5.x 2017-01-13 07:29:17 -05:00
Andy Wilkinson 6f7d1de167 Remove redundant logic from OAuth2MethodSecurityConfiguration
Previously, OAuth2MethodSecurityConfiguration set the
PermissionEvaluator on the expression evaluator by looking in the
context for a PermissionEvaluator bean. This is unnecessary as
GlobalMethodSecurityConfiguration already does the same thing and does
so after the post-processor in OAuth2MethodSecurityConfiguration has
run. This commit removes the redundant logic and adds tests to check
that both the PermissionEvaluator and the RoleHierarchy are set use
beans in the context.

Closes gh-7979
2017-01-13 07:28:57 -05:00
Stephane Nicoll 5ee12a824f Fix assertion
See gh-7962
2017-01-12 09:09:42 -05:00
Andy Wilkinson 65025d8dab Enable Neo4J's open in view interceptor by default
Closes gh-7943
2017-01-10 17:04:51 -05:00
Stephane Nicoll 4523927e28 Polish 2017-01-06 12:44:32 +01:00
Phillip Webb 10de30ff11 Polish LDAP contribution
See gh-7733
2017-01-05 23:35:43 -08:00
Eddú Meléndez 6a84c369fd Add LDAP auto-configuration support
Add auto-configuration support for spring-ldap and spring-data-ldap.

See gh-2645
See gh-7733
2017-01-05 23:34:50 -08:00
Phillip Webb 565f75438e Polish 2017-01-05 11:04:07 -08:00
Dave Syer fe344df9c5 Change default order of OAuth2 resource server filter chain
The default is now SecurityProperties.ACCESS_OVERRIDE_ORDER-1
(instead of 3), and the user can set it with
security.oauth2.resource.filter-order (as opposed to being hard
coded). The filter is provided by Spring OAuth2 so this change is
a BeanPostProcessor to call a setter on that object.

Fixes gh-5072
2017-01-05 11:58:36 +00:00
Phillip Webb eb22220961 Upgrade to hibernate-validator 5.3.4
Upgrade to `hibernate-validator` 5.3.4 and introduce a new
`MessageInterpolatorFactory` that creates a suitable
`MessageInterpolator` (taking into account missing EL dependencies).

Rework `ConfigurationPropertiesBindingPostProcessor` and
`ValidationAutoConfiguration` to make use of the new factory.

Fixes gh-7598
2017-01-04 18:28:32 -08:00
Stephane Nicoll 0a26a4146b Make `spring.session.store-type` mandatory
This commit removes the automatic enabling of Redis as the Spring Session
store when it is available. This case is covered by a warning in `1.4.x`
that this commit removes as well.

Closes gh-7858
2017-01-04 12:42:04 +01:00
Stephane Nicoll bf7271afa5 Upgrade to Couchbase Cache Client 2.1.0
As of 2.1 cache expiration times are to be set in seconds. This commit
migrates to the new method, yet keeping the milliseconds unit.

Closes gh-7824
2017-01-04 10:46:17 +01:00
Johnny Lim f915ae197a Polish 2017-01-04 09:53:45 +01:00
Phillip Webb 76d5b913cd Polish 2017-01-03 14:43:24 -08:00
Stephane Nicoll fe89af5e82 Polish contribution
Closes gh-7796
2017-01-03 11:33:57 +01:00
Eddú Meléndez 24c83d12da Autodetect spring.jpa.database from spring.datasource.url
Previously, property `spring.jpa.database` should be provided. This
commit allows to detect the database when `spring.datasource.url` is
provided.

Closes gh-7708
2017-01-03 11:24:58 +01:00
Phillip Webb b27f4e23be Ignore @ImportAutoConfiguration exclude errors
Update `ImportAutoConfigurationImportSelector` to ignore excludes for
classes that aren't loaded. Since the import classes for tests tend to
be much more limited, the exception isn't really helpful.

Closes gh-6809
2016-12-30 12:53:59 -08:00
Phillip Webb aacf5d660f Update copyright year for changed files 2016-12-30 11:53:51 -08:00
Phillip Webb 273beaa3ce Polish 2016-12-30 11:10:44 -08:00
Phillip Webb f8acaae115 Merge branch '1.4.x' into 1.5.x 2016-12-30 11:00:06 -08:00
Phillip Webb 9ccf47398e Formatting 2016-12-30 10:56:44 -08:00
Kazuki Shimizu 85503fcbca Polishing log message and comment
Closes gh-7793
2016-12-30 16:04:38 +01:00
Stephane Nicoll a90a73d1ac Merge branch '1.4.x' into 1.5.x 2016-12-30 16:04:00 +01:00
Stephane Nicoll 7b494cf319 Polish
See gh-7793
2016-12-30 15:59:17 +01:00
Stephane Nicoll c230a21a8c Polish CacheManagerCustomizers
Closes gh-7792
2016-12-30 15:16:13 +01:00
Stephane Nicoll 2f3571f173 Defend against lambda transaction customizers
Update `CacheManagerCustomizers` to deal directly with
`ClassCastException` assuming that they are because a customizer is
implemented using a lambda.

Closes gh-7788
2016-12-30 15:16:13 +01:00
Stephane Nicoll 1fa8b1ac91 Defend against lambda transaction customizers
Update `CacheManagerCustomizers` to deal directly with
`ClassCastException` assuming that they are because a customizer is
implemented using a lambda.

Closes gh-7788
2016-12-30 14:19:03 +01:00
Phillip Webb 54aeff47a2 Add exclude support to @ImportAutoConfiguration
Update `@ImportAutoConfiguration` with support for an exclude attribute
that works in a similar way to `@EnableAutoConfiguration`.

Also update existing `@Test...` annotation with exclude attribute
aliases.

Fixes gh-6809
2016-12-30 00:31:30 -08:00
Phillip Webb 3c930347c5 Defend against lambda transaction customizers
Update `TransactionManagerCustomizers` to deal directly with
`ClassCastExceptions` assuming that they are because a customizer is
implemented using a lambda.

See gh-7561
2016-12-29 16:37:13 -08:00
Kazuki Shimizu a7b77e6f9a Remove a nested TransactionProperties
Remove a few nested `TransactionProperties` that should have been
deleted in commit f22744c748.

See gh-7561
Closes gh-7786
2016-12-29 16:19:03 -08:00
Stephane Nicoll 7c25ccb0f3 Merge branch '1.4.x' into 1.5.x 2016-12-29 10:51:41 +01:00
Stephane Nicoll 1f5970c537 Fix auto-configuration class reference
Closes gh-7781
2016-12-29 10:49:19 +01:00
Stephane Nicoll 301b8bc611 Make the dependency to TransactionAutoConfiguration explicit
Closes gh-7773
2016-12-29 10:38:11 +01:00
Stephane Nicoll 4b641ca211 Polish
Closes gh-7561
2016-12-29 10:07:23 +01:00
Phillip Webb f22744c748 Add support for TransactionManagerCustomizers
Add a `TransactionManagerCustomizer` callback interface that can be
used to customize auto-configured `PlatformTransactionManagers`.

Also update `...transaction.*` properties under a single unified
`spring.transaction...` key since the existing auto-configurations
would often share a transaction manager (the technology specific
transaction managers are `@ConditionalOnMissingBean` and may use
a manager created by a previous auto-configuration).

See gh-7561
2016-12-28 20:53:20 -08:00
Phillip Webb 601f7c0a69 Polish 2016-12-28 19:29:05 -08:00
Phillip Webb 8b69856fc9 Polish 2016-12-28 15:23:26 -08:00
Phillip Webb 3af5ae2a26 Polish `ObjectProvider` names
Consistently use the simple name for ObjectProvider parameter and
field names. For example:

  `ObjectProvider<Something> something`

rather than

  `ObjectProvider<Something> somethingProvider`
2016-12-27 15:04:06 -08:00
Phillip Webb e0541d0f74 Polish 2016-12-27 14:48:44 -08:00
Stephane Nicoll b24c8d04ba Allow to customize the auto-configured JestClient
This commit adds a `HttpClientConfigBuilderCustomizer` to further tune
the auto-configured `JestClient`.

Closes gh-7762
2016-12-27 11:12:23 +01:00
Stephane Nicoll a60e356136 Enable Jest's multi-threaded support by default
Since the `JestClient` is auto-configured as a bean, it must have its
multi-threaded support enabled by default. This commit exposes a new
`spring.elasticsearch.jest.multi-threaded` property that is `true` by
default.

Closes gh-6806
2016-12-27 10:46:26 +01:00
Phillip Webb d05357e036 Migrate to Tomcat WebSocket client
Move samples and tests from Jetty websocket client to Tomcat since the
upcoming Jetty release contains a bug in `JsrSession`
(https://github.com/eclipse/jetty.project/issues/1202).

See gh-7599
2016-12-24 11:24:30 -08:00
Spring Buildmaster 9057f9ae1f Next development version 2016-12-23 00:15:23 +00:00
Stephane Nicoll 449043bf21 Polish contribution
Closes gh-6900
2016-12-22 15:39:31 +01:00
Vedran Pavic 65c2d1f5e7 Add support for vendor specific Flyway migration locations
This commit adds support for using `{vendor}` placeholder in
`flyway.locations` configuration property value.

See gh-6900
2016-12-22 14:56:28 +01:00
Stephane Nicoll 62bff1017e Validate that AopAutoConfiguration back off properly
Closes gh-7694
2016-12-22 14:48:54 +01:00
Stephane Nicoll eb294956d8 Allow to customize Cluster.Builder rather than Cluster
Rework cb3d14a so that the customizer operates on the Builder rather than
the Cluster. The former exposes many more options.

See gh-7320
Closes gh-7669
2016-12-22 10:32:54 +01:00
Phillip Webb 982f41b70c Polish @IntegrationComponentScan auto-configuration
See gh-2037
See gh-7718
2016-12-21 22:22:50 -08:00
Artem Bilan a79f71cbe8 Add @IntegrationComponentScan auto-configuration
Update Spring Integration auto-configuration so that
`@IntegrationComponentScan` from `AutoConfigurationPackages` is
implicitly applied. Prior to this commit `@MessagingGateway` interfaces
would only get picked up if `@IntegrationComponentScan` was added
alongside with the `@SpringBootApplication`.

Fixes gh-2037
Closes gh-7718
2016-12-21 20:18:07 -08:00
Phillip Webb b87e02dde0 Polish Spring Integration metrics support
See gh-7722
2016-12-21 20:18:06 -08:00
Artem Bilan d69e43b433 Refactor Spring Integration metrics support
Update Spring Integration metrics support since Spring Integration
`4.3.6`+ no longer needs `spring-integration-jmx` enable
`MessageChannel`, `MessageHandler` and `MessageSource` metrics.

- Add `IntegrationManagementConfiguration` conditional auto-configuration
  to provide `@EnableIntegrationManagement` when JMX is `enabled` or there
  is no `IntegrationManagementConfigurer.MANAGEMENT_CONFIGURER_NAME` bean.
  By default this bean doesn't exist and you explicitly should declare it
  (e.g. via `@EnableIntegrationManagement`) if you would like to collect
  metrics. At the same time Spring Integration enables it when JMX
  management is present (that is a purpose of that new
  `IntegrationManagementConfiguration`)

- Change `SpringIntegrationMetricReader` to read metrics from the
  `IntegrationManagementConfigurer`, not `IntegrationMBeanExporter`

- Change `PublicMetricsAutoConfiguration` to register
  `IntegrationManagementConfigurer.MANAGEMENT_CONFIGURER_NAME` bean if
  not present. Since we are here in `actuator`, therefore we are
  interested in the metrics for SI as well.

- Since we don't need JMX for the metrics any more, remove SI-JMX
  dependency from the `spring-boot-starter-integration`.

- Remove `IntegrationManagementConfiguration` modification from the
  `integrationMbeanExporter()`, since that looks like mutation of an
  external object, when end-user would prefer their own options.
  Therefore we don't need `ObjectProvider<IntegrationManagementConfigurer>`, too

- Add missed `MessageSourceMetrics` gathering for the
  `SpringIntegrationMetricReader`

Closes gh-7722
2016-12-21 20:18:06 -08:00
Artem Bilan 28474aa30a Fix compatibility with Apache Kafka 0.10.1
Update KafkaProperties since  Apache Kafka `0.10.1` changed the type
for the `ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG` from the
`Long` to `Integer`.

Kafka includes the following conversion logic:

    case LONG:
        if (value instanceof Integer)
            return ((Integer) value).longValue();
        if (value instanceof Long)
            return (Long) value;
        else if (value instanceof String)
            return Long.parseLong(trimmed);

So we remain compatible with both `0.10.0` and `0.10.1`

Closes gh-7723
2016-12-21 20:18:04 -08:00
Johnny Lim e12b4a944f Polish 2016-12-21 20:18:04 -08:00
Phillip Webb 8f7efbe12a Polish `spring.redis.url` support
See gh-7395
2016-12-20 21:16:42 -08:00
Marco Aust 90eb58252e Add support for `spring.redis.url` property
Update `RedisAutoConfiguration` to optionally configure Redis using a
`spring.redis.url` property`.

Closes gh-7395
2016-12-20 21:16:42 -08:00
Phillip Webb 38f7389eab Polish loggers 2016-12-20 21:16:40 -08:00
Phillip Webb 1f7b3cad45 Polish Kafka properties
Closes gh-7672
2016-12-20 18:15:11 -08:00
Gary Russell bdda470305 Support arbitrary Kafka properties
Add support for arbitrary Kafka properties via
`spring.kafka.properties.*` and also a `spring.kafka.max.poll.records`
property.

See gh-7672
2016-12-20 18:14:55 -08:00
Phillip Webb 99e72664d9 Polish spring transaction manager properties
Polish and update contribution so that TransactionManager properties can
be defined per technology, rather than globally.

Closes gh-7561
2016-12-20 17:59:19 -08:00
Kazuki Shimizu 80eee6b30f Support spring transaction manager properties
Add Spring TransactionManager properties to allow timeout and rollback
settings to be configured.

See gh-7561
2016-12-20 17:57:17 -08:00
Phillip Webb 3f4c32fcdd Polish 2016-12-20 14:54:04 -08:00
Dave Syer 6ccd858fc0 Fix checkstyle violations 2016-12-20 12:59:51 +00:00
Dave Syer 77a1a3b3c0 Allow user to signal that OAuth2 client is using client_credentials
By configuring security.oauth2.client.grantType=client_credentials the
user signals that (even in a web application) he doesn't want to use
the auth code grant (and hence session and request scoped beans for
client context).
2016-12-20 12:55:45 +00:00
Stephane Nicoll 851ce2286f Allow to override Couchbase's CustomConversions
Closes gh-7700
2016-12-20 11:59:16 +01:00
Phillip Webb 6121208cbb Polish formatting 2016-12-19 12:47:03 -08:00
Phillip Webb 4b9cba351b Merge branch '1.4.x' into 1.5.x 2016-12-19 12:36:57 -08:00
Phillip Webb bd74c3d327 Polish formatting 2016-12-19 12:25:09 -08:00
Stephane Nicoll 9104ea81e8 Expose Validator bean
This commit improves ValidationAutoConfiguration so that a `Validator`
bean is exposed if JSR 303 is available. This has the side effect of
automatically enable Spring Data Couchbase's entity validation rather
than requiring to expose a `Validator` bean.

Closes gh-5178
2016-12-19 14:06:17 +01:00
Andy Wilkinson cedac27c80 Require Bean Validation 1.1 to enable validation auto-configuration
Previously, ValidationAutoConfiguration would configure a
MethodValidationPostProcessor if any Bean Validation 1.0 or later
implementation was available, however the underlying infrastructure
requires Bean Validation 1.1 with any implementation or
Bean Validation 1.0 with Hibernate Validator 4.3.

This caused a problem on TomEE which uses Apache BVal, and Bean
Validation 1.0 implementation. Spring Framework would identify that
Bean Validaton 1.0 was being used and then try to load Hibernate
Validator classes that are not present.

This commit fixes the problem by requiring Bean Validation 1.1 before
auto-configuring a MethodValidationPostProcessor.

Closes gh-7665
2016-12-16 12:17:34 +00:00
Stephane Nicoll d8d5950e99 Enable validation in `AutoConfigureWebMvc`
Closes gh-7582
2016-12-15 16:55:34 +01:00
Andy Wilkinson 149f19cd58 Register any EventListener beans with auto-configured SessionFactory
Closes gh-7531
2016-12-13 12:41:29 +00:00
Stephane Nicoll b80ad2a212 Harmonize Caffeine CacheManager bean name
Closes gh-6980
2016-12-12 11:40:39 +01:00
Madhura Bhave 95be208f0f Use IgnoredRequestCustomizer to ignore paths
Update `SpringBootWebSecurityConfiguration` to ignore requests by
delegating to `IgnoredRequestCustomizer` beans. This allows a single
Spring Boot `WebSecurityConfigurer<WebSecurity>` bean to be used which
prevents potential exceptions caused by duplicate `@Order` values.

Fixes gh-7106
2016-12-05 17:57:18 -08:00
Phillip Webb f6b0652369 Merge branch '1.4.x' into 1.5.x 2016-12-05 11:17:13 -08:00
Madhura Bhave 64da63aa96 Use empty message for Non-Spring Boot Condition
Update `AbstractNestedCondition` to use an empty message for non
Spring Boot nested conditions.

Fixes gh-7519
Closes gh-7529
2016-12-05 11:16:25 -08:00
Phillip Webb e430583eaf Polish 2016-12-05 11:08:38 -08:00
Andy Wilkinson 967625db1e Replace field injection with constructor injection in config classes
Closes gh-7563
2016-12-05 10:48:01 +00:00
Andy Wilkinson 5ac75c949c Increate timeout in Kafka tests as Windows CI agents are very slow 2016-12-05 09:20:43 +00:00
Andy Wilkinson 1464425d64 Remove use of @Component from classes that are not scanned
Closes gh-7549
2016-12-02 17:57:21 +00:00
Andy Wilkinson b60150b05e Make Tomcat Access Log's buffering configurable via the environment
Closes gh-7456
2016-12-02 13:58:26 +00:00
Stephane Nicoll ee72e788ed Rename `spring-boot-junit-runners` to `spring-boot-test-support`
Closes gh-7421
2016-12-01 16:25:47 +01:00
Andy Wilkinson fdccd8aaa7 Remove use of field injection from ErrorMvcAutoConfiguration 2016-12-01 11:51:29 +00:00
Stephane Nicoll cb9e021fa9 Polish 2016-12-01 12:09:41 +01:00
Stephane Nicoll 2c630b5c61 Validate schema and data resources
Previously, if a user specifies a path to a schema or data DDL that does
not exist, the application will start up fine and the missing DDL would
not be reported.

This commit validates that user-defined resources actually exist and
throw a new `ResourceNotFoundException` if they don't.

Closes gh-7088
2016-12-01 11:52:52 +01:00
Mark Paluch 6698cb71c4 Add User-defined type support for Cassandra
Configure `SimpleUserTypeResolver` if a keyspace is set to resolve
User-defined types.

Closes gh-7523
2016-11-30 15:37:55 +01:00
Stephane Nicoll 2f48c50e84 Merge branch '1.4.x' into 1.5.x 2016-11-30 13:50:09 +01:00
Stephane Nicoll e5ca4990d0 Fix bootstrap-hosts property detection with list
Previously, if `spring.couchbase.bootstrap-hosts` was specified in YAML
or with the `[Idx]` notation, the auto-configuration would not kick in.

This is due to a limitation of `@ConditionalOnProperty` on a property of
type Collection. This commit workarounds this limitation for now with a
dedicated condition.

Closes gh-7508
2016-11-30 13:49:44 +01:00
Johnny Lim c654eff41b Update doc for spring.data.neo4j.open-in-view
See gh-7533
2016-11-30 10:42:18 +01:00
Johnny Lim 423f8037ce Polish
Closes gh-7530
2016-11-30 08:31:13 +01:00
Oscar Utbult fabe35fdc4 Remove redundant toString() invocation
Closes gh-7527
2016-11-30 08:23:03 +01:00
Phillip Webb dada7423b0 Polish 2016-11-28 15:40:08 -08:00
Phillip Webb ec73144240 Fix warnings 2016-11-28 15:31:49 -08:00
Phillip Webb 5ed00b3501 Merge branch '1.4.x' into 1.5.x 2016-11-28 15:27:07 -08:00
Phillip Webb 9fdb563d5a Polish 2016-11-28 15:27:01 -08:00
Phillip Webb 357d072a60 Polish 2016-11-28 15:14:46 -08:00
Andy Wilkinson 2be554456e Introduce SearchStrategy.ANCESTORS as a replacement for .PARENTS
Closes gh-6763
2016-11-28 15:41:53 +00:00
Stephane Nicoll 5d876125de Refine validation auto-configuration
Checking for the presence of a `ValidationProvider` resource is
unfortunately not enough to trigger the validation auto-configuration.

If `hibernate-validator` is added on the classpath without a `javax.el`
implementation, the former will blow up on startup. So far this was a
pilot error so we didn't have to care about it. Now that we have an
auto-configuration that may lead to this error, we need to be extra
careful and check that scenario ourselves.

This commit adds an extra condition that runs as late as possible and
attempt to actually initialize a `Validator`. If that fails for whatever
reason, the auto-configuration will now back off.

Several additional tests have been added to exercise this scenario.

Closes gh-6228
2016-11-28 14:29:05 +01:00
Johnny Lim cabb564804 Add ValidationAutoConfiguration to spring.factories
Closes gh-7494
2016-11-28 09:04:36 +01:00
Stephane Nicoll 0befc310cd Add dedicated settings for maxHttpPostSize
This commit deprecates `server.max-http-post-size` and introduces a
dedicated property for each supported  container. In particular, Undertow
can now define a max size higher than 2GB.

Closes gh-7362
2016-11-25 09:54:10 +01:00
Stephane Nicoll 22208f6a9e Auto-configure validation constraints on bean methods
This commit auto-configures `MethodValidationPostProcessor` if necessary
when a JSR-303 validator implementation is detected on the classpath.

Closes gh-6228
2016-11-24 17:40:33 +01:00
Stephane Nicoll 7e25c0dcdd Fix build 2016-11-24 16:46:34 +01:00
Stephane Nicoll 57605b6749 Merge branch '1.4.x' into 1.5.x 2016-11-24 15:53:38 +01:00
Stephane Nicoll 65b6d8f4f7 Handle `NoClassDefFoundError` in `OnBeanCondition`
If `OnBeanCondition` is used with a `String` literal representing the
fully qualified name of a bean and such type does not exist, it
gracefully manages it as if it was not found. Prior to this commit, an
exception would be thrown if any related class such as the parent
class does not exist.

This commit handles this additional case, catching `NoClassDefFoundError`
the same way it did handle `ClassNotFoundException`. That way, a
missing type will now be considered as absent if it's not on the
classpath.

Closes gh-7459
2016-11-24 15:48:56 +01:00
Stephane Nicoll 64a50b60ab Merge branch '1.4.x' into 1.5.x 2016-11-24 10:01:23 +01:00
Stephane Nicoll 5e8ba5cef6 Fix Couchbase condition on Spring Data class
This commit reverts 7e2d0fd so that the Couchbase auto-configuration can
work without Spring Data again. It also removes the `Class` reference to
a Spring Data class to a `String` reference to make sure the condition
operates properly when said class isn't on the classpath.

Closes gh-7453
2016-11-24 09:41:19 +01:00
Stephane Nicoll 64e0899456 Polish customize Cassandra's Cluster
Closes gh-7320
2016-11-23 15:16:49 +01:00
Eddú Meléndez cb3d14a305 Allow to customize Casssandra's Cluster
This commit allows to configure special customizers to be used by
Cluster.

Closes gh-7312
2016-11-23 15:16:49 +01:00
Stephane Nicoll ea023618a4 Polish upgrade to Spring Session 1.3.0.RC1
Closes gh-7457
2016-11-23 14:39:56 +01:00
Vedran Pavic ffec6fddd2 Upgrade Spring Session to 1.3.0.RC1
See gh-7457
2016-11-23 14:39:56 +01:00
Phillip Webb 88c84ce234 Merge branch '1.4.x' into 1.5.x 2016-11-22 14:53:30 -08:00
Phillip Webb b6b8bef009 Polish 2016-11-22 14:51:56 -08:00
Phillip Webb 7e2d0fd1c0 Check for Spring Data before configuring Couchbase
Add guard to `CouchbaseAutoConfiguration` so ensure that Spring Data
Couchbase is on the classpath.

Fixes gh-7453
2016-11-22 14:32:38 -08:00
Grigory Fadeev 1ea829e003 Fix connector used to configure connection timeout
Fix Tomcat customization so that the main connection is configured with
any timeout.

Closes gh-7425
2016-11-22 14:28:57 -08:00
Andy Wilkinson 65d0c07fd6 Polish "Validate excluded autoconfiguration classes"
- Apply code formatting
- Move configuration of excepted exception to immediately before line
  that will throw the exception
- Use String.format with %n to produce platform-specific new lines

See gh-7407
2016-11-22 14:10:37 +00:00
Madhura Bhave a9ffdca6f2 Validate excluded autoconfiguration classes
Closes gh-7407
See gh-6865
2016-11-22 14:02:51 +00:00
Andy Wilkinson ff4bbd9291 Fix javadoc and apply code formatting to Kafka contribution
See gh-6961
2016-11-22 11:34:29 +00:00
Andy Wilkinson 29f0ae3fa8 Use a random port in new tests in SpringBootWebSecurityConfigurationTests
See gh-7373
2016-11-22 11:03:05 +00:00
Stephane Nicoll cc07f56c87 Merge pull request #6961 from garyrussell:kafkaAutoConfig
* pr/6961:
  Polish "Apache Kafka support" contribution
  Add Apache Kafka support
2016-11-22 10:29:01 +01:00
Stephane Nicoll 642af52d01 Polish "Apache Kafka support" contribution
Closes gh-6961
2016-11-22 10:22:00 +01:00
Gary Russell c4188c8e4a Add Apache Kafka support
See gh-6961
2016-11-22 09:34:01 +01:00
Andy Wilkinson 5a9fc9aa49 Merge branch '1.4.x' into 1.5.x 2016-11-21 13:35:22 +00:00
Andy Wilkinson 3464c0b16e Ensure that Hypermedia-related auto-config works without Jackson
Previously, both HypermediaAutoConfiguration and HttpMessageConverters
assumed that if Spring HATEOAS was on the class path, then Jackson
would be too. When this was not the case, an application would fail
to start.

This commit updates both classes to back off appropriately when
Spring HATEOAS is on the classpath but Jackson is not.

Closes gh-7434
2016-11-21 13:25:25 +00:00
Stephane Nicoll 9423b9831c Merge branch '1.4.x' into 1.5.x 2016-11-20 15:52:49 +09:00
Stephane Nicoll 249ed899a6 Fix use of KB and MB in Multipart documentation
Closes gh-7364
2016-11-20 15:51:47 +09:00
Phillip Webb 1657120286 Move ModifiedClassPathRunner to its own module
Migrate `ModifiedClassPathRunner` from `spring-boot` test source to
its own module.

Fixes gh-7420
2016-11-18 17:27:54 -08:00
Phillip Webb 9e18021e8c Merge branch '1.4.x' into 1.5.x 2016-11-18 15:59:05 -08:00
Phillip Webb fce17ca6d9 Polish 2016-11-18 15:50:19 -08:00
Andy Wilkinson 1cd781b242 Make spring-boot-test compatible with Mockito 2.1 and 2.2
We use some internal Mockito classes and some  breaking API changes
have been made to them in Mockito 2. This commit introduces a utility
class, SpringBootMockUtil, to shield our code from these differences.
Mockito 1 is called directly and Mockito 2 is called via reflection.

To allow these changes to be tested, FilteredClassPathRunner has been
enhanced to also support overriding a dependency on the class path.
As a result it has been renamed to ModifiedClassPathRunner. The new
ClassPathOverrides annotation can be used to provide the Maven
coordinates of one or more dependencies that should be resolved and
added to the class path. Such additions are added to the start of
the class path so that they override any existing dependency that
contains the same classes.

Closes gh-6520
2016-11-18 16:39:44 +00:00
Andy Wilkinson af4ca7cf6e Align Spring Data Neo4j auto-configuration with latest Ingalls snapshots
Closes gh-7391
2016-11-18 11:22:39 +00:00
Stephane Nicoll 2ba3b27954 Merge branch '1.4.x' into 1.5.x
# Conflicts:
#	spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java
#	spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc
2016-11-18 11:56:22 +09:00