Raymond Feng wrote:
Hi,
I'm reviewing our support for autowiring and found out there is an
issue with our Composite/Component/ComponentReference models.
By the assembly spec, there is difference between the following two
cases:
a) <component name="C1">
b) <component name="C1" autowire="false">
Case a) will inherit the autowire from the containing composite while
case b) will override the one from the composite.
In the current code, we use a boolean to represent the setting in
Composite/Component/ComponentReference interface and it cannot reflect
the null value. I propose that we make the following changes:
1) Change the method "void setAutowire(boolean autowire)" to "void
setAutowire(Boolean autowire)". Thanks to the JDK5 autoboxing, this
will not break any existing code.
2) Change the implementation of isAutowire() to default null value to
false.
3) Add a new method to "Boolean getAutowire()" to the
Composite/Component/ComponentReference
4) Update the CompositeProcessor and CompositeConfigurationBuilderImpl
to read/propagate the autowire settings correctly.
I have all these changes working locally. If there's no objections,
I'll check in the code soon.
Thanks,
Raymond
+1, would be good to also @deprecate isAutowire then.
Are there any other boolean attributes in the model deserving a similar
treatment?
--
Jean-Sebastien
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]