Description
Types for representing admin commands in BlazingMQ are generated from an XSD
file mqbcmd.xsd
, which outputs mqbcmd_messages.h
. There are a number of
issues with this approach for us:
-
The tool to do this code generation is not open-source, and so we are not
able to accept patches that add or change admin commands. -
Doxygen does not understand the documentation generated in
mqbcmd_messages.h
, and any modifications we do will be overwritten the
next time we regenerate the file.
Furthermore, unlike other places where we use XSD code generation in BlazingMQ,
which also suffer from the same downsides, we do not gain any major benefits of
it in mqbcmd
, as we do not serialize or deserialize the admin commands in any
structured way.
All of this, coupled with how relatively small this XSD, make it a good
candidate to convert to non-generated code. This may be as simple as removing
the XSD, blessing the current generated types as the source of truth, and
converting the existing documentation over.