Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1773

Refactor JMS transport for readability and simplicity (patch included)



    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.2
    • Fix Version/s: 2.0.9, 2.1.3
    • Component/s: Transports
    • Labels:


      In preparation for the planned improvements for JMS config like discussed on the mailing list the JMS transport should be refactored for readability.

      I have worked myself into the JMS code and at the start had some problems understanding what happened because of some structures in the code.

      The first thing was JMSTransportBase. Most of the class are methods that do not access any attributes. These methods could be made static and moved to the JMSUtil class. The method isDestinationStyleQueue is the only method that needs an attribute. I think it should have this attribute as a parameter and also be made static and moved to JMSUtils.
      The rest of JMSTransportBase are only holders for attributes that are then accessed from JMSConduit and JMSDestination directly (even without getters). So I think the whole class could be dumped and to attributes should be moved to the subclasses. The readability of JMSConduit and JMSDestination is much better afterwards as the class can be understood in itself.

      The next thing is JMSTransport which is used to feed JMSProviderHub. I think it should be cut down to the callback method connected and be renamed to JMSOnConnectCallBack. The other two methods can be added to the parameters of JMSProviderHub. The advantage is that it is much clearer what JMSProviderHub.connect needs and that connected is a callback that gets called at the end of connect.

      I have already done the refactorings and will attach a patch with them. Checkstyle, PMD and surefire show no problems.


        1. cxf-1773-refactor-jms.patch
          102 kB
          Christian Schneider

          Issue Links



              • Assignee:
                njiang Willem Jiang
                cschneider Christian Schneider
              • Votes:
                0 Vote for this issue
                0 Start watching this issue


                • Created: