I want to connect to the Microsoft Azure IoT Hub with Java to implement a device-gateway with some kind of identity translation. As I don't want to use the proprietary Azure SDK, I'm looking for a suitable AMQP-client-library. I made first steps with the very high-level Vert.X AMQP client and was able to connect to the IoT Hub with SASL and exchange messages. But as a per-device-authentication is required, I came to the libraries limits fast, as sessions and links are not supported.
There are other AMQP-client-libraries like the parent-library of the Vert.X AMQP Client, Vert.X Proton, and of course the most detailed AMQP-client-implementations Apache Qpid Proton-J and Qpid JMS. The question which arises now is which library too choose for my usecase? Currently I can't answer it myself satisfactorily, as the available online-resources (documentation and examples) to these libaries itself and the external AMQP-integration to the IoT Hub with other libraries then the Azure SDK are very rare. Apache Qpid seems to be the most powerful but also the most complex one. Vert.X Proton as an easier to use wrapper also supports sessions and links, but probably still doesn't support all required AMQP-features to connect to a IoT hub? It's hard to get an overview on the requirements.