"adrian(a)jboss.org" wrote :
| So we add a "ServiceTracker" to the MDR which for deployments will be in the
deployment level (really the application/top level deployment)
| for others it will be as you say a default one at the Server level, what osgi calls
the "SystemBundle".
| You can imagine others might choose to track at some other level. e.g.
| for JavaEE we might choose to track at sub-deployment level, what MDR
| confusingly calls the deployment level. :-)
|
| When you do any type of injection (or the api is invoked from somewhere else)
| this should invoke the equivalent of get/unget of the ServiceTracker for that
context.
|
| Once that is done, the queries can go through the ServiceTracker at the relevant
level.
| The deployment level for normal OSGiBundleState and the server level for the
SystemBundle.
|
| You still need a "global" list of services for the getXXXServiceXXX()
queries.
| That should primarily be based on an index by class (it doesn't have to be
| its a performance optimization and only available when you have been asked
| to query by class). But once you've subsetted by class then you do a
| "read and skip" over those contexts to locate the ones that match any passed
filter on the properties (instance level MDR).
|
I fail to see why I would need to different levels of ServiceTracker.
As I also always have to check the "global" list.
When would I check just deployment level ServiceTracker?
For non-system bundle, to lookup non-osgi services that belong just to this bundle / jar /
deployment?
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4266790#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...