Stephane Nicoll
859e1e8003
Check for duplicate keys in YAML map nodes
...
Snake YAML allows for duplicate keys in map nodes. See
https://code.google.com/p/snakeyaml/issues/detail?id=199
This commit uses a dedicated Constructor extension that explicitly
checks for such duplicate keys.
Issue: SPR-12318
2014-10-14 15:58:35 +02:00
Juergen Hoeller
9d832816a8
Further locking optimizations for the retrieval of non-singleton beans
...
Issue: SPR-12250
2014-10-06 17:42:51 +02:00
Juergen Hoeller
f46c706e44
Bean method metadata exposed through AnnotatedBeanDefinition
...
Issue: SPR-12232
2014-09-26 14:46:09 +02:00
Juergen Hoeller
cfc821d179
DataBinder unwraps Optional objects and allows for proper handling of Optional.empty()
...
Issue: SPR-12241
2014-09-25 17:00:36 +02:00
Juergen Hoeller
070642c148
Introduced addScope convenience method on CustomScopeConfigurer (for use in WebSocket configuration)
2014-09-25 01:31:33 +02:00
Juergen Hoeller
5ecdd8ca31
Consistent Environment access in XML bean definition parsing code
...
Issue: SPR-12248
2014-09-25 01:02:40 +02:00
Juergen Hoeller
0934751d7a
BeanWrapper supports traversal of nested paths with Java 8 Optional declarations
...
Issue: SPR-12241
2014-09-24 17:56:24 +02:00
Juergen Hoeller
354c3e03e9
Refined exclusion of bridge methods in annotation post-processors (for Java 8 compatibility)
...
Issue: SPR-12187
(cherry picked from commit 29abca5 )
2014-09-19 00:52:44 +02:00
Juergen Hoeller
f4219ca06b
Consistent exclusion of bridge methods in annotation post-processors (for Java 8 compatibility)
...
Issue: SPR-12187
2014-09-18 23:45:42 +02:00
Juergen Hoeller
0cf472b111
BeanDefinitionParserDelegate does not silently ignore 1.x 'singleton' attribute
...
Issue: SPR-12167
2014-09-17 13:26:37 +02:00
Juergen Hoeller
80cec011b7
Log warning for single optional constructor when no default constructor to fall back to
...
Issue: SPR-12161
2014-09-17 13:02:11 +02:00
Juergen Hoeller
d1c720c07b
GenericTypeAwarePropertyDescriptor implements equals/hashCode for proper lookups on IBM JVM 6
...
Issue: SPR-12185
2014-09-17 00:03:30 +02:00
Juergen Hoeller
5cd59d044e
GenericTypeAwarePropertyDescriptor implements equals/hashCode for proper lookups on IBM JVM 6
...
Issue: SPR-12185
2014-09-16 23:40:10 +02:00
Juergen Hoeller
7387475deb
Polishing
2014-09-12 23:49:14 +02:00
Juergen Hoeller
c52484ed68
CachedIntrospectionResults uses ConcurrentReferenceHashMap for its type descriptor cache
...
Issue: SPR-12185
2014-09-12 19:47:52 +02:00
Juergen Hoeller
20c2ba35dc
Polishing
2014-09-04 00:55:38 +02:00
Juergen Hoeller
c6d29f1a31
Refactored support for @Order on @Bean methods as well as @Priority handling
...
Issue: SPR-11310
Issue: SPR-10548
2014-09-04 00:41:13 +02:00
Juergen Hoeller
4432c41dbd
AbstractAutowireCapableBeanFactory avoids early FactoryBean instantiation on currently created configuration bean
...
Issue: SPR-12141
2014-09-03 00:28:05 +02:00
Juergen Hoeller
cfd01ab100
ExtendedBeanInfo uses explicit hashCode calculation (as defensive measure against JDK PropertyDescriptor changes)
2014-09-02 22:15:33 +02:00
Juergen Hoeller
8c9274e017
LazyInitTargetSource works for @Bean targets as well
...
Issue: SPR-10508
Issue: SPR-8080
2014-09-02 22:13:35 +02:00
Juergen Hoeller
b64f680f19
AbstractAutowireCapableBeanFactory calls postProcessBeforeInstantiation with fully resolved target type
...
Issue: SPR-12140
Issue: SPR-12142
2014-09-02 22:10:09 +02:00
Juergen Hoeller
60e58a2012
Polishing
2014-08-21 14:29:14 +02:00
Juergen Hoeller
8eac87064d
AbstractAutowireCapableBeanFactory avoids synchronization in filterPropertyDescriptorsForDependencyCheck
...
Issue: SPR-12106
2014-08-21 14:26:17 +02:00
Juergen Hoeller
662d8aa9f1
util:properties supports multiple resource locations and ignore-resource-not-found
...
Issue: SPR-10614
2014-08-20 16:31:54 +02:00
Juergen Hoeller
e48c315ad1
DefaultSingletonBeanRegistry performs non-synchronized checks for existing entries in dependentBeanMap and containedBeanMap
...
Also adding alias resolution to isDependent's algorithm (for circular dependency detection).
Issue: SPR-8834
Issue: SPR-7966
2014-08-20 12:02:16 +02:00
Juergen Hoeller
9d3d6d5919
DefaultListableBeanFactory defensively handles BeanDefinition access in getBean(Class)
...
Issue: SPR-10542
2014-08-20 10:48:35 +02:00
Juergen Hoeller
af6ef5f74c
Use ConcurrentMap declarations when calling putIfAbsent (for compatibility with JDK 6 and 7)
...
Issue: SPR-12102
2014-08-19 23:28:42 +02:00
Juergen Hoeller
781a6d289e
CachedIntrospectionResults uses putIfAbsent where possible (for minimal write locking)
...
Issue: SPR-12102
2014-08-19 22:50:54 +02:00
Juergen Hoeller
b3add794d7
Polishing
2014-08-15 00:55:40 +02:00
Juergen Hoeller
69587f3fa4
Polishing
2014-08-14 23:49:29 +02:00
Juergen Hoeller
eb0ab8431b
Lookup methods can support arguments, find a target bean based on the return type, and be identified by an @Lookup annotation
...
Issue: SPR-7431
Issue: SPR-5192
2014-08-14 23:49:05 +02:00
Juergen Hoeller
fd5dbddac4
BeanFactory supports bean creation arguments for by-type lookup as well
...
Issue: SPR-11235
2014-08-12 22:07:12 +02:00
Juergen Hoeller
ad475ffadf
Consistent vararg declarations for String array setters
2014-08-08 17:17:09 +02:00
Juergen Hoeller
fe05e7e5b3
Self reference detection defensively handles null bean names
...
Issue: SPR-12018
2014-07-24 12:56:10 +02:00
Juergen Hoeller
496492b2d8
Autowiring rejects self references to a factory method on the same bean as well
...
Issue: SPR-12018
2014-07-24 12:13:25 +02:00
Stephane Nicoll
e849bc3e90
Fix potential NPE
...
This commit fixes a potential NPE when determining the priority of a
bean instance in case multiple candidates exist and no bean was marked
as @Primary
Issue: SPR-12024
2014-07-23 18:51:09 +02:00
Juergen Hoeller
9d6c38bd54
Consistent bracket alignment
2014-07-18 17:21:58 +02:00
Juergen Hoeller
2665d56209
Polishing
2014-07-15 15:13:35 +02:00
Juergen Hoeller
a4968b9015
DefaultListableBeanFactory's registerBeanDefinition only calls resetBeanDefinition in case of pre-existing bean definition or pre-existing singleton instance
...
Issue: SPR-8318
2014-07-15 15:05:13 +02:00
Juergen Hoeller
2bd6e24b65
MBeanExporter implements newly introduced SmartInitializingSingleton callback interface
...
Issue: SPR-8045
2014-07-10 15:48:36 +02:00
Juergen Hoeller
a6a86b8025
DefaultBeanDefinitionDocumentReader evaluates profile attribute only in beans namespace
...
Issue: SPR-11975
2014-07-09 21:17:43 +02:00
Stephane Nicoll
b78b2e9a03
Fix priority semantic
...
Commit 5fe8f52 introduced a support for @Priority as an alternative to
@Primary but it broke the semantic of the priority value. This commit
fixes this inconsistency.
As for @Order, the lowest value means the highest priority so if
several beans are candidates for injection, the one having the lowest
value will be used.
Issue: SPR-10548
2014-07-08 10:26:03 +02:00
Juergen Hoeller
01264dc673
Polishing
2014-07-08 00:59:31 +02:00
Juergen Hoeller
6c41cc354c
ConstructorResolver's exception message on null factory-bean hints at potential BeanPostProcessor involvement
...
Issue: SPR-11951
2014-07-04 22:30:19 +02:00
Juergen Hoeller
d870b382da
Defensively check for pre-resolved FactoryBean.getObject() results in circular reference scenarios
...
Issue: SPR-11937
2014-07-01 23:50:17 +02:00
Juergen Hoeller
b7984f21d8
Polishing
2014-07-01 20:30:31 +02:00
Juergen Hoeller
f8b6114440
BeanFactoryAnnotationUtils consistently applies bean name fallback when no BeanDefinition present
...
Issue: SPR-11915
2014-07-01 16:29:40 +02:00
Juergen Hoeller
974bd43f28
AbstractAutowireCapableBeanFactory's createBean/autowireBean/configureBean use CacheUtils.isCacheSafe to re-enable PropertyDescriptor caching
...
Issue: SPR-11875
2014-06-30 00:58:44 +02:00
Juergen Hoeller
fab67b0595
CachedIntrospectionResults and co consistently avoid synchronization (through use of ConcurrentReferenceHashMap)
...
As a side effect, through ConcurrentReferenceHashMap, we're using soft references for non-cache-safe bean classes.
Issue: SPR-11867
2014-06-30 00:16:15 +02:00
Stephane Nicoll
8221c9abc5
Support for nested path using field access
...
This commit adds a nested path support for DirectFieldAccessor that is
similar to what BeanWrapper provides. It is now possible to use
expressions such as "person.address.city.name" to access the name of
the city that a given person lives in using fields to traverse the
graph.
DirectFieldAccessor also now supports an auto-grow option to create
a default instance for a "null" intermediate path. This option is
false by default and leads to a NullValueInNestedPathException in such
a case.
This commit also harmonizes part of the tests suite so that core tests
are shared between BeanWrapperImpl and DirectFieldAccessor.
Note that map and list access is not implemented as part of this
commit.
Issue: SPR-9705
2014-06-26 19:22:02 +02:00