| Key: |
| F = Functional |
| PF = Partially Functional |
| NR = Needs Additional Review |
| ND = Needs Additional Design |
| NF = Not Functional |
| |
| Connection: |
| |
| variables/configuration: |
| |
| - reconnect: F, NR, ND |
| + reconnect functionality is done and the API semantics provided |
| are ready for review |
| + reconnect policies need to be finished, there is currently |
| only one hardcoded reconnect policy (retry every three |
| seconds), we need to define the pre-canned policies that we |
| want to support and a means to configure them, as well as a |
| very simple plugin/callback for defining ad-hoc policies |
| + need to feed failover exchange into the reconnect policy |
| + acks can be lost on reconnect |
| + handle reconnect during commit/rollback |
| |
| - timeout: NF |
| + some sort of timeout threshold for killing the connection |
| |
| methods: |
| |
| - open/__init__: F, ND |
| + need to support kerberos |
| + need a better way of supplying various kinds of configuration: |
| - authentication info |
| - transport specific configuration options, e.g |
| - heartbeat |
| - socket options |
| - tcp-nodelay |
| - multiple brokers |
| |
| - session: F, NR |
| |
| - connect: F, NR |
| |
| - disconnect: F, NR |
| |
| - connected: F, NR |
| |
| - close: F, NR, ND |
| + currently there is no distinction between a "close" that does |
| a complete handshake with the remote broker, and a "close" |
| that reclaims resources, this means that close can fail with |
| an exception, I don't like this as it is unclear to the user |
| if there is a responsibility to do further cleanup in this |
| case |
| |
| errors: |
| |
| - ConnectionError: F, NR |
| + ConnectError F, NR |
| + Disconnected F, NR |
| |
| - notification of disconnect? |
| |
| Session: |
| |
| methods: |
| |
| - sender: F, NR, ND |
| + need to detail address options |
| + need to define subject pattern semantics |
| + consider providing convenience for sender/receiver caching |
| + need to provide sync option, possibly change default |
| |
| - receiver: F, NR, ND |
| + need to detail address options |
| + need to define filter syntax/semantics |
| + consider providing convenience for sender/receiver caching |
| + need to provide sync option, possibly change default |
| |
| - acknowledge: F, NR |
| |
| - reject: NF |
| |
| - release: NF |
| |
| - commit: F, NR |
| |
| - rollback: F, NR |
| |
| - next_receiver: F, NR |
| |
| - close: F, ND |
| + see comment on Connection.close |
| |
| errors: |
| |
| - SessionError: F, NR, ND |
| + SendError: F, NR, ND |
| + ReceiveError: F, NR, ND |
| + should there be fatal/non fatal variants? |
| |
| Sender: |
| |
| methods: |
| |
| - pending: F, NR |
| |
| - send: F, NR |
| |
| - sync: F, NR, ND |
| + currently this blocks until pending == 0, I'm thinking of |
| renaming this to wait and adding a slightly richer interface |
| that would let you wait for something like pending < n |
| |
| - close: F, NR |
| |
| errors: |
| |
| - SendError |
| + InsufficientCapacity |
| + need specific subhierarchy for certain conditions, e.g. no such queue |
| |
| Receiver: |
| |
| methods: |
| |
| - pending: F, NR |
| |
| - listen: F, ND |
| + see comment on Session.fetch |
| |
| - fetch: F, NR, ND |
| + explicit grant for receiver |
| + changing capacity/prefetch to issue credit on ack rather than |
| fetch return |
| |
| - sync/wait: NF |
| |
| - close: F, NR |
| |
| errors: |
| |
| - ReceiveError |
| + Empty |
| + need specific subhierarchy for certain conditions, e.g. no such queue |
| |
| Message: |
| |
| - standard message properties: F, NR, ND |
| |
| - map messages: F, NR |
| + needs interop testing: NF |
| + needs java impl: NF |
| |
| - list messages: F, NR, NI |
| + needs interop testing: NF |
| + needs java impl: NF |
| |
| - boxed types: NF |
| |
| Address: |
| |
| - syntax: F, NR |
| + need to consider whitespace in name/subject |
| + consider unquoted string concept |
| - subject related changes, e.g. allowing patterns on both ends: NF |
| - creating/deleting queues/exchanges F, NR |
| + need to handle cleanup of temp queues/topics: F, NR |
| + passthrough options for creating exchanges/queues: F, NR |
| - integration with java: NF |
| - queue browsing: F, NR |
| - temporary queues: NF |
| - xquery: NF |
| |
| Testing: |
| - stress/soak testing for async: NF |
| - stress/soak testing for reconnect: NF |
| - interop testing: NF |
| - multi session and multi connection client tests: NF |
| |
| Documentation: |
| - api level docs largely present but need updating and elaboration |
| - tutorial: NF |
| |
| Examples: |
| - drain: F, NR |
| - spout: F, NR |
| - server: F, NR |
| - client: NF |
| - reservations: F, NR |
| + code: F, NR |
| + doc: NF |
| - other examples, e.g. async? |
| |
| Miscellaneous: |
| - standard ping-like (drain/spout) utilities for all clients: NF |
| - caching of resolved addresses: F, NR |
| - consider using separate session for query/deletion/creation of addresses |