That "elsewhere" is what i am struggling to find. But i will look at it again 
today with fresh information you have provided.

Any other suggestions are welcome.

Cheers
Daghan

Sent by MailWise<http://www.mail-wise.com/installation/2> – See your emails as 
clean, short chats.


-------- Original Message --------
From: Ferry Huberts <maili...@hupie.com>
Sent: Friday, October 14, 2016 08:19 AM
To: OSGi Developer Mail List <osgi-dev@mail.osgi.org>
Subject: Re: [osgi-dev] DS component life cycle.

Injection code should not depend on whether or not your component is
activated. Code doing that should be moved elsewhere.




On 13/10/16 23:12, Daghan ACAY wrote:
> Thanks Ferry,
>
> Thanks a lot for the info. It will be very useful in the future. In this
> particular case since my references are optional i need to control the
> indeterminism. I used countdown latch but of course it created dead lock:).
>
> Can you suggest a solution? Any will do, including redesigning the
> software :)
>
> Regards
> Daghan
>
> Sent by MailWise <http://www.mail-wise.com/installation/2> – See your
> emails as clean, short chats.
>
>
>
> -------- Original Message --------
> From: Ferry Huberts <maili...@hupie.com>
> Sent: Friday, October 14, 2016 08:05 AM
> To: osgi-dev@mail.osgi.org
> Subject: Re: [osgi-dev] DS component life cycle.
>
> Mandatory references are always injected before activate.
> Optional references can be injected either before or after activate.
>
> On 13/10/16 23:00, Daghan ACAY wrote:
>> Hi all,
>>
>> I am trying to create a component that is instantiated by ConfigAdmin
>> and uses multiple references to operate. Basically the component should
>> instantiate through a factory configuration and use that configuration
>> to set up its own @Reference s. You can see the code here:
>>
>>
> https://github.com/daghanacay/com.easyiot.device/blob/master/com.easyiot.LT100H.device.provider/src/com/easyiot/LT100H/device/provider/LT100HDeviceImpl.java
>>
>> All the mentioned @Reference ed components are instantiated by
>> configuration as well, so at a given time the @Reference might not be
>> available but my own component should still work. yet should the
>> Reference available then it should be injected, basic 0-1 strategy.
>>
>> Problem I am facing with the current form of the code is that, the
>> @Reference injection is happening before the @Activate method is called.
>> This leads to NPE in the @Reference method due to null configuration. Is
>> it possible to make this code work such that config is provided to the
>> component before the dependency injection?
>>
>> I have tried annotating the class fields and set them "volatile". I even
>> make them a list and use the class fields in the activate method this
>> time the class fields were null due to 0-1 strategy. so I end up with
>> annotating the methods.
>>
>> I might have designed this all wrong, so any help simple or fundamental
>> is appreciated.
>>
>> Regards
>>
>> -Daghan
>>
>> Sent by MailWise <http://www.mail-wise.com/installation/2> – See your
>> emails as clean, short chats.
>>
>>
>>
>> _______________________________________________
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org
>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>
>
> --
> Ferry Huberts
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
>
>
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>

--
Ferry Huberts
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to