Hi Des,
AFAIK, the spec doesn't say anything about snooping.
However, one thing you could do is register an additional OSGi Service
implementing the same interface in the OSGi Service Registry and then
simply forward calls to the service you want to snoop.
You can even prevent bundles from seeing the original service (so they
will get yours) when they look up the service. This can be done using a
FindHook [1]. The FindHook has the following API:
void find(BundleContext context,
java.lang.String name,
java.lang.String filter,
boolean allServices,
java.util.Collection references)
The findhook API is designed to allow references to be removed from the
references collection. You can implement a findhook that removes
visibility of the real service for certain bundles so that your snoop
service will be used by those bundles instead.
FindHook is a feature that was introduced recently in the OSGi Service
Registry (RFC 126). I think today its only implemented by the latest
Equinox 3.5.
Hope this helps...
David
[1] RFC 126 in http://www.osgi.org/download/osgi-4.2-early-draft2.pdf
Des Carbery wrote:
Hi -
I'm trying to write a bundle that can be deployed into any OSGi
container that will be able to snoop on all OSGi Service calls. I'm
interested in monitoring Service calls between bundles, local and
remote. I want my bundle to add an interceptor to all Service
invocations in order to monitor the traffic.
I've gone through the draft 4.2 spec and I was hoping that either "RFC
126 - Service Registry Hooks" or "RFC 119 - Distributed OSGi" would
provide some new standardised mechanism to do this. However I can't
find any way to do this.
When I read the section "7 Considered Alternatives" there seemed to be
a number of suggestions that would fulfill my requirements which were
ruled out intentionally.
Is there something else in the 4.2 draft or in an earlier spec that
can enable me to write such a bundle?
Regards,
Des
------------------------------------------------------------------------
_______________________________________________
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