Holly Cummins created ARIES-874:
-----------------------------------
Summary: Blueprint should treat "value-type" on a map as a
default, not a requirement
Key: ARIES-874
URL: https://issues.apache.org/jira/browse/ARIES-874
Project: Aries
Issue Type: Bug
Components: Blueprint
Affects Versions: blueprint-0.4.0
Reporter: Holly Cummins
Assignee: Holly Cummins
Priority: Minor
We have six failures in the OSGi blueprint compliance tests with errors similar
to the following:
"Unable to convert value 1.0 to type java.lang.Boolean"
I've done a bit of digging and the problem happens when a <map> in a
blueprint.xml specifies a value-type. Since ARIES-703, the MapRecipe converts
every value in the collection to the value-type. However, the specification
describes the value-type as follows: "Optional default type for values." That
is, the value-type is only a default, and individual entries in the map can
override the type.
We're seeing failures because we're trying to convert values which are declared
as double to the default type for the map, boolean.
I've updated MapRecipe to check if there is a value specified on the type, and
use that for the conversion where possible. What I ended up with is fairly
similar to what CollectionRecipe already does, reassuringly. I've also done the
same thing for key-types. Finally, our tests for constructing maps were
commented out, so I've re-enabled them and added some extra ones to test these
more complex scenarios.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira