I was trying a few things out, and I found some problems. I've noted some below inline with the jiras I created for them.
The messenger namespace problem: The absence of a package for messenger, with only the things the API user needs to care about, is a disservice to users. Right now the advice to users is to pay attention to the enumeration [Messenger, Message, and Data], and try to ignore the other stuff. It seems like we might add Subscription to that list, and pretty soon we're going to really wish we had *one place* to sum up what the messenger API is. Dispatch doesn't seem to fail in any visible way when I send it garbage operations. It just goes silent. Justin ---- Colorful version: https://gist.github.com/ssorj/9816089 #!/usr/bin/env python from proton import Message, Messenger from pprint import pprint def main(): msgr = Messenger() msgr.start() try: # PROTON-439 "#" syntax not documented sub = msgr.subscribe("amqp://0.0.0.0/#") # PROTON-544 Subscriptions have no documentation msg = Message() # DISPATCH-38 msg.address = "amqp://0.0.0.0/$management" msg.address = "amqp://0.0.0.0/_local/$management" msg.reply_to = sub.address msg.properties = dict() # PROTON-542 msg.properties["operation"] = "GET-ATTRIBUTES" msg.properties["name"] = "self" msgr.put(msg) msgr.send(1) msgr.recv(1) msgr.get(msg) print "Message properties" pprint(msg.properties) print "Management properties" pprint(msg.body) msgr.accept() finally: msgr.stop() if __name__ == "__main__": try: main() except KeyboardInterrupt: pass