We are able to make a dependency optional in modules.xml. That's
awesome, now the question is how to use this feature in real life? Are
there any best practices?
A bit of background.
In TorqueBox we add several subsystems to the plain JBoss AS 7. We plan
to have a slimmed down TB called TorqueBox Lite, that will run as a
RubyGem directly. It's obvious that we would like to slim down the JBoss
AS distribution itself too since >120MB is too big for a reasonable
sized Gem. I dropped everything we don't need and I end up with JBoss AS
distribution that weights ~15MB.
In the TB Lite version we don't need several of AS7 subsystems, that are
required in the normal TB distribution. One example is the jmx
subsystem. It's currently marked as optional in the TB core subsystem.
How can I make sure I use the jmx subsystem only when it's available? It
would be ideally if we could disable some subsystems without breaking
the platform and instead just remove some features. What's the best way
to do it?