[
https://issues.apache.org/jira/browse/ARIES-1500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15467874#comment-15467874
]
Jean-Philippe CLEMENT edited comment on ARIES-1500 at 9/6/16 4:46 PM:
----------------------------------------------------------------------
Let's say I have a bean like this:
public final class MyBean {
public MyBean(final WritableValue<String> value) {
...
}
And in the blueprint:
<bean id="myValue" class="javafx.beans.property.SimpleObjectProperty"/>
<bean id="willFail" class="test.MyBean">
<argument ref="myValue"/>
</bean>
Then the inection of myValue in willFail... fails!
But if MyBean is like this:
public MyBean(final WritableValue value) { ... }
Then the injection works fine. There is no way to specify generic type in
blueprint and as expressed before, after compilation WritableValue<String> and
WritableValue are the same for the JVM.
I would suggest blueprint to stop checking the generic type and react like the
JVM (i.e. WritableValue<String> is WritableValue) :)
was (Author: jeanphi):
Let's say I have a bean like this:
public final class MyBean {
public MyBean(final WritableValue<String> value) {
...
}
And in the blueprint:
<bean id="myValue" class="javafx.beans.property.SimpleObjectProperty"/>
<bean id="willFail" class="test.MyBean">
<argument ref="myValue"/>
</bean>
Then the inection of myValue in willFail... fails!
But if MyBean is like this:
public MyBean(final WritableValue value) { ... }
Then the injection works fine. There is no way to specify generic type in
blueprint and as expressed before, after compilation WritableValue<String> and
WritableValue are the same for the JVM.
I would suggest blueprint to stop checking the generic type and react like the
JVM (type erasure) :)
> Fix wildcard types support
> --------------------------
>
> Key: ARIES-1500
> URL: https://issues.apache.org/jira/browse/ARIES-1500
> Project: Aries
> Issue Type: Bug
> Components: Blueprint
> Affects Versions: blueprint-core-1.5.0
> Environment: All
> Reporter: Jean-Philippe CLEMENT
> Assignee: Guillaume Nodet
> Fix For: blueprint-core-1.6.0
>
> Attachments: org.apache.aries.blueprint.core-1.6.0-SNAPSHOT.jar
>
>
> Let's take a bean with the method setSomething(Something<T>) called via
> blueprint with another bean implementing Something => exception saying that
> bean conversion is not possible. But, if I change the method signature
> without the generic type setSomething(Something), then it works as expected.
> Blueprint should not care for the generic type as Java is type erasure and do
> not exceed the spec.
> There is no nice work around. Have to change all APIs used via Blueprint and
> take note for all deviations. This is really heavy.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)