Xavier Dury created DELTASPIKE-1295:
---------------------------------------
Summary: Make @ConfigProperty.converter optional when there is
only one possible converter for the considered injected type
Key: DELTASPIKE-1295
URL: https://issues.apache.org/jira/browse/DELTASPIKE-1295
Project: DeltaSpike
Issue Type: Improvement
Components: Configuration
Affects Versions: 1.8.0
Reporter: Xavier Dury
Priority: Minor
Currently, {{@ConfigProperty}} can be used to inject members of types
{{String}}, {{Boolean}}, {{Class}}, {{Integer}}, {{Long}}, {{Float}} and
{{Double}}.
Other types can be injected as well if a {{ConfigResolver.Converter<T>}} class
is given in the annotation ({{@ConfigProperty(name = "...", converter =
MyTypeConverter.class)}}).
The actual instance of the converter will be resolved through the
{{BeanManager}}.
If there exists only one converter for the target type, it should be possible
to resolve the instance to be used with {{beanManager.resolveBean(new
ParameterizedTypeImpl(Converter.class, targetType))}}.
So you would only need to specify the {{ConfigProperty.converter}} attribute:
* if the field type does not directly match the parameter T in your
{{Converter<T>}} or
* if there are more than one eligible converter for that type.
The logic should be changed to: is a converter specified in the annotation? (!=
default value)
* yes: proceed with that converter
* no: is the target type one of the default supported types?
** yes: proceed without converter
** no: try to resolve the possible unique resolver for that type and use that
converter, throw an exception if there are multiple converters for that type
What do you think?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)