Juergen Hoeller
a9c9ba6601
Generic matching for ObjectProvider stream and empty vararg resolution
...
Issue: SPR-11419
Issue: SPR-15338
2018-07-24 13:03:54 +02:00
Juergen Hoeller
5f51e86185
Avoid relying on runtime constructor order for argument conversion
2018-07-24 01:04:47 +02:00
Juergen Hoeller
1603c4ab2f
Programmatic ObjectProvider retrieval through BeanFactory API
...
Introduces getBeanProvider(Class) and getBeanProvider(ResolvableType), also narrowing getBean(String, Class) and isTypeMatch(String, Class) to a non-null Class argument and enriching NoUniqueBeanDefinitionException with a full ResolvableType. In addition, ObjectProvider supports iterable/stream access for collection-style resolution of multiple matching beans now, and collection injection falls back to an empty collection in a single-constructor case with non-null arguments.
Issue: SPR-17075
Issue: SPR-11419
Issue: SPR-15338
2018-07-24 00:42:03 +02:00
Sebastien Deleuze
f8f8d28f08
Support running Kotlin apps without kotlin-reflect
...
This commit includes an optimization of BeansUtils#instantiateClass
that favors Java reflection for default constructors before leveraging
Kotlin one for finding primary constructors and avoids Kotlin related
conditions when running in Java.
Issue: SPR-17069
2018-07-23 09:54:48 +02:00
Juergen Hoeller
f58854f4b9
Locally cache factory method candidates per factory class
...
Issue: SPR-17071
2018-07-22 19:22:20 +02:00
Juergen Hoeller
13873dafb7
Polishing
2018-07-22 17:55:31 +02:00
Juergen Hoeller
cfbacfd89b
Revise ResolvableType.as for introspection performance
...
This revision limits serializability of derived interfaces, superclasses and type parameters, optimizing for introspection performance instead.
Issue: SPR-17070
2018-07-22 17:49:53 +02:00
stsypanov
5051850fa9
SPR-17074 Replace iteration over Map::ketSet with Map::entrySet
2018-07-21 13:12:43 +02:00
Juergen Hoeller
9a43d2ec20
Revised log levels: less WARN and INFO, fine-tuned DEBUG vs TRACE
...
Issue: SPR-16946
2018-07-20 15:05:16 +02:00
Juergen Hoeller
09920d9b01
Raise testPrototypeCreationWithPropertiesIsFastEnough limit to 4000 ms
2018-07-19 17:51:54 +02:00
Juergen Hoeller
52d124de6f
Use supplier-aligned type information for FactoryBean type resolution
...
Issue: SPR-17063
2018-07-19 13:14:20 +02:00
Juergen Hoeller
9c08a482d1
Prefer ArrayList/ArrayDeque over LinkedList for multi-element holders
...
LinkedList remains in place where a List is likely to remain empty or single-element (in order to avoid unused capacity).
Issue: SPR-17037
2018-07-18 22:17:42 +02:00
Juergen Hoeller
28f7b26294
Null-returning instance supplier resolves to NullBean
...
Issue: SPR-17057
2018-07-18 15:26:06 +02:00
Juergen Hoeller
77d72f1e01
Injected Map/Collection does not include null bean entries
...
Issue: SPR-17034
2018-07-16 13:04:38 +02:00
Juergen Hoeller
680afa75d8
ListableBeanFactory.getBeansOfType does not include null bean entries
...
Issue: SPR-17034
2018-07-14 01:02:39 +02:00
Juergen Hoeller
3a4b5c2ade
RootBeanDefinition publicly exposes target type as ResolvableType
...
Issue: SPR-17028
2018-07-10 19:28:12 +02:00
Juergen Hoeller
2cd006923c
Polishing
2018-07-06 14:38:29 +02:00
Juergen Hoeller
b4fc7943e1
Make javax.inject.Provider impl invisible for nested class introspection
...
Issue: SPR-17014
2018-07-06 13:20:03 +02:00
Juergen Hoeller
d8c7270c00
Consistent Iterator/Stream support in PropertySources and PropertyValues
...
Issue: SPR-16894
2018-07-05 23:59:56 +02:00
Juergen Hoeller
182243d20d
BeanDefinitionOverrideException in case of overriding not allowed
...
Issue: SPR-16982
2018-07-04 21:32:51 +02:00
Juergen Hoeller
63d6215247
Polishing
2018-07-04 19:23:27 +02:00
Juergen Hoeller
2fe3c36cc2
Polishing
2018-07-03 17:54:43 +02:00
Juergen Hoeller
f2787cfb35
Same method filtering in ConstructorResolver and getTypeForFactoryMethod
...
Issue: SPR-16999
2018-07-03 15:53:17 +02:00
Juergen Hoeller
e5a6711d29
Consistent final declaration for static delegate classes
...
Issue: SPR-16968
2018-07-02 13:55:18 +02:00
Juergen Hoeller
4ff1e3e74b
Consistent abstract declaration for utility classes (plus polishing)
...
Issue: SPR-16968
2018-07-01 02:31:20 +02:00
Juergen Hoeller
d34e6f7f70
Polishing
2018-06-28 18:02:07 +02:00
Juergen Hoeller
8ad5299f4a
Polishing
2018-06-28 17:12:29 +02:00
Juergen Hoeller
40efcc933c
Polishing
2018-06-28 14:51:33 +02:00
Juergen Hoeller
bf5fe46fa9
CachedIntrospectionResults completely traverses interface hierarchy
...
Issue: SPR-16978
2018-06-28 14:15:16 +02:00
Juergen Hoeller
81cb740e0a
New postProcessProperties variant on InstantiationAwareBeanPostProcessor
...
Allows for skipping the now-deprecated postProcessPropertyValues callback with its expensive PropertyDescriptor retrieval requirement. RequiredAnnotationBeanPostProcessor (which is dependent on postProcessPropertyValues) and the @Required annotation itself are also deprecated now: in favor of constructor injection (or afterPropertiesSet).
Issue: SPR-16918
2018-06-28 14:15:16 +02:00
Phillip Webb
a89e716cc7
Use tabs rather than spaces in tests
...
Update tests to ensure that tabs are used instead of spaces. Also
consistently apply a new line at the end of each file.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
5cedd0d5d4
Consistently use tabs rather than spaces
...
Update code that has accidentally used spaces instead of tabs.
Also remove all trailing whitespace.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
634f5c2792
Ensure when equals() is implemented so is hashCode()
...
Update classes that override `equals()` to ensure that they also
implement `hashCode()`.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
9de3689f63
Never use 'this.' when accessing loggers
...
Ensure that `this.` is never used when accessing loggers.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
0b53c1096a
Always use 'this.' when accessing fields
...
Ensure that `this.` is used consistently when accessing class
fields.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
eeebd51f57
Use consistent class design
...
Update all classes so that inner classes are always last. Also
ensure that utility classes are always final and have a private
constructor and make exceptions final whenever possible.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
8f9aa06dfe
Polishing AbstractBeanDefinition.equals
2018-06-28 10:28:44 +02:00
Phillip Webb
866e9d702e
Use consistent block style
...
Update all code to use a consistent block style.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
04a8c285df
Fix annotation styling issues
...
Update all annotations so that each is on its own line and
consistently use the short form (i.e. don't use `value=`) when
possible.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e0480f75ac
Fix javadoc checkstyle issues
...
Fix checkstyle violations for javadoc.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Sam Brannen
cafb5033e2
Polishing
2018-06-19 13:50:13 +03:00
Juergen Hoeller
51091f2242
Suppress deprecation warning in DefaultBeanDefinitionDocumentReader
...
Issue: SPR-12458
2018-06-15 22:09:23 +02:00
Juergen Hoeller
0777a80efe
Polishing
...
(cherry picked from commit a2765c0 )
2018-06-11 19:17:57 +02:00
Juergen Hoeller
7ece0e219e
Correct code example for YamlProcessor.setDocumentMatchers
...
Issue: SPR-16849
2018-06-06 21:27:00 +02:00
Juergen Hoeller
74fcdea2d9
SimpleAliasRegistry logs info message for alias overriding
...
Issue: SPR-16871
2018-05-29 21:51:33 +02:00
Juergen Hoeller
46a89d9534
Restore lenient null return value for ConditionContext.getBeanFactory()
...
Includes nullable return value for getClassLoader() with corresponding notes in applicable javadoc.
Issue: SPR-16866
2018-05-29 21:51:06 +02:00
Juergen Hoeller
138b0d0bbd
YamlProcessor embraces SnakeYAML 1.18+ duplicate key handling
...
Includes removal of StrictMapAppenderConstructor for compatibility with SnakeYAML 1.21.
Issue: SPR-16791
2018-05-05 12:47:11 +02:00
Juergen Hoeller
9281f820f1
Expose FactoryBean's raw object on retrieval during post-processing
...
Issue: SPR-16783
2018-05-02 15:21:40 +02:00
Stephane Nicoll
e51330e905
Keep YAML entries that haven an empty array value
...
Prior to this commit, a YAML entry that define an empty array value was
lost. This commit makes sure to flag it with an empty String, which
corresponds as an empty comma separated list of entries in the
properties format.
Issue: SPR-16769
2018-04-29 10:30:08 +02:00
Dimitrios (Dimi) Liapis
6d6da91ab9
Fix typo
...
See gh-1803
2018-04-21 18:16:13 +02:00