[
https://issues.apache.org/jira/browse/ARIES-843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tomas Forsman updated ARIES-843:
--------------------------------
Description:
If a bean has a constructor argument which use generics, the injection fails
with "org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
to find a matching constructor".
Example:
package example;
public interface Example<A> {}
public class ExampleImpl implements Example<String> {}
public class Service {
private Example<String> example;
public Service(Example<String> example) {
this.example = example;
}
}
<bean id="exampleReference" class="example.ExampleImpl"/>
<bean id="proxyServiceInitialization" class="example.Service">
<argument ref="exampleReference"/>
</bean>
Changing the constructor of Service to "public Service(Example example)" make
it work, but it would be better to have it inject correctly with the generics
intact.
was:
If a bean has a constructor argument which use generics, the injection fails
with "org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
to find a matching constructor".
Example:
package example;
public interface Example<A> {}
public class ExampleImpl implements Example<String> {}
public class Service {
private Example<String> example;
public Service(Example<String> example) {
this.example = example;
}
}
<reference id="exampleReference" interface="example.Example"/>
<bean id="proxyServiceInitialization" class="example.Service">
<argument ref="exampleReference"/>
</bean>
Changing the constructor of Service to "public Service(Example example)" make
it work, but it would be better to have it inject correctly with the generics
intact.
> Bean can not be created if constructor argument use generics
> ------------------------------------------------------------
>
> Key: ARIES-843
> URL: https://issues.apache.org/jira/browse/ARIES-843
> Project: Aries
> Issue Type: Bug
> Components: Blueprint
> Affects Versions: 0.3
> Reporter: Tomas Forsman
>
> If a bean has a constructor argument which use generics, the injection fails
> with "org.osgi.service.blueprint.container.ComponentDefinitionException:
> Unable to find a matching constructor".
> Example:
> package example;
> public interface Example<A> {}
> public class ExampleImpl implements Example<String> {}
> public class Service {
> private Example<String> example;
> public Service(Example<String> example) {
> this.example = example;
> }
> }
> <bean id="exampleReference" class="example.ExampleImpl"/>
> <bean id="proxyServiceInitialization" class="example.Service">
> <argument ref="exampleReference"/>
> </bean>
> Changing the constructor of Service to "public Service(Example example)" make
> it work, but it would be better to have it inject correctly with the generics
> intact.
--
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