Commit Graph

11407 Commits

Author SHA1 Message Date
Juergen Hoeller 0dd320f92e Support for BCP 47 language tags
Issue: SPR-13032
2015-12-21 18:40:26 +01:00
Juergen Hoeller cad2ce0ac2 ConstructorResolver always uses arguments when completely provided
Issue: SPR-13808
2015-12-21 15:11:40 +01:00
Juergen Hoeller 09cea6e6bb Refined Future exception handling
Issue: SPR-13732
2015-12-21 15:09:09 +01:00
Stephane Nicoll d59b0d12d4 Merge pull request #939 from sniewczas/patch-1
* pr/939:
  Fix markup in reference section 9.4.2
2015-12-21 14:55:45 +01:00
Sylwester Niewczas adf744cce0 Fix markup in reference section 9.4.2
Closes gh-939
2015-12-21 14:55:14 +01:00
Stephane Nicoll 1fc3fc8bf7 Update documentation
Issue: SPR-13471
2015-12-21 14:47:50 +01:00
Stephane Nicoll edd8e2d56d Update documentation
Issue: SPR-12278
2015-12-21 14:23:14 +01:00
Stephane Nicoll 19d97c4253 Support for multi-threaded cache access
Previously, if a `@Cacheable` method was accessed with the same key by
multiple threads, the underlying method was invoked several times instead
of blocking the threads while the value is computed. This scenario
typically affects users that enable caching to avoid calling a costly
method too often. When said method can be invoked by an arbitrary number
of clients on startup, caching has close to no effect.

This commit adds a new method on `Cache` that implements the read-through
pattern:

```
<T> T get(Object key, Callable<T> valueLoader);
```

If an entry for a given key is not found, the specified `Callable` is
invoked to "load" the value and cache it before returning it to the
caller. Because the entire operation is managed by the underlying cache
provider, it is much more easier to guarantee that the loader (e.g. the
annotated method) will be called only once in case of concurrent access.

A new `sync` attribute to the `@Cacheable` annotation has been addded.
When this flag is enabled, the caching abstraction invokes the new
`Cache` method define above. This new mode bring a set of limitations:

* It can't be combined with other cache operations
* Only one `@Cacheable` operation can be specified
* Only one cache is allowed
* `condition` and `unless` attribute are not supported

The rationale behind those limitations is that the underlying Cache is
taking care of the actual caching operation so we can't really apply
any SpEL or multiple caches handling there.

Issue: SPR-9254
2015-12-21 13:34:35 +01:00
Stephane Nicoll 15c7dcd11a Upgrade Caffeine to 2.0.3 2015-12-20 13:06:11 +01:00
Sam Brannen 66562f2589 Require JUnit 4.12 or higher in the TestContext framework
Issue: SPR-13275
2015-12-19 18:43:59 +01:00
Juergen Hoeller db1171d5c4 Background bootstrapping via "bootstrapExecutor" for LocalContainerEntityManagerFactoryBean and LocalSessionFactoryBean/Builder
Issue: SPR-13732
2015-12-19 15:13:46 +01:00
Juergen Hoeller 64bd8b7f34 Polishing 2015-12-18 22:19:03 +01:00
Juergen Hoeller 387c8a8181 Differentiate between TypeDescriptors with same annotations but different attributes
Issue: SPR-13714
2015-12-18 22:10:50 +01:00
Juergen Hoeller 06056e6aa6 Upgrade to JavaMail 1.5.5 and Hibernate ORM 5.0.6 2015-12-18 17:49:15 +01:00
Juergen Hoeller 2e6eb614b5 Avoid scoped destruction callbacks in case of no post-processor actually applying
Issue: SPR-13744
2015-12-18 17:14:57 +01:00
Juergen Hoeller fca5365cf1 Avoid scoped destruction callbacks in case of no post-processor actually applying
Issue: SPR-13744
2015-12-18 16:54:05 +01:00
Stephane Nicoll 1502e49fa5 Merge pull request #921 from ben-manes/caffeine
* pr/921:
  Polish contribution
  Add caching support for Caffeine
  Detect @Autowired constructors for configuration classes
2015-12-18 15:47:33 +01:00
Stephane Nicoll 3a238a2b61 Polish contribution
Closes gh-921

Issue: SPR-13690
2015-12-18 15:47:13 +01:00
Ben Manes 13aabeef37 Add caching support for Caffeine
Issue: SPR-13690
2015-12-18 15:47:13 +01:00
Juergen Hoeller 967ef73765 Detect @Autowired constructors for configuration classes
Issue: SPR-13471
2015-12-18 15:31:31 +01:00
Stephane Nicoll 9e7c791a0f Automatically autowire a bean with one constructor
Previously, if a managed bean had only one non-default constructor, we
should still annotate it with `@Autowired` to properly use constructor
injection. Not doing so resulted in an error as the container was
trying to call the default (non-existing) constructor.

