You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by David Jencks <da...@yahoo.com> on 2010/04/16 19:26:12 UTC

Should this work in blueprint?

I recently came across something that I thought should work but didn't:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <bean class="org.apache.yoko.osgi.locator.ServiceBean"
          activation="eager"
          init-method="start"
          destroy-method="stop">
        <argument>
            <reference interface="org.apache.yoko.osgi.locator.Register" component-name="yokoRegistryBean"/>
        </argument>
    </bean>
...

The error looked to me as if it was complaining that some object constructed for the reference was not of the type needed for the constructor argument, but I didn't investigate in detail.

This, however, did work:


<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <reference id="register" interface="org.apache.yoko.osgi.locator.Register" component-name="yokoRegistryBean"/>

    <bean class="org.apache.yoko.osgi.locator.ServiceBean"
          activation="eager"
          init-method="start"
          destroy-method="stop">
        <argument>
            <ref component-id="register"/>
        </argument>
    </bean>
...

Is this expected behavior or a bug?

thanks
david jencks

Re: Should this work in blueprint?

Posted by David Jencks <da...@yahoo.com>.
https://issues.apache.org/jira/browse/ARIES-288

I agree with your guess as to the cause :-)

Not sure if I'll get to fixing it before the next rc..... 

thanks
david jencks

On Apr 16, 2010, at 10:58 AM, Valentin Mahrwald wrote:

> Looks like a bug to me. My bet would be there is an additional layer of say Reference.ServiceProxyWrapper that we don't take off :(
> 
> On 16 Apr 2010, at 18:26, David Jencks wrote:
> 
>> I recently came across something that I thought should work but didn't:
>> 
>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>> 
>>   <bean class="org.apache.yoko.osgi.locator.ServiceBean"
>>         activation="eager"
>>         init-method="start"
>>         destroy-method="stop">
>>       <argument>
>>           <reference interface="org.apache.yoko.osgi.locator.Register" component-name="yokoRegistryBean"/>
>>       </argument>
>>   </bean>
>> ...
>> 
>> The error looked to me as if it was complaining that some object constructed for the reference was not of the type needed for the constructor argument, but I didn't investigate in detail.
>> 
>> This, however, did work:
>> 
>> 
>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>> 
>>   <reference id="register" interface="org.apache.yoko.osgi.locator.Register" component-name="yokoRegistryBean"/>
>> 
>>   <bean class="org.apache.yoko.osgi.locator.ServiceBean"
>>         activation="eager"
>>         init-method="start"
>>         destroy-method="stop">
>>       <argument>
>>           <ref component-id="register"/>
>>       </argument>
>>   </bean>
>> ...
>> 
>> Is this expected behavior or a bug?
>> 
>> thanks
>> david jencks
> 


Re: Should this work in blueprint?

Posted by Valentin Mahrwald <vm...@googlemail.com>.
Looks like a bug to me. My bet would be there is an additional layer  
of say Reference.ServiceProxyWrapper that we don't take off :(

On 16 Apr 2010, at 18:26, David Jencks wrote:

> I recently came across something that I thought should work but  
> didn't:
>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>
>    <bean class="org.apache.yoko.osgi.locator.ServiceBean"
>          activation="eager"
>          init-method="start"
>          destroy-method="stop">
>        <argument>
>            <reference  
> interface="org.apache.yoko.osgi.locator.Register" component- 
> name="yokoRegistryBean"/>
>        </argument>
>    </bean>
> ...
>
> The error looked to me as if it was complaining that some object  
> constructed for the reference was not of the type needed for the  
> constructor argument, but I didn't investigate in detail.
>
> This, however, did work:
>
>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>
>    <reference id="register"  
> interface="org.apache.yoko.osgi.locator.Register" component- 
> name="yokoRegistryBean"/>
>
>    <bean class="org.apache.yoko.osgi.locator.ServiceBean"
>          activation="eager"
>          init-method="start"
>          destroy-method="stop">
>        <argument>
>            <ref component-id="register"/>
>        </argument>
>    </bean>
> ...
>
> Is this expected behavior or a bug?
>
> thanks
> david jencks