AbstractComponent is trouble because its name implies that
everything should extend from it. It is useful, but maybe too
broadly useful. The things it offers access too, the Settings instance
for the entire server and a logger are nice to have around, but not
really needed everywhere.
So we should remove it and everything that needs a logger or a deprecation logger or a settings instance should just declare that it needs it. That way tests don't end up making a Settings instance "just because". That kind of thing makes test much harder to read.
See this comment for the part of this that is a "good first issue".
AbstractComponentis trouble because its name implies thateverything should extend from it. It is useful, but maybe too
broadly useful. The things it offers access too, the
Settingsinstancefor the entire server and a logger are nice to have around, but not
really needed everywhere.
So we should remove it and everything that needs a logger or a deprecation logger or a settings instance should just declare that it needs it. That way tests don't end up making a
Settingsinstance "just because". That kind of thing makes test much harder to read.See this comment for the part of this that is a "good first issue".