As I wrote previously, I'm working on adding native Stomp support to HornetQ.
To check our implementation, I started from stompconnect's StompTest and added nitpick tests to clarify my understanding of the spec and to make sure our implementation is compliant to the spec.
I'd like to contribute them back to stompconnect (test.patch).
I added tests to:
- check a RECEIPT response to a SEND message with a receipt header
- check that a SEND with content-length can be consumed as a ByteMessage
- check that after a DISCONNECT, a SEND will be replied with an ERROR
- check that a message is not receivable before a tx is committed
otherwise testTransactionCommit passes even though I've not implemented the TX commands :)
I have also two remarks concerning the 1.0 spec:
- about RECEIPT response:
it should be "Any client frame other than CONNECT *and DISCONNECT* may specify a receipt header with an arbitrary value."
AIUI, it makes not sense to send a RECEIPT in response to a DISCONNECT since the socket will be closed after the server handled the DISCONNECT.
- StompConnect accepts SUB and UNSUB as valid commands in addition to SUBSCRIBE & UNSUBSCRIBE.
Are the short ones valid or used by Stomp clients (regardless of what the spec says)?