I have redesigned my CVSRevisionGraph plugin to be generic for any Vcs implementation. I called it VcsRevisionGraph. Right now, I have added support for both CVS and Subversion. Therefore, I made the new VcsRevisionGraph be dependent on the CVS and Subversion plugins that ship with IntelliJ.
The problem is that if a user has disabled the Subversion plugin (via the Plugin Manager dialog), my plugin will not load because it is dependent on both CVS and Subversion. I thought if I just remove the dependencies in my plugin.xml, then everything would be OK. That didn't work. My plugin has two actions, one for CVS and one for Subversion. These actions are loaded on IntelliJ startup and get an error if I don't have the dependencies in my plugin.xml.
So my question is, can I have one plugin VcsRevisionGraph have multiple dependencies that are not strict? In other words, if Subversion is disabled, at least the CVS dependency will still work?
Or should I restructure my plugin into multiple plugins where VcsRevisionGraph is just the generic part with no actions. And then make the CVS dependent portion into its own plugin that is dependent on VcsRevisionGraph and CVS? And make a Subversion dependent portion into its own plugin that is dependent on VcsRevisionGraph and Subversion?