[ https://issues.apache.org/jira/browse/CXF-1783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Willem Jiang reassigned CXF-1783: --------------------------------- Assignee: Willem Jiang > Refactor JMS transport second step (patch included) > ----------------------------------------------------- > > Key: CXF-1783 > URL: https://issues.apache.org/jira/browse/CXF-1783 > Project: CXF > Issue Type: Improvement > Components: Transports > Affects Versions: 2.1.2 > Reporter: Christian Schneider > Assignee: Willem Jiang > Fix For: 2.1.3 > > Attachments: CXF-1783-refactor-jms-2.patch > > > I have refactored several parts of the JMS Transport to make it easier to > understand and to help preparing for a move to the spring jms classes. > The refactoring should not change the functionality. > SessionFactory and PooledSession: > The sessionfactory had two different caches and a lot of redundant code. I > have now only one cache left that starts send only. A consumer is then added > when the first client needs it. The lines of code of SessionFactory are > reduced from 450 to 300. > Functionality of JMSProviderHub is splitted between SessionFactory and > JMSUtils > The connect method now does not need a callback anymore. So the interface > JMSOnConnectCallback is deleted. > JMSOutputStream: > Extracted the class from JMSDestination and JMSConduit. They both use the > same JMSOutputStream now. A new interface JMSExchangeSender calls back into > JMSConduit or JMSDestination. > JMSListenerThread and JMSExecutor: > Extracted JMSListenerThread from JMSDestination. So the complete JMS listen > functionality is factored out. This means it will be easier to port to Spring > MessageListenerContainer. JMSListener does not use the Session pool anymore > as it does not need pooling anyway. > JMSConduit: > Made the program flow easier again and documented where the flow of operation > is not easy to understand. 420 lines => 290 lines > JMSDestination: > Same as with JMSConduit. 550 lines => 420 lines > Tests: > All tests work > - Cut most of PooledSessionTest as it does not apply anymore. Have not > written a new test yet. But I think it is mostly implicitly tested by other > tests > - AbstractJMSTests replaced setInMessage with setOutMessage. I think this was > wrong before. Please review > - JMSDestinationTest added a second message send as I had an issue with a > closed session after first send because of an error in the SessionFactory. > This is to avoid regression -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.