Skip to content

Migrate mqbcmd away from XSD code generation #615

Open
@pniedzielski

Description

@pniedzielski

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:

  1. 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.

  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions