Summary
Package | Description |
---|---|
proton.core (alternatively, proton) | Core protocol model and utility classes |
proton.codec | AMQP data and frame encoding and decoding |
proton.reactor | IO integration, event dispatch, and event handlers |
proton.security | Encryption and authentication |
proton.messenger | A home for the Messenger API |
proton.extras | Extra classes that extend core Proton functionality |
proton.util | Utility classes not supplied by the host language |
The base Proton exception or error class goes in 'proton', but subclasses would reside in the various subpackages above.
There are some classes we intend to deprecate or remove: Connector, Listener, Driver.
Package 'proton.core'
- Connection, Session, Link, Terminus, Delivery, Transport, Address, Condition - AMQP model objects
- Message, Url, Data - Important user-facing utility classes
- ProtonException - Core error handling
Package 'proton.codec'
- Encoder, Decoder
Package 'proton.reactor'
- Reactor, Container
- Collector, Event, EventType, EventHandler
- MessagingHandler, IncomingMessageHandler, OutgoingMessageHandler
Package 'proton.security'
- SSL, SASL
Package 'proton.messenger'
Optional. Not every binding will include the Messenger API.
- Messenger, Subscription
Package 'proton.util'
Optional. A place for simple extensions to the language-provided standard library. If the utility classes can be kept private, that's better still.
- Logging classes
- Timestamp, Described, UnsignedLong, etc. - Data types not supplied by the host language
Package 'proton.extras'
Optional. A place for end-user extensions to the core API.
- BlockingConnection
Changes
As of 15 September 2015, I've tried to simplify the proposed structure.
- Removed proton.event. Most bindings won't include this older variant of the event API. Instead, these classes can go under proton.reactor.
- Removed proton.types. These are host language extensions, the same as the classes in proton.util. Such types are moved to proton.util.
- Moved Url and Data to proton.core. They are part of the core user experience, across programming models.