You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/07/21 11:08:30 UTC

svn commit: r424238 - in /incubator/activemq/branches/activemq-4.0/activemq-dotnet/src: main/csharp/ActiveMQ/MessageConsumer.cs main/csharp/CommonAssemblyInfo.cs test/csharp/CommonAssemblyInfo.cs test/csharp/NMS/AsyncConsumeTest.cs

Author: jstrachan
Date: Fri Jul 21 02:08:29 2006
New Revision: 424238

URL: http://svn.apache.org/viewvc?rev=424238&view=rev
Log:
backporting the r424237 patch from Matthew Xie. For background see: http://www.nabble.com/Message-recieved-but-can%27t-removed-from-the-amq-server-problem-tf1964193.html#a5429771


Modified:
    incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/ActiveMQ/MessageConsumer.cs
    incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/CommonAssemblyInfo.cs
    incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/CommonAssemblyInfo.cs
    incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/NMS/AsyncConsumeTest.cs

Modified: incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/ActiveMQ/MessageConsumer.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/ActiveMQ/MessageConsumer.cs?rev=424238&r1=424237&r2=424238&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/ActiveMQ/MessageConsumer.cs (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/ActiveMQ/MessageConsumer.cs Fri Jul 21 02:08:29 2006
@@ -127,7 +127,9 @@
                 IMessage message = dispatcher.DequeueNoWait();
                 if (message != null)
                 {
-                    Listener(message);
+                   //here we add the code that if do acknowledge action.
+                   message = AutoAcknowledge(message);
+                   Listener(message);
                 }
                 else
                 {

Modified: incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/CommonAssemblyInfo.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/CommonAssemblyInfo.cs?rev=424238&r1=424237&r2=424238&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/CommonAssemblyInfo.cs (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/main/csharp/CommonAssemblyInfo.cs Fri Jul 21 02:08:29 2006
@@ -22,6 +22,6 @@
 [assembly: AssemblyCopyrightAttribute("Copyright (C) 2005-2006 Apache Software Foundation")]
 [assembly: AssemblyTrademarkAttribute("")]
 [assembly: AssemblyCultureAttribute("")]
-[assembly: AssemblyVersionAttribute("4.0.2266.0")]
+[assembly: AssemblyVersionAttribute("4.0.2393.0")]
 [assembly: AssemblyInformationalVersionAttribute("4.0")]
 

Modified: incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/CommonAssemblyInfo.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/CommonAssemblyInfo.cs?rev=424238&r1=424237&r2=424238&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/CommonAssemblyInfo.cs (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/CommonAssemblyInfo.cs Fri Jul 21 02:08:29 2006
@@ -22,6 +22,6 @@
 [assembly: AssemblyCopyrightAttribute("Copyright (C) 2005-2006 Apache Software Foundation")]
 [assembly: AssemblyTrademarkAttribute("")]
 [assembly: AssemblyCultureAttribute("")]
-[assembly: AssemblyVersionAttribute("4.0.2266.0")]
+[assembly: AssemblyVersionAttribute("4.0.2393.0")]
 [assembly: AssemblyInformationalVersionAttribute("4.0")]
 

Modified: incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/NMS/AsyncConsumeTest.cs
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/NMS/AsyncConsumeTest.cs?rev=424238&r1=424237&r2=424238&view=diff
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/NMS/AsyncConsumeTest.cs (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-dotnet/src/test/csharp/NMS/AsyncConsumeTest.cs Fri Jul 21 02:08:29 2006
@@ -21,71 +21,95 @@
 
 
 
-namespace NMS
-{
-	[TestFixture]
-    public class AsyncConsumeTest : JMSTestSupport
-    {
-        protected Object semaphore = new Object();
-        protected bool received;
-        
-		[SetUp]
-        override public void SetUp()
+namespace NMS {
+        [ TestFixture ]
+        public class AsyncConsumeTest : JMSTestSupport
         {
-			base.SetUp();
-        }
-		
-        [TearDown]
-        override public void TearDown()
-        {
-			base.TearDown();
-        }
-		
-        [Test]
-        public void TestAsynchronousConsume()
-        {
-			
-			// lets create an async consumer
-			// START SNIPPET: demo
-			IMessageConsumer consumer = Session.CreateConsumer(this.Destination);
-			consumer.Listener += new MessageListener(OnMessage);
-			// END SNIPPET: demo
-			
-			// now lets send a message
-			IMessageProducer producer = CreateProducer();
-			IMessage request = CreateMessage();
-			request.NMSCorrelationID = "abc";
-			request.NMSType = "Test";
-			producer.Send(request);
-			
-			WaitForMessageToArrive();
-            
-        }
-        
-        protected void OnMessage(IMessage message)
-        {
-            Console.WriteLine("Received message: " + message);
-            lock (semaphore)
-            {
-                received = true;
-                Monitor.PulseAll(semaphore);
-            }
-            
-        }
-        
-        protected void WaitForMessageToArrive()
-        {
-            lock (semaphore)
-            {
-                if (!received)
+                protected Object semaphore = new Object();
+                protected bool received;
+
+                [ SetUp ]
+                override public void SetUp()
                 {
-                    Monitor.Wait(semaphore, receiveTimeout);
+                        base.SetUp();
                 }
-				Assert.AreEqual(true, received, "Should have received a message by now!");
-			}
-        }
-        
-    }
-}
 
+                [ TearDown ]
+                override public void TearDown()
+                {
+                        base.TearDown();
+                }
 
+                [ Test ]
+                public void TestAsynchronousConsume()
+                {
+
+                        // lets create an async consumer
+                        // START SNIPPET: demo
+                        IMessageConsumer consumer = Session.CreateConsumer(this.Destination);
+                        consumer.Listener += new MessageListener(OnMessage);
+                        // END SNIPPET: demo
+
+                        // now lets send a message
+                        IMessageProducer producer = CreateProducer();
+                        IMessage request = CreateMessage();
+                        request.NMSCorrelationID = "abc";
+                        request.NMSType = "Test";
+                        producer.Send(request);
+
+                        WaitForMessageToArrive();
+                }
+
+                [ Test ]
+                public void textMessageSRExample()
+                {
+                        using (IConnection connection = Factory.CreateConnection())
+                        {
+                                AcknowledgementMode acknowledgementMode = AcknowledgementMode.AutoAcknowledge;
+                                ISession session = connection.CreateSession(acknowledgementMode);
+
+                                IDestination destination = session.GetQueue("FOO.BAR");
+
+                                // lets create a consumer and producer
+                                IMessageConsumer consumer = session.CreateConsumer(destination);
+                                consumer.Listener += new MessageListener(OnMessage);
+
+                                IMessageProducer producer = session.CreateProducer(destination);
+                                producer.Persistent = true;
+
+                                // lets send a message
+                                ITextMessage request = session.CreateTextMessage(
+                                        "HelloWorld!");
+                                request.NMSCorrelationID = "abc";
+                                request.Properties["JMSXGroupID"] = "cheese";
+                                request.Properties["myHeader"] = "James";
+
+                                producer.Send(request);
+
+                                WaitForMessageToArrive();
+                        }
+                }
+
+                protected void OnMessage(IMessage message)
+                {
+                        Console.WriteLine("Received message: " + message);
+                        lock (semaphore)
+                        {
+                                received = true;
+                                Monitor.PulseAll(semaphore);
+                        }
+                }
+
+                protected void WaitForMessageToArrive()
+                {
+                        lock (semaphore)
+                        {
+                                if (!received)
+                                {
+                                        Monitor.Wait(semaphore, receiveTimeout);
+                                }
+                                Assert.AreEqual(true, received, "Should have received a message by now!");
+                        }
+                }
+        }
+}