Update of /cvsroot/springnet/Spring.Net.Integration/projects/Spring.Messaging.Nms/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16438
Modified Files:
AbstractMessageListenerContainer.cs
SimpleMessageListenerContainer.cs
Log Message:
NMS - Add support for ISessionAwareMessageListener
Index: SimpleMessageListenerContainer.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net.Integration/projects/Spring.Messaging.Nms/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/SimpleMessageListenerContainer.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SimpleMessageListenerContainer.cs 10 Oct 2007 21:03:03 -0000 1.2
--- SimpleMessageListenerContainer.cs 27 Feb 2008 16:53:44 -0000 1.3
***************
*** 58,62 ****
//TODO TaskExectuor abstraction would go here...
! SimpleMessageListener listener = new SimpleMessageListener(this, session);
consumer.Listener += new NMS.MessageListener(listener.OnMessage);
return consumer;
--- 58,62 ----
//TODO TaskExectuor abstraction would go here...
! SimpleMessageListener listener = new SimpleMessageListener(this, session);
consumer.Listener += new NMS.MessageListener(listener.OnMessage);
return consumer;
Index: AbstractMessageListenerContainer.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net.Integration/projects/Spring.Messaging.Nms/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/AbstractMessageListenerContainer.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AbstractMessageListenerContainer.cs 2 Mar 2007 23:25:18 -0000 1.1
--- AbstractMessageListenerContainer.cs 27 Feb 2008 16:53:44 -0000 1.2
***************
*** 380,384 ****
protected virtual void DoInvokeListener(ISessionAwareMessageListener listener, ISession session, IMessage message)
{
! logger.Warn("DoInvokeListener.ISessionAwareMessageListener not implemented");
}
--- 380,414 ----
protected virtual void DoInvokeListener(ISessionAwareMessageListener listener, ISession session, IMessage message)
{
! IConnection conToClose = null;
! ISession sessionToClose = null;
! try
! {
! ISession sessionToUse = session;
! if (!ExposeListenerSession)
! {
! //We need to expose a separate Session.
! conToClose = CreateConnection();
! sessionToClose = CreateSession(conToClose);
! sessionToUse = sessionToClose;
! }
! // Actually invoke the message listener
! if (logger.IsDebugEnabled)
! {
! logger.Debug("Invoking listener with message of type [" + message.GetType() +
! "] and session [" + sessionToUse + "]");
! }
! listener.OnMessage(message, sessionToUse);
! if (sessionToUse != session)
! {
! if (sessionToUse.Transacted)
! {
! NmsUtils.CommitIfNecessary(sessionToUse);
! }
! }
! } finally
! {
! NmsUtils.CloseSession(sessionToClose);
! NmsUtils.CloseConnection(conToClose);
! }
}
|