This commit updates this behaviour to automatically applyed the
autowiring semantic to any bean that has only one constructor. As
before, if more than one constructor is defined, `@Autowired` must be
specified to teach the container the constructor it has to use.

Issue: SPR-12278
2015-12-18 14:04:18 +01:00
Juergen Hoeller 3d87718fc6 DispatcherServlet and ServletWrapping/ForwardingController accept any HTTP method by default
Issue: SPR-4799
2015-12-18 12:57:18 +01:00
Juergen Hoeller 08748ecaa4 PathMatchingResourcePatternResolver evaluates classpath manifest entries as well
Issue: SPR-13685
2015-12-18 12:17:57 +01:00
Juergen Hoeller 2cfe00ce32 Updated reference documentation from Hibernate 3 to Hibernate 5
Issue: SPR-13230
2015-12-18 00:27:19 +01:00
Juergen Hoeller 0084c077bb Aligned import order 2015-12-18 00:19:40 +01:00
Juergen Hoeller 760668c034 Polishing 2015-12-18 00:09:39 +01:00
Sam Brannen 5b3edcd9f9 Spring Cleaning in December
- Delete unused imports
- Delete unused code
- Clean up warnings
2015-12-17 20:27:33 +01:00
Juergen Hoeller 0e68d2e951 Explicit references to spring-mvc-4.2.xsd for Velocity declarations
Issue: SPR-13235
2015-12-17 18:30:11 +01:00
Sam Brannen 9eb713ae2c Mention DCBeforeModesTEL in TestExecutionListener Javadoc 2015-12-17 17:45:08 +01:00
Juergen Hoeller b75f5faf88 Remove Tiles 2 support
Issue: SPR-13229
2015-12-17 17:18:21 +01:00
Juergen Hoeller e90942223f Deprecate Hibernate 3 support
Issue: SPR-13230
2015-12-17 17:17:05 +01:00
Juergen Hoeller a2a9c47e59 Deprecate Velocity support
Issue: SPR-13235
2015-12-17 17:15:57 +01:00
Juergen Hoeller 8ce5e88c66 Require Jackson 2.6+, FreeMarker 2.3.21+, XStream 1.4.5+
Issue: SPR-13062
2015-12-17 17:14:50 +01:00
Juergen Hoeller db05f43a75 Require JsonPath 1.1+
Issue: SPR-13729
2015-12-17 17:13:27 +01:00
Juergen Hoeller 2fd48c92d7 Correct spring-websocket-4.2 versus spring-websocket-4.1 xsd declarations
Issue: SPR-13804
2015-12-17 17:11:44 +01:00
Sam Brannen 93de3553c1 Polish Javadoc in @Cache* annotations 2015-12-17 17:05:33 +01:00
Stephane Nicoll 752d3c715a Initiate structure for 4.3 XSDs 2015-12-17 15:43:23 +01:00
Spring Buildmaster 07022eae1e Next Development Version 2015-12-17 01:12:29 -08:00
Juergen Hoeller 935c0a463e Revised MockMvcResultHandlers logger initialization
Issue: SPR-13802
2015-12-16 21:49:48 +01:00
Juergen Hoeller 62caa3c3b8 Upgrade to OkHttp 2.7 and TestNG 6.9.10 2015-12-16 21:02:37 +01:00
Juergen Hoeller 753347ea98 Consistent static final logger declarations 2015-12-16 20:44:00 +01:00
Juergen Hoeller 997278e3ed Polishing 2015-12-16 20:19:41 +01:00
Rossen Stoyanchev c8aa48faa9 Add params(MultiValueMap) to MockMvc
Issue: SPR-13801
2015-12-16 11:51:59 -05:00
Juergen Hoeller 5626384812 Consistent trace log messages and general polishing 2015-12-16 15:59:02 +01:00
Brian Clozel 3be35c053d Use LinkedHashmap to preserve insert order
In several places in the spring-webmvc module, URL patterns / objects
relationships are kept in `HashMap`s. When matching with actual URLs,
the algorithm uses a pattern comparator to sort the matching patterns
and select the most specific. But the underlying collection
implementation does not keep the original order which can lead to
inconsistencies.

This commit changes the underlying collection implementation to
`LinkedHashmap`s, in order to keep the insert order if the comparator
does not reorder entries.

Issue: SPR-13798
2015-12-16 15:24:35 +01:00
Juergen Hoeller 5d454d5ea7 Polishing 2015-12-15 15:59:30 +01:00
Juergen Hoeller 9e03e0e73d Polishing 2015-12-15 11:53:40 +01:00
Juergen Hoeller b880b4a545 Upgrade to Castor 1.4 2015-12-15 11:53:28 +01:00
Rossen Stoyanchev 457fca40f0 Update CONTRIBUTING.md 2015-12-14 14:07:13 -05:00
Rossen Stoyanchev b21e64448b Update CONTRIBUTING.md 2015-12-14 11:11:31 -05:00