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

Third step of Refactoring JMS Transport

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1.2
    • 2.0.9, 2.1.3
    • Transports
    • None

    Description

      I have completed the third step in the refactoring. This I have done the following things:

      • Rewritten JMSConfiguration. Removed JmsTemplate and MesssageListener. Added their config settings instead. I did this because I want the config to be reuseable over several services
      • Made JMSConduit asynchronous. Instead of doing a receive on the JmsTemplate I open one Spring DefaultMessageListenerContainer that waits for all replies. The sending threads then waits for the listener to receive the message. the communication happens over a synchronized map
      • Rewrite of JMSDestination to use JmsTemplate and DefaultMessageLIstener
      • First start of transactions. Support sessionTransacted and transactionManager
      • Removed JMSListenerThread, SessionFactory and PooledSession
      • Added documentation to most classes and methods

      Some things are not finished:

      • QoS settings do not work completely. I have implemented Qos that can be statically set using the config. Do we need different QoS settings per message?
      • QoS on the server is not thread safe. JmsTemplate does not support setting QoS when sending the message. You have to set things like priority in the properties. I think this should be improved in JmsTemplate
      • Several settings will probably not yet work
      • I have added TODO tasks to the code where I think some more work has to be done
      • Transactions will probably not yet work as we need to throw an exception when something happens. I guess when an exception occurs in the server code of the service we will not throw it up till the listener. Any ideas how to achieve this?

      I will try to do my first commit with my new account for this one

      Please feel free to give some feedback about the changes

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            cschneider Christian Schneider
            cschneider Christian Schneider
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment