activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jgo...@apache.org
Subject svn commit: r1033315 - in /activemq/activemq-dotnet: Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ Apache.NMS.ActiveMQ/trunk/src/test/csharp/ Apache.NMS/trunk/src/test/csharp/
Date Wed, 10 Nov 2010 01:22:20 GMT
Author: jgomes
Date: Wed Nov 10 01:22:19 2010
New Revision: 1033315

URL: http://svn.apache.org/viewvc?rev=1033315&view=rev
Log:
Add Clone() override that will copy the MessagePropertyIntercepter object.
Fixes [AMQNET-292]. (See https://issues.apache.org/activemq/browse/AMQNET-292)

Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ActiveMQMessage.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageProducerTest.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ActiveMQMessage.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ActiveMQMessage.cs?rev=1033315&r1=1033314&r2=1033315&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ActiveMQMessage.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Commands/ActiveMQMessage.cs
Wed Nov 10 01:22:19 2010
@@ -56,6 +56,14 @@ namespace Apache.NMS.ActiveMQ.Commands
 			return ID_ACTIVEMQMESSAGE;
 		}
 
+		public override object Clone()
+		{
+			ActiveMQMessage cloneMessage = (ActiveMQMessage) base.Clone();
+
+			cloneMessage.propertyHelper = new MessagePropertyIntercepter(cloneMessage, cloneMessage.properties,
this.ReadOnlyProperties) { AllowByteArrays = false };
+			return cloneMessage;
+		}
+
         public override bool Equals(object that)
         {
             if(that is ActiveMQMessage)

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs?rev=1033315&r1=1033314&r2=1033315&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
Wed Nov 10 01:22:19 2010
@@ -106,7 +106,7 @@ namespace Apache.NMS.ActiveMQ.State
 					return sessions[id];
 				#if DEBUG
 				}
-				catch(System.Collections.Generic.KeyNotFoundException ex)
+				catch(System.Collections.Generic.KeyNotFoundException)
 				{
 					// Useful for dignosing missing session ids
 					string sessionList = string.Empty;

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageProducerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageProducerTest.cs?rev=1033315&r1=1033314&r2=1033315&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageProducerTest.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageProducerTest.cs
Wed Nov 10 01:22:19 2010
@@ -59,6 +59,61 @@ namespace Apache.NMS.ActiveMQ.Test
 				}
 			}
 		}
+
+		[Test]
+		public void TestCopyOnSend()
+		{
+			Uri uri = new Uri("mock://localhost:61616?connection.CopyMessageOnSend=true");
+
+			ConnectionFactory factory = new ConnectionFactory(uri);
+			using(IConnection connection = factory.CreateConnection())
+			using(ISession session = connection.CreateSession())
+			{
+				IDestination destination = session.GetTopic("Test");
+				using(IMessageProducer producer = session.CreateProducer(destination))
+				{
+					ITextMessage message = session.CreateTextMessage();
+
+					for(int i = 0; i < 10; ++i)
+					{
+						message.Properties["TribbleName"] = "Tribble" + i.ToString();
+						message.Text = "The Trouble with Tribbles - " + i.ToString();
+						producer.Send(message);
+					}
+				}
+			}
+		}
+
+		[Test]
+		public void TestNoCopyOnSend()
+		{
+			Uri uri = new Uri("mock://localhost:61616?connection.CopyMessageOnSend=false");
+
+			ConnectionFactory factory = new ConnectionFactory(uri);
+			using(IConnection connection = factory.CreateConnection())
+			using(ISession session = connection.CreateSession())
+			{
+				IDestination destination = session.GetTopic("Test");
+				using(IMessageProducer producer = session.CreateProducer(destination))
+				{
+					ITextMessage message = session.CreateTextMessage();
+
+					for(int i = 0; i < 10; ++i)
+					{
+						try
+						{
+							message.Properties["TribbleName"] = "Tribble" + i.ToString();
+							message.Text = "The Trouble with Tribbles - " + i.ToString();
+							producer.Send(message);
+						}
+						catch(MessageNotWriteableException)
+						{
+							Assert.Greater(i, 0);
+							Assert.Less(i, 10);
+						}
+					}
+				}
+			}
+		}
 	}
 }
-

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs?rev=1033315&r1=1033314&r2=1033315&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs Wed Nov 10 01:22:19
2010
@@ -161,7 +161,8 @@ namespace Apache.NMS.Test
         public void TestDoChangeSentMessage(
             [Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
                 AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
-            AcknowledgementMode ackMode)
+            AcknowledgementMode ackMode,
+			[Values(true, false)] bool doClear)
         {
             using(IConnection connection = CreateConnection())
             {
@@ -183,8 +184,11 @@ namespace Apache.NMS.Test
 
                             producer.Send(message);
 
-                            message.ClearBody();
-                            message.ClearProperties();
+							if(doClear)
+							{
+								message.ClearBody();
+								message.ClearProperties();
+							}
                         }
 
                         if(ackMode == AcknowledgementMode.Transactional)



Mime
View raw message