Working with the parsers for the core config has become increasingly
cryptic, we are now at the point where we have three different major
versions which diverge and converge as we work on them. Most recent
changes have resulted in large sections of the config converging for 1.x
and 3.x leaving 2.x independent.
So that I can add references to Elytron I am starting to add support for
version 4.
One think that I have learned is that each major version tends to belong
to one branch of the codebase, all changes to that version happen on
that branch first: -
1.x - Maintained only for EAP
2.x - WildFly 8.x branch
3.x - WildFly Core master branch
I would expect if further changes are made to core for WildFly 9
releases we will end up with 1.x branch of core and and 4.x version of
the schema will be owned by the master branch.
To make things less cryptic I am proposing that until we find a better
solution for all subsequent major schema versions we just fork the
parser and all related classes.
This will simplify the code being modified for the upstream development.
Forward porting parsing changes will also become a simple copy and paste.
For the current cryptic approach I think almost every engineer (and I am
finding it really hard to think of exceptions) that has worked in-depth
in this area has introduced at least one bug and I don't think the test
coverage is high enough to protect against this.
Regards,
Darran Lofthouse.