Hi,
1) WindupRuleMetadata should IMO be named RuleProvidersRegistry.
2) WindupRuleMetadata has:
private final List<WindupRuleProvider> providers = new ArrayList<>();
private final IdentityHashMap<WindupRuleProvider, List<Rule>>
providersToRules = new IdentityHashMap<>();
private Configuration configuration;
Isn't the first redundant? It can be acquired simply by
providersToRules.getKeys().
And WRT configuration - that one only has
public List<Rule> getRules();
Is that another redundancy, since rules are in the map? It could be
retrieved as merge of getValues().
Ondra