Pluggable Stomp Message Mapping
-------------------------------

                 Key: AMQ-943
                 URL: https://issues.apache.org/activemq/browse/AMQ-943
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Transport
    Affects Versions: 4.1
            Reporter: Dejan Bosanac
             Fix For: 4.1
         Attachments: protocol-mapping.patch

I have finally found time to finish this. Here's the draft version of the 
Pluggable Stomp Message Mapping implementation.

Few notes:

- New interface has been defined: ProtocolMapping (I wanted to use the same 
name as the message header that we check)

- There are two implementations of this interface: DefaultProtocolMapping and 
ByteProtocolMapping

- I used FactoryFinder to create appropriate mapper. The finder use the 
following path to find keys: 
META-INF/services/org/apache/activemq/transport/mapping/ (we can change this if 
you want)

- The appropriate mapper is used according to the "protocol-mapping" header in 
the CONNECT message. For example protocol-mapping:byte for ByteProtocolMapping 
handler.

- Currently I have implemented only the mapper for BytesMessage since I wasn't 
sure whether you want to integrate JSON mapper for MapMessages or distribute it 
in a separate library.

- I have changed the test case that tests subscription for byte messages

- This solution is not compatible with current mapping for byte messages. If 
you want backward compatibility, I can hard-code it in a ProtocolConverter 
class (as it was) since it could not be implemented through this mechanism.

TODO:

- test it more (create more unit test cases and test it more in a real 
environment)
- create a proper documentation so others can create their handlers.
- create a proper JavaDoc documentation for key interfaces and classes
- create JSON mapper (integrated or external)
- fix STOMP client(s)

Give it a try and let me know your impressions

Dejan Bosanac 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to