GEOS
GEOS copied to clipboard
Add DeprecatedGroup and ObsoleteGroup implementations with unit tests
Just putting this up for review for the moment, not married to any design decisions and I assume we'll want to change output message structure.
This basically just introduces mechanisms to lifecycle internal types that have been replaced/supplanted while informing the user in obvious ways and maintaining the schema generation/documentation and parse>init process for that type until it drops completely from the project.
To deprecate any Group subclass just, for e.g. class Foo : public ExecutableGroup (inherits from any group subclass):
class Foo : public DeprecatedGroup< ExecutableGroup >
It basically just injects itself into the inheritance hierarchy and adds the deprecation/obsolescence behavior.