如何监控OSGi中的服务运行

通过ServiceListener只能监听几种简单的消息,很难写实现真正意义上的监控。
曾经想通过OSGi与AOP的结合来实现,但一直苦于没有实现的案例方法。
就连jdk动态代理也没有办法完全解决这个问题。
希望高手们指导谢谢!

Bundle跟踪器(Bundle Tracker)。OSGi早就有了一个服务跟踪器(Service Tracker)用于监控进出的服务,Bundle跟踪器是对服务器跟踪器概念的一个延伸,用于监控bundle的信息。此前服务可以通过BundleListener来动态查看进出的bundle,而BundleTracker也达到了同样的高度,就像ServiceTracker之于ServiceListener一样。我们可以通过这个特性执行动态注册之类的功能,就好象是Blueprint服务或声明式服务读取或处理元数据一样。比如说,Web引擎可能会通过HttpService自动扫描新安装的bundle和自动注册的Servlet。