I'm writing a plugin A which optionally uses a service provided by plugin B. So plugin A has some more features if plugin B is installed as well, but it still works (with a limited feature set) without plugin B.
Giving plugin A access to plugin B's classes by means of the depends tag doesn't work, since then plugin B isn't optional anymore. Using the extensions framework doesn't work either, since I still need a common class known to both plugins.
Is there any clean solution to this problem? Or do I really have to use reflection for it?