You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2010/05/04 17:52:23 UTC
svn commit: r940919 - in /activemq/activemq-dotnet/Apache.NMS.Stomp/trunk:
./ src/main/csharp/Commands/ src/main/csharp/Protocol/ src/test/csharp/
src/test/csharp/Commands/
Author: tabish
Date: Tue May 4 15:52:22 2010
New Revision: 940919
URL: http://svn.apache.org/viewvc?rev=940919&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQNET-248
Fix issue with MessageID not getting converted to a String correctly.
Added:
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs (with props)
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs (with props)
Modified:
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/BaseDataStructure.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ConsumerId.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/Message.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/MessageId.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ProducerId.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompHelper.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompWireFormat.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/MessageTest.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/StompHelperTest.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp-test.csproj
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp.csproj
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/BaseDataStructure.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/BaseDataStructure.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/BaseDataStructure.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/BaseDataStructure.cs Tue May 4 15:52:22 2010
@@ -16,6 +16,7 @@
*/
using System;
+using System.Text;
using Apache.NMS.Stomp.Protocol;
namespace Apache.NMS.Stomp.Commands
@@ -82,5 +83,6 @@ namespace Apache.NMS.Stomp.Commands
// if we had any.
return this.MemberwiseClone();
}
+
}
}
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ConsumerId.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ConsumerId.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ConsumerId.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ConsumerId.cs Tue May 4 15:52:22 2010
@@ -24,6 +24,8 @@ namespace Apache.NMS.Stomp.Commands
{
public const byte ID_CONSUMERID = 122;
+ private string key;
+
private SessionId parentId = null;
string connectionId;
@@ -34,6 +36,43 @@ namespace Apache.NMS.Stomp.Commands
{
}
+ public ConsumerId( string consumerKey )
+ {
+ this.key = consumerKey;
+
+ // We give the Connection ID the key for now so there's at least some
+ // data stored into the Id.
+ this.ConnectionId = consumerKey;
+
+ int idx = consumerKey.LastIndexOf(':');
+ if( idx >= 0 )
+ {
+ try
+ {
+ this.Value = Int32.Parse(consumerKey.Substring(idx + 1));
+ consumerKey = consumerKey.Substring(0, idx);
+ idx = consumerKey.LastIndexOf(':');
+ if (idx >= 0)
+ {
+ try
+ {
+ this.SessionId = Int32.Parse(consumerKey.Substring(idx + 1));
+ consumerKey = consumerKey.Substring(0, idx);
+ }
+ catch(Exception ex)
+ {
+ Tracer.Debug(ex.Message);
+ }
+ }
+ this.ConnectionId = consumerKey;
+ }
+ catch(Exception ex)
+ {
+ Tracer.Debug(ex.Message);
+ }
+ }
+ }
+
public ConsumerId( SessionId sessionId, long consumerId )
{
this.connectionId = sessionId.ConnectionId;
@@ -60,7 +99,12 @@ namespace Apache.NMS.Stomp.Commands
///
public override string ToString()
{
- return ConnectionId + ":" + SessionId + ":" + Value;
+ if( key == null )
+ {
+ this.key = ConnectionId + ":" + SessionId + ":" + Value;
+ }
+
+ return key;
}
public SessionId ParentId
@@ -114,6 +158,11 @@ namespace Apache.NMS.Stomp.Commands
public virtual bool Equals(ConsumerId that)
{
+ if(this.key != null && that.key != null)
+ {
+ return this.key.Equals(that.key);
+ }
+
if(!Equals(this.ConnectionId, that.ConnectionId))
{
return false;
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/Message.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/Message.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/Message.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/Message.cs Tue May 4 15:52:22 2010
@@ -208,9 +208,7 @@ namespace Apache.NMS.Stomp.Commands
{
if(null != MessageId)
{
- return MessageId.ProducerId.ConnectionId + ":" +
- MessageId.ProducerId.SessionId + ":" +
- MessageId.ProducerId.Value;
+ return MessageId.ToString();
}
return String.Empty;
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/MessageId.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/MessageId.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/MessageId.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/MessageId.cs Tue May 4 15:52:22 2010
@@ -62,7 +62,7 @@ namespace Apache.NMS.Stomp.Commands
///
public override string ToString()
{
- if(key == null)
+ if( key == null )
{
key = producerId.ToString() + ":" + producerSequenceId;
}
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ProducerId.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ProducerId.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ProducerId.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Commands/ProducerId.cs Tue May 4 15:52:22 2010
@@ -24,6 +24,8 @@ namespace Apache.NMS.Stomp.Commands
{
private SessionId parentId;
+ private string key = null;
+
string connectionId;
long value;
long sessionId;
@@ -41,13 +43,30 @@ namespace Apache.NMS.Stomp.Commands
public ProducerId(string producerKey)
{
- // Parse off the producerId
- int p = producerKey.LastIndexOf(":");
- if(p >= 0)
- {
- value = Int64.Parse(producerKey.Substring(p + 1));
- producerKey = producerKey.Substring(0, p);
+ // Store the original.
+ this.key = producerKey;
+
+ // Try and get back the AMQ version of the data.
+ int idx = producerKey.LastIndexOf(':');
+ if(idx >= 0)
+ {
+ try
+ {
+ this.Value = Int32.Parse(producerKey.Substring(idx + 1));
+ producerKey = producerKey.Substring(0, idx);
+ idx = producerKey.LastIndexOf(':');
+ if(idx >= 0)
+ {
+ this.SessionId = Int32.Parse(producerKey.Substring(idx + 1));
+ producerKey = producerKey.Substring(0, idx);
+ }
+ }
+ catch(Exception ex)
+ {
+ Tracer.Debug(ex.Message);
+ }
}
+ this.ConnectionId = producerKey;
}
///
@@ -69,7 +88,12 @@ namespace Apache.NMS.Stomp.Commands
///
public override string ToString()
{
- return ConnectionId + ":" + SessionId + ":" + Value;
+ if( this.key == null )
+ {
+ this.key = ConnectionId + ":" + SessionId + ":" + Value;
+ }
+
+ return this.key;
}
public SessionId ParentId
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompHelper.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompHelper.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompHelper.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompHelper.cs Tue May 4 15:52:22 2010
@@ -26,30 +26,6 @@ namespace Apache.NMS.Stomp.Protocol
/// </summary>
public class StompHelper
{
- private static int ParseInt(string text)
- {
- StringBuilder sbtext = new StringBuilder();
-
- for(int idx = 0; idx < text.Length; idx++)
- {
- if(char.IsNumber(text, idx) || text[idx] == '-')
- {
- sbtext.Append(text[idx]);
- }
- else
- {
- break;
- }
- }
-
- if(sbtext.Length > 0)
- {
- return Int32.Parse(sbtext.ToString());
- }
-
- return 0;
- }
-
public static Destination ToDestination(string text)
{
if(text == null)
@@ -134,135 +110,6 @@ namespace Apache.NMS.Stomp.Protocol
return "client";
}
}
-
- public static string ToStomp(ConsumerId id)
- {
- return id.ConnectionId + ":" + id.SessionId + ":" + id.Value;
- }
-
- public static ConsumerId ToConsumerId(string text)
- {
- if(text == null)
- {
- return null;
- }
-
- ConsumerId answer = new ConsumerId();
- int idx = text.LastIndexOf(':');
- if (idx >= 0)
- {
- try
- {
- answer.Value = ParseInt(text.Substring(idx + 1));
- text = text.Substring(0, idx);
- idx = text.LastIndexOf(':');
- if (idx >= 0)
- {
- try
- {
- answer.SessionId = ParseInt(text.Substring(idx + 1));
- text = text.Substring(0, idx);
- }
- catch(Exception ex)
- {
- Tracer.Debug(ex.Message);
- }
- }
- }
- catch(Exception ex)
- {
- Tracer.Debug(ex.Message);
- }
- }
- answer.ConnectionId = text;
- return answer;
- }
-
- public static string ToStomp(ProducerId id)
- {
- StringBuilder producerBuilder = new StringBuilder();
-
- producerBuilder.Append(id.ConnectionId);
- producerBuilder.Append(":");
- producerBuilder.Append(id.SessionId);
- producerBuilder.Append(":");
- producerBuilder.Append(id.Value);
-
- return producerBuilder.ToString();
- }
-
- public static ProducerId ToProducerId(string text)
- {
- if(text == null)
- {
- return null;
- }
-
- ProducerId answer = new ProducerId();
- int idx = text.LastIndexOf(':');
- if(idx >= 0)
- {
- try
- {
- answer.Value = ParseInt(text.Substring(idx + 1));
- text = text.Substring(0, idx);
- idx = text.LastIndexOf(':');
- if(idx >= 0)
- {
- answer.SessionId = ParseInt(text.Substring(idx + 1));
- text = text.Substring(0, idx);
- }
- }
- catch(Exception ex)
- {
- Tracer.Debug(ex.Message);
- }
- }
- answer.ConnectionId = text;
- return answer;
- }
-
- public static string ToStomp(MessageId id)
- {
- StringBuilder messageBuilder = new StringBuilder();
-
- messageBuilder.Append(ToStomp(id.ProducerId));
- messageBuilder.Append(":");
- messageBuilder.Append(id.ProducerSequenceId);
-
- return messageBuilder.ToString();
- }
-
- public static MessageId ToMessageId(string text)
- {
- if(text == null)
- {
- return null;
- }
-
- MessageId answer = new MessageId();
- int idx = text.LastIndexOf(':');
- if (idx >= 0)
- {
- try
- {
- answer.ProducerSequenceId = ParseInt(text.Substring(idx + 1));
- text = text.Substring(0, idx);
- }
- catch(Exception ex)
- {
- Tracer.Debug(ex.Message);
- }
- }
- answer.ProducerId = ToProducerId(text);
-
- return answer;
- }
-
- public static string ToStomp(TransactionId id)
- {
- return id.ConnectionId.Value + ":" + id.Value;
- }
public static bool ToBool(string text, bool defaultValue)
{
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompWireFormat.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompWireFormat.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompWireFormat.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Protocol/StompWireFormat.cs Tue May 4 15:52:22 2010
@@ -216,12 +216,12 @@ namespace Apache.NMS.Stomp.Protocol
message.Type = frame.RemoveProperty("type");
message.Destination = StompHelper.ToDestination(frame.RemoveProperty("destination"));
message.ReplyTo = StompHelper.ToDestination(frame.RemoveProperty("reply-to"));
- message.TargetConsumerId = StompHelper.ToConsumerId(frame.RemoveProperty("subscription"));
+ message.TargetConsumerId = new ConsumerId(frame.RemoveProperty("subscription"));
message.CorrelationId = frame.RemoveProperty("correlation-id");
Tracer.Debug("RECV - Inbound MessageId = " + frame.GetProperty("message-id"));
- message.MessageId = StompHelper.ToMessageId(frame.RemoveProperty("message-id"));
+ message.MessageId = new MessageId(frame.RemoveProperty("message-id"));
message.Persistent = StompHelper.ToBool(frame.RemoveProperty("persistent"), false);
// If it came from NMS.Stomp we added this header to ensure its reported on the
@@ -320,7 +320,7 @@ namespace Apache.NMS.Stomp.Protocol
}
if(command.TransactionId!=null)
{
- frame.SetProperty("transaction", StompHelper.ToStomp(command.TransactionId));
+ frame.SetProperty("transaction", command.TransactionId.ToString());
}
frame.SetProperty("persistent", command.Persistent.ToString().ToLower());
@@ -372,13 +372,13 @@ namespace Apache.NMS.Stomp.Protocol
frame.SetProperty("receipt", "ignore:" + command.CommandId);
}
- frame.SetProperty("message-id", StompHelper.ToStomp(command.LastMessageId));
+ frame.SetProperty("message-id", command.LastMessageId.ToString());
Tracer.Debug("ACK - Outbound MessageId = " + frame.GetProperty("message-id"));
if(command.TransactionId != null)
{
- frame.SetProperty("transaction", StompHelper.ToStomp(command.TransactionId));
+ frame.SetProperty("transaction", command.TransactionId.ToString());
}
frame.ToStream(dataOut);
@@ -415,7 +415,7 @@ namespace Apache.NMS.Stomp.Protocol
}
frame.SetProperty("destination", StompHelper.ToStomp(command.Destination));
- frame.SetProperty("id", StompHelper.ToStomp(command.ConsumerId));
+ frame.SetProperty("id", command.ConsumerId.ToString());
frame.SetProperty("durable-subscriber-name", command.SubscriptionName);
frame.SetProperty("selector", command.Selector);
frame.SetProperty("ack", StompHelper.ToStomp(command.AckMode));
@@ -477,7 +477,7 @@ namespace Apache.NMS.Stomp.Protocol
{
frame.SetProperty("receipt", command.CommandId);
}
- frame.SetProperty("id", StompHelper.ToStomp(consumerId));
+ frame.SetProperty("id", consumerId.ToString() );
frame.ToStream(dataOut);
}
}
@@ -507,7 +507,7 @@ namespace Apache.NMS.Stomp.Protocol
frame.SetProperty("receipt", command.CommandId);
}
- frame.SetProperty("transaction", StompHelper.ToStomp(command.TransactionId));
+ frame.SetProperty("transaction", command.TransactionId.ToString());
frame.ToStream(dataOut);
}
Added: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs?rev=940919&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs Tue May 4 15:52:22 2010
@@ -0,0 +1,67 @@
+// /*
+// * Licensed to the Apache Software Foundation (ASF) under one or more
+// * contributor license agreements. See the NOTICE file distributed with
+// * this work for additional information regarding copyright ownership.
+// * The ASF licenses this file to You 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.
+// */
+//
+
+using System;
+using NUnit.Framework;
+using Apache.NMS.Stomp.Commands;
+
+namespace Apache.NMS.Stomp.Test.Commands
+{
+ [TestFixture()]
+ public class ConsumerIdTest
+ {
+ [Test()]
+ public void TestAmqTypeProcessing()
+ {
+ ConsumerId id = new ConsumerId();
+ id.ConnectionId = "cheese";
+ id.SessionId = 2;
+ id.Value = 3;
+
+ string text = id.ToString();
+ Assert.AreEqual("cheese:2:3", text, "ConsumerId as stomp");
+
+ ConsumerId another = new ConsumerId("abc:5:6");
+ Assert.AreEqual("abc", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(5, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(6, another.Value, "extracting consumerId.Value");
+ }
+
+ [Test()]
+ public void TestNonAmqTypeProcessing()
+ {
+ ConsumerId id = new ConsumerId();
+ id.ConnectionId = "cheese";
+ id.SessionId = 2;
+ id.Value = 3;
+
+ string text = id.ToString();
+ Assert.AreEqual("cheese:2:3", text, "ConsumerId as stomp");
+
+ ConsumerId another = new ConsumerId("abc56");
+ Assert.AreEqual("abc56", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(0, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(0, another.Value, "extracting consumerId.Value");
+
+ another = new ConsumerId("abc:def");
+ Assert.AreEqual("abc:def", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(0, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(0, another.Value, "extracting consumerId.Value");
+ }
+ }
+}
Propchange: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ConsumerIdTest.cs
------------------------------------------------------------------------------
svn:eol-style = native
Added: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs?rev=940919&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs Tue May 4 15:52:22 2010
@@ -0,0 +1,67 @@
+// /*
+// * Licensed to the Apache Software Foundation (ASF) under one or more
+// * contributor license agreements. See the NOTICE file distributed with
+// * this work for additional information regarding copyright ownership.
+// * The ASF licenses this file to You 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.
+// */
+//
+
+using System;
+using NUnit.Framework;
+using Apache.NMS.Stomp.Commands;
+
+namespace Apache.NMS.Stomp.Test.Commands
+{
+ [TestFixture]
+ public class ProducerIdTest
+ {
+ [Test]
+ public void TestAmqTypeProcessing()
+ {
+ ProducerId id = new ProducerId();
+ id.ConnectionId = "cheese";
+ id.SessionId = 2;
+ id.Value = 3;
+
+ string text = id.ToString();
+ Assert.AreEqual("cheese:2:3", text, "ConsumerId as stomp");
+
+ ProducerId another = new ProducerId("abc:5:6");
+ Assert.AreEqual("abc", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(5, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(6, another.Value, "extracting consumerId.Value");
+ }
+
+ [Test]
+ public void TestNonAmqTypeProcessing()
+ {
+ ProducerId id = new ProducerId();
+ id.ConnectionId = "cheese";
+ id.SessionId = 2;
+ id.Value = 3;
+
+ string text = id.ToString();
+ Assert.AreEqual("cheese:2:3", text, "ConsumerId as stomp");
+
+ ProducerId another = new ProducerId("abc56");
+ Assert.AreEqual("abc56", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(0, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(0, another.Value, "extracting consumerId.Value");
+
+ another = new ProducerId("abc:def");
+ Assert.AreEqual("abc:def", another.ConnectionId, "extracting consumerId.ConnectionId");
+ Assert.AreEqual(0, another.SessionId, "extracting consumerId.SessionId");
+ Assert.AreEqual(0, another.Value, "extracting consumerId.Value");
+ }
+ }
+}
Propchange: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/Commands/ProducerIdTest.cs
------------------------------------------------------------------------------
svn:eol-style = native
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/MessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/MessageTest.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/MessageTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/MessageTest.cs Tue May 4 15:52:22 2010
@@ -47,6 +47,45 @@ namespace Apache.NMS.Stomp.Test
[RowTest]
[Row(MsgDeliveryMode.Persistent)]
[Row(MsgDeliveryMode.NonPersistent)]
+ public void SendReceiveMessageIdComparisonTest(MsgDeliveryMode deliveryMode)
+ {
+ using(IConnection connection = CreateConnection(TEST_CLIENT_ID + ":" + new Random().Next()))
+ {
+ connection.Start();
+ using(ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
+ {
+ IDestination destination = SessionUtil.GetDestination(session, DESTINATION_NAME);
+ using(IMessageConsumer consumer = session.CreateConsumer(destination))
+ using(IMessageProducer producer = session.CreateProducer(destination))
+ {
+ producer.DeliveryMode = deliveryMode;
+ producer.RequestTimeout = receiveTimeout;
+ IMessage request1 = session.CreateMessage();
+ IMessage request2 = session.CreateMessage();
+ IMessage request3 = session.CreateMessage();
+
+ producer.Send(request1);
+ producer.Send(request2);
+ producer.Send(request3);
+
+ IMessage message1 = consumer.Receive(receiveTimeout);
+ Assert.IsNotNull(message1, "No message returned!");
+ IMessage message2 = consumer.Receive(receiveTimeout);
+ Assert.IsNotNull(message2, "No message returned!");
+ IMessage message3 = consumer.Receive(receiveTimeout);
+ Assert.IsNotNull(message3, "No message returned!");
+
+ Assert.AreNotEqual(message1.NMSMessageId, message2.NMSMessageId);
+ Assert.AreNotEqual(message1.NMSMessageId, message3.NMSMessageId);
+ Assert.AreNotEqual(message2.NMSMessageId, message3.NMSMessageId);
+ }
+ }
+ }
+ }
+
+ [RowTest]
+ [Row(MsgDeliveryMode.Persistent)]
+ [Row(MsgDeliveryMode.NonPersistent)]
public void SendReceiveMessageProperties(MsgDeliveryMode deliveryMode)
{
using(IConnection connection = CreateConnection(TEST_CLIENT_ID + ":" + new Random().Next()))
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/StompHelperTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/StompHelperTest.cs?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/StompHelperTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/test/csharp/StompHelperTest.cs Tue May 4 15:52:22 2010
@@ -31,10 +31,10 @@ namespace Apache.NMS.Stomp.Test
id.SessionId = 2;
id.Value = 3;
- string text = StompHelper.ToStomp(id);
+ string text = id.ToString();
Assert.AreEqual("cheese:2:3", text, "ConsumerId as stomp");
- ConsumerId another = StompHelper.ToConsumerId("abc:5:6");
+ ConsumerId another = new ConsumerId("abc:5:6");
Assert.AreEqual("abc", another.ConnectionId, "extracting consumerId.ConnectionId");
Assert.AreEqual(5, another.SessionId, "extracting consumerId.SessionId");
Assert.AreEqual(6, another.Value, "extracting consumerId.Value");
@@ -53,10 +53,10 @@ namespace Apache.NMS.Stomp.Test
mid.BrokerSequenceId = 5;
mid.ProducerSequenceId = 6;
- string text = StompHelper.ToStomp(mid);
+ string text = mid.ToString();
Assert.AreEqual("cheese:2:3:6", text, "MessageId as stomp");
- MessageId mid2 = StompHelper.ToMessageId("abc:5:6:7:8");
+ MessageId mid2 = new MessageId("abc:5:6:7:8");
Assert.AreEqual(8, mid2.ProducerSequenceId, "extracting mid2.ProducerSequenceId");
ProducerId another = mid2.ProducerId;
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp-test.csproj?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp-test.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp-test.csproj Tue May 4 15:52:22 2010
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -31,6 +31,7 @@
<BootstrapperEnabled>true</BootstrapperEnabled>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -52,14 +53,6 @@
<DefineConstants>NET,NET_2_0</DefineConstants>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Apache.NMS, Version=1.3.0.1865, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>
- </Reference>
- <Reference Include="Apache.NMS.Test, Version=1.3.0.1865, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.Test.dll</HintPath>
- </Reference>
<Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\NUnit\net-2.0\nunit.framework.dll</HintPath>
@@ -70,6 +63,14 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Xml" />
+ <Reference Include="Apache.NMS, Version=1.3.0.1946, Culture=neutral, PublicKeyToken=82756feee3957618">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>build\mono-2.0\debug\Apache.NMS.dll</HintPath>
+ </Reference>
+ <Reference Include="Apache.NMS.Stomp, Version=1.3.0.1949, Culture=neutral, PublicKeyToken=82756feee3957618">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>build\mono-2.0\debug\Apache.NMS.Stomp.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
@@ -133,5 +134,7 @@
<Compile Include="src\test\csharp\Commands\MapMessageTest.cs" />
<Compile Include="src\test\csharp\Protocol\XmlPrimitiveMapMarshalerTest.cs" />
<Compile Include="src\test\csharp\MapMessageTest.cs" />
+ <Compile Include="src\test\csharp\Commands\ConsumerIdTest.cs" />
+ <Compile Include="src\test\csharp\Commands\ProducerIdTest.cs" />
</ItemGroup>
</Project>
\ No newline at end of file
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp.csproj?rev=940919&r1=940918&r2=940919&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/vs2008-stomp.csproj Tue May 4 15:52:22 2010
@@ -53,12 +53,12 @@
<DefineConstants>TRACE;NET,NET_2_0</DefineConstants>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Apache.NMS, Version=1.3.0.1865, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>lib\Apache.NMS\net-2.0\Apache.NMS.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Xml" />
+ <Reference Include="Apache.NMS, Version=1.3.0.1893, Culture=neutral, PublicKeyToken=82756feee3957618">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>build\mono-2.0\debug\Apache.NMS.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">