Since we have “priorities”, why not keep them completely separate and depending on the priority, once one config is processed, do not continue on to the other configuration providers.
If one needs to combine multiple rules, it can be done within a single configuration provider.
If we need completely separate rulesets, having multiple configuration providers with different priorities would then make better sence (imho).
or perhaps instead of having one public Configuration getConfiguration(final ServletContext context) in a configuration provider, we can have multiple configurations as well as a configurationAssembler that can decide what to do while processing individual configurations.
Having written all this, a configurationAssembler actually begins to make more sense to me.
Do you play Magic?
Get TopDecked MTG, the #1 Magic App, built by players, for players. Free to use, forever.