Skip to content

Master Feature Grid

carterpage edited this page May 9, 2012 · 62 revisions

Master Feature Grid

JMS 1.1 (85/85 - 100% - 17 Deferred)

1. Introduction (0/0 - N/A - 1 Deferred)
1.4.4 JTA
A JMS provider can optionally support distributed transactions via JTA. This happens in the Session object. Deferred
2. Architecture (1/1 - 100%)
2.8. Multi-threading
JMS Requires that the following object support concurrent use: Destination, ConnectionFactory, Connection Code reviewed here, here, here, here, here, here, here, here, and here; also covered here
3. Message Model (37/37 - 100% - 1.5 Deferred)
3.2. Goals
Support messages containing Java objects Covered
Support messages containing XML Covered by testXmlMessage()
3.4. JMS Headers
3.4.1. JMSDestination Covered
3.4.2. JMSDeliveryMode Covered
3.4.3. JMSMessageID Covered
3.4.4. JMSTimestamp Covered
3.4.5. JMSCorrelationID Covered
3.4.6. JMSReplyTo Covered
3.4.7. JMSRedelivered Covered for internal replay of messages. Deferred support for message reset. (Can be implemented with SQS attribute ApproximateReceiveCount).
3.4.8. JMSType Covered
3.4.9. JMSExpiration Covered
3.4.10. JMSPriority Covered, but expediting is not implemented
3.4.12. Overriding Headers Covered
3.5. Message Properties
3.5.1. Property Names Covered
3.5.2. Property Values: Can be boolean, byte, short, int, long, float, double, and String Covered
3.5.3. Using Properties: If a client attempts to set properties after a message is received _MessageNotWriteableException_ is thrown. Covered
3.5.4. Property Value Conversion Covered
3.5.5. Property Values as Objects Covered
3.5.6. Property Iteration Covered
3.5.7. Clearing a Message's Property Values Covered
3.5.8. Nonexistent Properties Covered
3.5.9. JMS Defined Properties Covered
3.5.10. Provider-Specific Properties Covered
3.6. Message Acknowledgement See 4.4.11
3.8. Message Selection Deferred
3.10. Changing the Value of a Received Message Covered
3.11. JMS Message Body
StreamMessage Covered
MapMessage Covered
TextMessage Covered
ObjectMessage Covered
BytesMessage Covered
3.11.1. Clearing a Message Body Covered
3.11.2. Read-Only Message Body Covered
3.11.3. Conversions provided by StreamMessage and MapMessage Covered here and here
3.11.4. Messages for Non-JMS Clients Covered in 3.11 *Message tests
3.12. Provider Implementations of JMS Message Interfaces
A provider must be prepared to accept, from a client, a message whose implementation is not one of its own Covered here, here, here, here, and here.
All of the methods for setting object values in body and properties must be implemented to copy their input objects into the message. Covered
The value of an input object is allowed to be null and will return null when accessed (with the exception of BytesMessage body, which must throw NullPointerException when writing a null) Covered
All read methods must return a copy of the accessed message objects. Covered
4. JMS Common Facilities (21/21 - 100% - 5 Deferred)
4.2. Administered Objects: JMS defines two administered objects, Destination and ConnectionFactory. Both must implement Referenceable and Serializable Covered here and here
4.3. Connection
4.3.1. Authentication: Client authentication happens in Connection creation Covered
4.3.2. Client Identifier Covered
4.3.3. Connection Setup Covered
4.3.4. Pausing Delivery of Incoming Messags Covered
4.3.5. Closing a Connection Covered
4.3.6. Sessions See 4.4
4.3.7. ConnectionMetaData Covered here and here
4.3.8. ExceptionListener Covered
4.4. Session
4.4.1. Closing a Session Covered
4.4.3. Creating Temporary Destinations Covered here and here
4.4.4. Creating Destination Objects Covered
4.4.7. Transactions Covered
4.4.8. Distributed Transactions Deferred
4.4.9. Multiple Sessions See 5.8 and 6.11
4.4.10. Message Order
4.4.10.1. Order of Message Receipt: FIFO guaranteed for a given session. Collect statistics to measure risk. Eventually provide optional magic to enforce. SQS does NOT guarantee. Collect stats. Further improvement deferred.
4.4.10.2. Order of Message Sends: Messages of higher priority may jump ahead of previous lower priority messages Deferred
4.4.11. Message Acknowledgement Covered
4.4.12. Duplicate Delivery of Messages: Never produce duplicates. Collect statistics to measure risk. Eventually optional magic can enfoce. SQS does NOT guarantee. Collect stats. Further improvement deferred.
4.4.13. Duplicate Production of Messages: No client error can cause a provider to duplicate a message Deferred - SessionTransactionTest.testAmbiguousWriteCommit()
4.5. MessageConsumer
4.5.1. Synchronous Delivery Covered
4.5.2. Asynchronous Delivery Covered
4.6. MessageProducer Covered
4.7. Message Delivery Mode All messages will be treated as PERSISTENT
4.8. Message Time-To-Live See 3.4.9
4.11. Method Inheritance across Messaging Domains Covered
5. JMS Point-to-Point Model (7/7 - 100% - Deferred)
5.1. Overview
A queue can contain a mixture of messages Covered
PTP domain-specific interfaces and the common interfaces must be guaranteed the same behavior Covered
5.4. Temporary Queue Covered
5.5. QueueConnectionFactory Covered
5.6. QueueConnection Covered
5.7. QueueSession Covered
5.8. QueueReceiver Covered
5.9. QueueBrowser Deferred
6. JMS Publish/Subscribe Model (10/10 - 100% - 1 Deferred)
6.1. Overview: Pub/Sub domain-specific interfaces and the common interfaces must be guaranteed the same behavior Covered
6.3. Durable Subscriptions Covered
6.5. Topic: Provide optional topic groups and heirarchies Deferred
6.6. TemporaryTopic Covered
6.7. TopicConnectionFactory Covered
6.8. TopicConnection Covered
6.9. TopicSession Covered (but still need to test unsubscribe())
6.10. TopicPublisher Covered
6.11. TopicSubscriber Covered (not complete)
6.11.1. Durable TopicSubscriber Covered here and here
6.15. Reliability Covered
7. JMS Exceptions (9/9 - 100% - 3 Deferred)
IllegalStateException Covered here, here, here, here, and here
JMSSecurityException Covered
InvalidClientIDException Covered
InvalidDestinationException Covered
InvalidSelectorException Deferred
MessageEOFException Covered here and here.
MessageFormatException Covered here, here, and here.
MessageNotReadableException Covered here and here
MessageNotWriteableException Covered here and here
ResourceAllocationException Covered
TransactionInProgressException Deferred
TransactionRolledBackException Deferred until 4.4.13
8. JMS Application Server Facilities (0/0 - N/A - 5 Deferred)
8.2. Concurrent Processing of a Subscription's Messages
8.2.1. Session: setMessageListener(), getMessageListener(), and run() Deferred
8.2.4. ConnectionConsumer Deferred
8.3. XAConnectionFactory Deferred
8.4. XAConnection Deferred
8.5. XASession Deferred
Clone this wiki locally