Dominik Przybysz created ARIES-1733:
---------------------------------------
Summary: Injecting array, set or list of beans in BMP
Key: ARIES-1733
URL: https://issues.apache.org/jira/browse/ARIES-1733
Project: Aries
Issue Type: New Feature
Components: Blueprint
Reporter: Dominik Przybysz
Assignee: Dominik Przybysz
Fix For: blueprint-maven-plugin-1.7.0
Bean like this:
{code}
@Bean
public class BeanWithCollections {
@CollectionInject(I1.class)
List<I1> listFieldInject;
@CollectionInject(I1.class)
Set<I1> setFieldInject;
@CollectionInject(I2.class)
I2[] arrayFieldInject;
@AnnotatedService
@CollectionInject(I1.class)
Set<I1> annotatedSetFieldInject;
@CollectionInject(I1.class)
public void setListSetterInject(List<I1> l) {
}
@CollectionInject(I2.class)
public void setSetSetterInject(Set<I1> l) {
}
@CollectionInject(I1.class)
public void setArraySetterInject(I1[] l) {
}
@AnnotatedService
@CollectionInject(I2.class)
public void setAnnotatedArraySetterInject(I2[] l) {
}
public BeanWithCollections(
@CollectionInject(I1.class) List<I1> listOfI1,
@CollectionInject(I1.class) Set<I1> setOfI1,
@CollectionInject(I2.class) I2[] arrayOfI2,
@CollectionInject(I1.class) @AnnotatedService List<I1>
listOfAnnotatedI1,
@CollectionInject(I3.class) List<I3> listOfNotExistingI3,
@CollectionInject(I3.class) Set<I3> setOfNotExistingI3,
@CollectionInject(I3.class) I3[] arrayOfNotExistingI3
) {
}
}
{code}
should be generated in blueprint xml as:
{code}
<bean xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
id="beanWithCollections"
class="org.apache.aries.blueprint.plugin.test.collection.BeanWithCollections"
ext:field-injection="true">
<argument>
<list>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</list>
</argument>
<argument>
<set>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</set>
</argument>
<argument>
<array>
<ref component-id="i2Impl1"/>
<ref component-id="i2Impl2Annotated"/>
<ref component-id="i2Impl3Annotated"/>
</array>
</argument>
<argument>
<list>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</list>
</argument>
<argument>
<list/>
</argument>
<argument>
<set/>
</argument>
<argument>
<array/>
</argument>
<property name="annotatedArraySetterInject">
<array>
<ref component-id="i2Impl2Annotated"/>
<ref component-id="i2Impl3Annotated"/>
</array>
</property>
<property name="annotatedSetFieldInject">
<set>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</set>
</property>
<property name="arrayFieldInject">
<array>
<ref component-id="i2Impl1"/>
<ref component-id="i2Impl2Annotated"/>
<ref component-id="i2Impl3Annotated"/>
</array>
</property>
<property name="arraySetterInject">
<array>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</array>
</property>
<property name="listFieldInject">
<list>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</list>
</property>
<property name="listSetterInject">
<list>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</list>
</property>
<property name="setFieldInject">
<set>
<ref component-id="i1Impl1"/>
<ref component-id="i1Impl2"/>
<ref component-id="i1Impl3Annotated"/>
<ref component-id="i1Impl4Annotated"/>
</set>
</property>
<property name="setSetterInject">
<set>
<ref component-id="i2Impl1"/>
<ref component-id="i2Impl2Annotated"/>
<ref component-id="i2Impl3Annotated"/>
</set>
</property>
</bean>
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)