diff --git a/src/Spring/Spring.Messaging/Messaging/Listener/SimpleMessageListenerContainer.cs b/src/Spring/Spring.Messaging/Messaging/Listener/SimpleMessageListenerContainer.cs
deleted file mode 100644
index 73b00e4e..00000000
--- a/src/Spring/Spring.Messaging/Messaging/Listener/SimpleMessageListenerContainer.cs
+++ /dev/null
@@ -1,229 +0,0 @@
-#region License
-
-/*
- * Copyright 2002-2008 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#endregion
-
-
-using System;
-using System.Messaging;
-using System.Threading;
-using Common.Logging;
-
-namespace Spring.Messaging.Listener
-{
- public class SimpleMessageListenerContainer : AbstractMessageListenerContainer
- {
- #region Logging Definition
-
- private static readonly ILog LOG = LogManager.GetLogger(typeof (SimpleMessageListenerContainer));
-
- private Thread dispatcherThread;
-
- protected ManualResetEvent stopEvent = new ManualResetEvent(false);
-
- private IExceptionHandler exceptionHandler;
-
- private MessageQueue messageQueue;
-
- public MessageQueue MessageQueue
- {
- get { return messageQueue; }
- set { messageQueue = value; }
- }
-
- public IExceptionHandler ExceptionHandler
- {
- get { return exceptionHandler; }
- set { exceptionHandler = value; }
- }
-
- #endregion
-
- protected override void DoInitialize()
- {
- messageQueue = ApplicationContext.GetObject(MessageQueueObjectName, typeof (MessageQueue)) as MessageQueue;
- }
-
- ///
- /// Unsubscribe for messaging events and closethe queue
- ///
- protected override void DoShutdown()
- {
- CloseQueueHandle(MessageQueue);
- if (dispatcherThread != null)
- {
- LOG.Debug("Waiting to join dispatcher thread.");
- dispatcherThread.Join();
- dispatcherThread = null;
- LOG.Debug("Dispatcher thread terminated.");
- }
- }
-
- ///
- /// Re-initializes this container's consumers, if not initialized already.
- ///
- protected override void DoStart()
- {
- base.DoStart();
- stopEvent = new ManualResetEvent(false);
- dispatcherThread = new Thread(new ThreadStart(StartListening));
- dispatcherThread.Start();
- }
-
- ///
- /// Stops the container from listening to message events.
- ///
- public override void DoStop()
- {
- base.DoStop();
- CloseQueueHandle(MessageQueue);
- stopEvent.Set();
- if (dispatcherThread != null)
- {
- LOG.Debug("Waiting to join dispatcher thread.");
- dispatcherThread.Join();
- dispatcherThread = null;
- LOG.Debug("Dispatcher thread terminated.");
- }
- }
-
- ///
- /// Starts listening off the queue.
- ///
- protected virtual void StartListening()
- {
- if (Running)
- {
- try
- {
- IAsyncResult asynchResult = MessageQueue.BeginReceive();
- LOG.Debug("WaitAny");
- int firedWaitHandle = WaitHandle.WaitAny(new WaitHandle[] {asynchResult.AsyncWaitHandle, stopEvent});
- if (firedWaitHandle == 0)
- {
- ReceiveCompleted(asynchResult);
- }
- else
- {
- //Do the endreceive?
- return;
- }
- }
- catch (Exception ex)
- {
- LOG.Error(
- "Exception executing DefaultMessageQueue.BeginReceive. Reinvoking after recovery interval [" +
- RecoveryTimeSpan + "]", ex);
- Thread.Sleep(RecoveryTimeSpan);
- StartListening();
- }
- }
- }
-
- protected virtual void ReceiveCompleted(IAsyncResult asyncResult)
- {
- Message message;
-
- #region Receive Message
-
- try
- {
- LOG.Debug("ReceiveCompleted called.");
- // Get reference to the queue.
-
- // End the asynchronous receive operation.
- message = MessageQueue.EndReceive(asyncResult);
- }
- catch (MessageQueueException ex)
- {
- if (ex.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout)
- {
- if (LOG.IsTraceEnabled)
- {
- LOG.Trace("IOTimeout: Message to receive was already processed by another thread.");
- }
- }
- else
- {
- // A real issue in receiving the message
- LOG.Error("Error receiving message from DefaultMessageQueue = [" + MessageQueue.QueueName + "]");
- Thread.Sleep(RecoveryTimeSpan);
- //InvokeReceiveExceptionHandler(ex);?
- }
- MessageQueue.Close();
- StartListening();
- return;
- }
-
- #endregion
-
- if (message == null)
- {
- LOG.Error("Message recieved is null");
- StartListening();
- return;
- }
-
- try
- {
- bool queued = ThreadPool.QueueUserWorkItem(new WaitCallback(ExecuteListener), message);
-
- #region Could not enqueue
-
- if (!queued)
- {
- LOG.Warn("Could not queue work item into thread pool. Retrying.");
- Thread.Sleep(RecoveryTimeSpan);
- }
-
- #endregion
- }
- catch (Exception e)
- {
- LOG.Error("Error enqueue message in thread pool DefaultMessageQueue = [" + MessageQueue.QueueName + "]", e);
- Thread.Sleep(RecoveryTimeSpan);
- }
- finally
- {
- StartListening();
- }
- }
-
- protected virtual void ExecuteListener(object state)
- {
- Message message = state as Message;
- try
- {
- DoExecuteListener(message);
- }
- catch (Exception e)
- {
- HandleListenerException(e, message);
- }
- }
-
- private void HandleListenerException(Exception e, Message message)
- {
- IExceptionHandler exceptionHandler = ExceptionHandler;
- if (exceptionHandler != null)
- {
- exceptionHandler.OnException(e, message);
- }
- }
- }
-}
\ No newline at end of file