[ https://issues.apache.org/jira/browse/LOG4J2-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeff Thomas closed LOG4J2-3693. ------------------------------- Resolution: Duplicate > XmlConfiguration keeps relevant fields private without providing protected > accessors making subclassing difficult > ----------------------------------------------------------------------------------------------------------------- > > Key: LOG4J2-3693 > URL: https://issues.apache.org/jira/browse/LOG4J2-3693 > Project: Log4j 2 > Issue Type: Improvement > Components: API, Configuration > Affects Versions: 2.24.0 > Reporter: Jeff Thomas > Priority: Major > > The XmlConfiguration implementation is non-final meaning it is possible to > subclass it to provide additional custom functionality; however: the most > relevant class field `rootElement` is _private_ making it near impossible to > do anything useful in the subclass. > It would be helpful (and prevent making a complete copy of the > implementation) to at the very least provide a protected accessor for this > field: > i.e. `protected Element getRootElement()` > This way, a custom subclass has a chance to perform some custom handling in > `public void setup()` before the hierarchy is constructed. > Most of the AbstractConfiguration configuration-relevant fields are protected > (i.e. rootNode) - but it seems someone didn't stick to that approach in the > XmlConfiguration implementation. > SIDE NOTE: It seems the complexity of the currrent XmlConfiguration could be > greatly reduced by sticking a little more closely to SRP > (single-responsibility principle) and offloading the > instantiation/configuration of the DocumentBuilderFactory and maybe the > validation to separate utility classes :P. -- This message was sent by Atlassian Jira (v8.20.10#820010)