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! Sangjin On Mon, Jun 14, 2010 at 6:42 AM, BJ Hargrave <[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]* <[email protected]> > > office: +1 386 848 1781 > mobile: +1 386 848 3788 > > > > > > > From: Sangjin Lee <[email protected]> > To: OSGi Developer Mail List <[email protected]> > Date: 2010/06/10 14:01 > Subject: [osgi-dev] [DS] ComponentFactory.newInstance with a > dynamic property > Sent by: [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*<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] > 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
