Hi,

On 14.06.2010 18:13, Sangjin Lee wrote:
> Thanks. With the equinox DS (1.1.1.R35x_v20090806), however, I do get a
> ComponentException saying that it is unable to resolve a service
> instance (haven't tried felix yet).
> 
> I have a complete proof-of-concept example that shows what I'm trying to
> do, and hopefully you'd be able to see for yourself: http://bit.ly/dhnyfK.
> 

Thanks for the sample, which I quickly tested on Felix DS trunk, and to
my surprise ;-) it worked .... (It doesn't seem to work on the latest
release, though).

Regards
Felix

> Thanks!
> 
> Sangjin
> 
> 
> On Mon, Jun 14, 2010 at 6:42 AM, BJ Hargrave <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     I don't see why this should not work. All you can do is refine one
>     of the target reference which must exist for the ComponentFactory to
>     be satisfied. So a service.target property passed to newInstance can
>     further refine the bound reference.
> 
>     It may be that the current implementations do not handle this, but
>     from a spec point of view, it should be supported.
>     -- 
> 
>     *BJ Hargrave*
>     Senior Technical Staff Member, IBM
>     OSGi Fellow and CTO of the _OSGi Alliance_ <http://www.osgi.org/>_
>     [email protected]_ <mailto:[email protected]>       
> 
>     office: +1 386 848 1781
>     mobile: +1 386 848 3788
> 
> 
> 
> 
> 
> 
> 
>     From:        Sangjin Lee <[email protected] <mailto:[email protected]>>
>     To:        OSGi Developer Mail List <[email protected]
>     <mailto:[email protected]>>
>     Date:        2010/06/10 14:01
>     Subject:        [osgi-dev] [DS] ComponentFactory.newInstance with a
>     dynamic property
>     Sent by:        [email protected]
>     <mailto:[email protected]>
>     ------------------------------------------------------------------------
> 
> 
> 
>     I have a question on the behavior of ComponentFactory.newInstance()
>     when you inject a reference target dynamically.
> 
>     I have a factory component that has a unary mandatory reference to
>     some service, but the target is intentionally left blank (so I can
>     provide it dynamically). When I instantiate a specific instance, I
>     want to pass in a particular type so this specific instance can bind
>     to the right service instance. The code snippet is
>     at _http://bit.ly/dy8kFy_.
> 
>     I am basically adding a property for "service.target" =
>     "(type=foo)", so at runtime this binds specifically to a service
>     instance of type=foo. Will this pattern work? Also, if so, how does
>     ComponentFactory.newInstance() behave if that service is not
>     registered yet? Will it fail immediately or will it block/wait until
>     that particular service is registered?
> 
>     In a bigger context, I'm trying to see if I can use this pattern as
>     a way to "compel" a specific service with a type dynamically at
>     runtime. Is there a better pattern to compel a specific service type
>     dynamically? Thanks much!
> 
>     Regards,
>     Sangjin_______________________________________________
> 
>     OSGi Developer Mail List
>     [email protected] <mailto:[email protected]>
>     https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> 
>     _______________________________________________
>     OSGi Developer Mail List
>     [email protected] <mailto:[email protected]>
>     https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> 
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to