You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2016/01/06 03:19:57 UTC

svn commit: r1723221 [11/11] - in /activemq/activemq-dotnet/Apache.NMS.XMS/trunk: ./ keyfile/ src/ src/main/ src/main/csharp/ src/main/csharp/Util/ src/main/ndoc/ src/main/sandcastle/ src/test/ src/test/csharp/ src/test/csharp/Commands/

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSBytesMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSBytesMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSBytesMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSBytesMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,51 @@
+/*
+ * 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 Apache.NMS.Util;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSBytesMessageTest : BytesMessageTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSBytesMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void SendReceiveBytesMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.SendReceiveBytesMessage(deliveryMode, DEFAULT_TEST_QUEUE);
+		}
+
+        [Test]
+        public void SendReceiveBytesMessageContent(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+			base.SendReceiveBytesMessageContent(deliveryMode, DEFAULT_TEST_QUEUE);
+        }
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConnectionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConnectionTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConnectionTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConnectionTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,104 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSConnectionTest : ConnectionTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+		protected static string DEFAULT_TEST_TOPIC = "defaultTestTopic";
+
+		public XMSConnectionTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[SetUp]
+		public override void SetUp()
+		{
+			base.SetUp();
+		}
+	
+		[TearDown]
+		public override void TearDown()
+		{
+			base.TearDown();
+		}
+	
+		/// <summary>
+		/// Verify that it is possible to create multiple connections to the broker.
+		/// There was a bug in the connection factory which set the clientId member which made
+		/// it impossible to create an additional connection.
+		/// </summary>
+		[Test]
+		public override void TestTwoConnections()
+		{
+			base.TestTwoConnections();
+		}
+	
+		[Test]
+		public void TestCreateAndDisposeWithConsumer(
+			[Values(true, false)]
+			bool disposeConsumer)
+		{
+			base.TestCreateAndDisposeWithConsumer(disposeConsumer, DEFAULT_TEST_QUEUE);
+		}
+	
+		[Test]
+		public void TestCreateAndDisposeWithProducer(
+			[Values(true, false)]
+			bool disposeProducer)
+		{
+			base.TestCreateAndDisposeWithProducer(disposeProducer, DEFAULT_TEST_QUEUE);
+		}
+	
+		[Test]
+		public void TestStartAfterSend(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode,
+			[Values(DestinationType.Queue, DestinationType.Topic)]
+			DestinationType destinationType)
+		{
+			base.TestStartAfterSend(deliveryMode, destinationType,
+				destinationType == DestinationType.Queue ? DEFAULT_TEST_QUEUE : DEFAULT_TEST_TOPIC);
+		}
+
+		/// <summary>
+		/// Tests if the consumer receives the messages that were sent before the
+		/// connection was started.
+		/// </summary>
+		[Test]
+		public void TestStoppedConsumerHoldsMessagesTillStarted()
+		{
+			base.TestStoppedConsumerHoldsMessagesTillStarted(DEFAULT_TEST_TOPIC);
+		}
+	
+		/// <summary>
+		/// Tests if the consumer is able to receive messages eveb when the
+		/// connecction restarts multiple times.
+		/// </summary>
+		[Test]
+		public void TestMultipleConnectionStops()
+		{
+			base.TestMultipleConnectionStops(DEFAULT_TEST_TOPIC);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConsumerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConsumerTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConsumerTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSConsumerTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,153 @@
+/*
+ * 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 System.Threading;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSConsumerTest : ConsumerTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+		protected static string DEFAULT_TEST_TOPIC = "defaultTestTopic";
+
+		public XMSConsumerTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+// The .NET CF does not have the ability to interrupt threads, so this test is impossible.
+#if !NETCF
+		[Test]
+		public override void TestNoTimeoutConsumer(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			base.TestNoTimeoutConsumer(ackMode);
+		}
+
+		[Test]
+		public override void TestSyncReceiveConsumerClose(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			base.TestSyncReceiveConsumerClose(ackMode);
+		}
+
+		[Test]
+		public override void TestDoChangeSentMessage(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode,
+			[Values(true, false)] bool doClear)
+		{
+			base.TestDoChangeSentMessage(ackMode, doClear);
+		}
+
+		[Test]
+		public override void TestConsumerReceiveBeforeMessageDispatched(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			base.TestConsumerReceiveBeforeMessageDispatched(ackMode);
+		}
+
+		[Test]
+		public void TestDontStart(
+			[Values(MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode,
+			[Values(DestinationType.Queue, DestinationType.Topic)]
+			DestinationType destinationType)
+		{
+			base.TestDontStart(deliveryMode, destinationType,
+				destinationType == DestinationType.Queue ? DEFAULT_TEST_QUEUE : DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestSendReceiveTransacted(
+			[Values(MsgDeliveryMode.NonPersistent, MsgDeliveryMode.Persistent)]
+			MsgDeliveryMode deliveryMode,
+			[Values(DestinationType.Queue, DestinationType.Topic, DestinationType.TemporaryQueue, DestinationType.TemporaryTopic)]
+			DestinationType destinationType)
+		{
+			string testDestinationRef;
+			switch(destinationType)
+			{
+			case DestinationType.Queue: testDestinationRef = DEFAULT_TEST_QUEUE; break;
+			case DestinationType.Topic: testDestinationRef = DEFAULT_TEST_TOPIC; break;
+			default:                    testDestinationRef = "";                 break;
+			}
+
+			base.TestSendReceiveTransacted(deliveryMode, destinationType, testDestinationRef);
+		}
+
+		[Test]
+		public void TestAckedMessageAreConsumed()
+		{
+			base.TestAckedMessageAreConsumed(DEFAULT_TEST_QUEUE);
+		}
+
+		[Test]
+		public void TestLastMessageAcked()
+		{
+			base.TestLastMessageAcked(DEFAULT_TEST_QUEUE);
+		}
+
+		[Test]
+		public void TestUnAckedMessageAreNotConsumedOnSessionClose()
+		{
+			base.TestUnAckedMessageAreNotConsumedOnSessionClose(DEFAULT_TEST_QUEUE);
+		}
+
+		[Test]
+		public void TestAsyncAckedMessageAreConsumed()
+		{
+			base.TestAsyncAckedMessageAreConsumed(DEFAULT_TEST_QUEUE);
+		}
+
+		[Test]
+		public void TestAsyncUnAckedMessageAreNotConsumedOnSessionClose()
+		{
+			base.TestAsyncUnAckedMessageAreNotConsumedOnSessionClose(DEFAULT_TEST_QUEUE);
+		}
+
+		[Test]
+		public override void TestAddRemoveAsnycMessageListener()
+		{
+			base.TestAddRemoveAsnycMessageListener();
+		}
+
+		[Test]
+		public override void TestReceiveNoWait(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode,
+			[Values(MsgDeliveryMode.NonPersistent, MsgDeliveryMode.Persistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestReceiveNoWait(ackMode, deliveryMode);
+		}
+
+#endif
+
+    }
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSDurableTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSDurableTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSDurableTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSDurableTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,71 @@
+/*
+ * 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 Apache.NMS.Util;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSDurableTest : DurableTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+		protected static string DEFAULT_TEST_TOPIC = "defaultTestTopic";
+		protected static string DURABLE_TEST_TOPIC = "durableConsumerTestTopic";
+
+		public XMSDurableTest()
+			: base(new XMSTestSupport())
+		{
+		}
+		
+		[SetUp]
+		public override void SetUp()
+		{
+			base.SetUp();
+		}
+
+		[Test]
+		public void TestSendWhileClosed(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			base.TestSendWhileClosed(ackMode, DEFAULT_TEST_TOPIC);
+	    }		
+		
+		[Test]
+		public void TestDurableConsumerSelectorChange(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			base.TestDurableConsumerSelectorChange(ackMode, DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestDurableConsumer(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge,
+				AcknowledgementMode.DupsOkAcknowledge, AcknowledgementMode.Transactional)]
+			AcknowledgementMode ackMode)
+		{
+			string testDurableTopicURI = GetDestinationURI(DestinationType.Topic, DURABLE_TEST_TOPIC);
+
+			base.TestDurableConsumer(ackMode, testDurableTopicURI); 
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSForeignMessageTransformationTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSForeignMessageTransformationTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSForeignMessageTransformationTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSForeignMessageTransformationTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,75 @@
+/*
+ * 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 Apache.NMS.Util;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+    [TestFixture]
+    public class XMSForeignMessageTransformationTest : ForeignMessageTransformationTest
+    {
+		protected static string DEFAULT_TEST_TOPIC = "defaultTestTopic";
+
+		public XMSForeignMessageTransformationTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void TestSendReceiveForeignMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveForeignMessage(deliveryMode, DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestSendReceiveForeignTextMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveForeignTextMessage(deliveryMode, DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestSendReceiveForeignBytesMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveForeignBytesMessage(deliveryMode, DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestSendReceiveForeignMapMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveForeignMapMessage(deliveryMode, DEFAULT_TEST_TOPIC);
+		}
+
+		[Test]
+		public void TestSendReceiveForeignStreamMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveForeignStreamMessage(deliveryMode, DEFAULT_TEST_TOPIC);
+		}
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMapMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMapMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMapMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMapMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,49 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+    [TestFixture]
+    public class XMSMapMessageTest : MapMessageTest
+    {
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSMapMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+        [Test]
+        public void TestSendReceiveMapMessage(
+            [Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+            MsgDeliveryMode deliveryMode)
+        {
+            base.TestSendReceiveMapMessage(deliveryMode, DEFAULT_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestSendReceiveNestedMapMessage(
+            [Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+            MsgDeliveryMode deliveryMode)
+        {
+            base.TestSendReceiveNestedMapMessage(deliveryMode, DEFAULT_TEST_QUEUE);
+        }
+    }
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageSelectorTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageSelectorTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageSelectorTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageSelectorTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,60 @@
+/*
+ * 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 Apache.NMS.Util;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	[Category("LongRunning")]
+	public class XMSMessageSelectorTest : MessageSelectorTest
+	{
+		protected const string SELECTOR_TEST_QUEUE = "messageSelectorTestQueue";
+		protected const string SELECTOR_TEST_TOPIC = "messageSelectorTestTopic";
+
+		public XMSMessageSelectorTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public override void TestFilterIgnoredMessages(
+			[Values(SELECTOR_TEST_QUEUE, SELECTOR_TEST_TOPIC)]
+			string testDestinationRef)
+		{
+			string testDestinationURI = GetDestinationURI(
+				testDestinationRef == SELECTOR_TEST_QUEUE ? DestinationType.Queue : DestinationType.Topic,
+				testDestinationRef);
+
+			base.TestFilterIgnoredMessages(testDestinationURI);
+		}
+
+		[Test]
+		public override void TestFilterIgnoredMessagesSlowConsumer(
+			[Values(SELECTOR_TEST_QUEUE, SELECTOR_TEST_TOPIC)]
+			string testDestinationRef)
+		{
+			string testDestinationURI = GetDestinationURI(
+				testDestinationRef == SELECTOR_TEST_QUEUE ? DestinationType.Queue : DestinationType.Topic,
+				testDestinationRef);
+
+			base.TestFilterIgnoredMessagesSlowConsumer(testDestinationURI);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,42 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSMessageTest : MessageTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void TestSendReceiveMessageProperties(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveMessageProperties(deliveryMode, DEFAULT_TEST_QUEUE);
+		}
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTransformerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTransformerTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTransformerTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSMessageTransformerTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,48 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSMessageTransformerTest : MessageTransformerTest
+	{
+		public XMSMessageTransformerTest()
+			: base(new XMSTestSupport())
+		{
+		}
+				
+		[Test]
+		public override void TestProducerTransformer(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestProducerTransformer(deliveryMode);
+		}
+		
+		[Test]
+		public override void TestConsumerTransformer(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestConsumerTransformer(deliveryMode);
+		}
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSNMSPropertyTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSNMSPropertyTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSNMSPropertyTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSNMSPropertyTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,41 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSNMSPropertyTest : NMSPropertyTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSNMSPropertyTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void TestSendReceiveNMSProperties(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveNMSProperties(deliveryMode, DEFAULT_TEST_QUEUE);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSProducerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSProducerTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSProducerTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSProducerTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,49 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSProducerTest : ProducerTest
+	{
+		public XMSProducerTest()
+			: base(new NMSTestSupport())
+		{
+		}
+
+        [Test]
+        public override void TestProducerSendToNullDestinationWithoutDefault()
+        {
+            base.TestProducerSendToNullDestinationWithoutDefault();
+        }
+
+        [Test]
+        public override void TestProducerSendToNullDestinationWithDefault()
+        {
+            base.TestProducerSendToNullDestinationWithDefault();
+        }
+
+		[Test]
+		public override void TestProducerSendToNonDefaultDestination()
+		{
+            base.TestProducerSendToNonDefaultDestination();
+        }
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSRequestResponseTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSRequestResponseTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSRequestResponseTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSRequestResponseTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,41 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSRequestResponseTest : RequestResponseTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSRequestResponseTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		[Category("RequestResponse")]		
+		public void TestRequestResponseMessaging()
+		{
+			base.TestRequestResponseMessaging(DEFAULT_TEST_QUEUE);
+		}
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSStreamMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSStreamMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSStreamMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSStreamMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,41 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSStreamMessageTest : StreamMessageTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSStreamMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void TestSendReceiveStreamMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveStreamMessage(deliveryMode, DEFAULT_TEST_QUEUE);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationDeletionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationDeletionTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationDeletionTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationDeletionTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,55 @@
+/*
+ * 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 Apache.NMS.Util;
+using Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSTempDestinationDeletionTest : TempDestinationDeletionTest
+	{
+		protected const string DELETION_TEST_QUEUE = "deletionTestQueue";
+		protected const string DELETION_TEST_TOPIC = "deletionTestTopic";
+		protected const string DELETION_TEST_TEMP_QUEUE = "deletionTestTempQueue";
+		protected const string DELETION_TEST_TEMP_TOPIC = "deletionTestTempTopic";
+
+		public XMSTempDestinationDeletionTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public override void TestTempDestinationDeletion(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode,
+			[Values(DELETION_TEST_QUEUE, DELETION_TEST_TOPIC, DELETION_TEST_TEMP_QUEUE, DELETION_TEST_TEMP_TOPIC)]
+			string testDestinationRef)
+		{
+            DestinationType type;
+			if     (testDestinationRef == DELETION_TEST_QUEUE)      type = DestinationType.Queue;
+			else if(testDestinationRef == DELETION_TEST_TOPIC)      type = DestinationType.Topic;
+			else if(testDestinationRef == DELETION_TEST_TEMP_QUEUE) type = DestinationType.TemporaryQueue;
+			else                                                    type = DestinationType.TemporaryTopic;
+
+			string testDestinationURI = GetDestinationURI(type, testDestinationRef);
+
+			base.TestTempDestinationDeletion(deliveryMode, testDestinationURI);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTempDestinationTest.cs Wed Jan  6 02:19:56 2016
@@ -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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+    [TestFixture]
+    public class XMSTempDestinationTest : TempDestinationTest
+    {
+		public XMSTempDestinationTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+        [SetUp]
+        public override void SetUp()
+        {
+            base.SetUp();
+        }
+
+        [TearDown]
+        public override void TearDown()
+        {
+            base.TearDown();
+        }
+
+        [Test]
+        public override void TestTempDestOnlyConsumedByLocalConn()
+        {
+            base.TestTempDestOnlyConsumedByLocalConn();
+        }
+
+        [Test]
+        public override void TestTempQueueHoldsMessagesWithConsumers()
+        {
+            base.TestTempQueueHoldsMessagesWithConsumers();
+        }
+
+        [Test]
+        public override void TestTempQueueHoldsMessagesWithoutConsumers()
+        {
+            base.TestTempQueueHoldsMessagesWithoutConsumers();
+        }
+
+        [Test]
+        public override void TestTmpQueueWorksUnderLoad()
+        {
+            base.TestTmpQueueWorksUnderLoad();
+        }
+    }
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTestSupport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTestSupport.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTestSupport.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTestSupport.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,132 @@
+/*
+ * 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 System.Xml;
+using Apache.NMS.Test;
+using Apache.NMS.Util;
+using NUnit.Framework;
+
+using Apache.NMS.XMS;
+
+namespace Apache.NMS.XMS.Test
+{
+	/// <summary>
+	/// Useful class for test cases support.
+	/// </summary>
+	public class XMSTestSupport : NMSTestSupport
+	{
+		/// <summary>
+		/// Gets the environment variable name for the configuration file path.
+		/// </summary>
+		/// <returns>Environment variable name</returns>
+		public override string GetConfigEnvVarName()
+		{
+			return "XMSTESTCONFIGPATH";
+		}
+
+		/// <summary>
+		/// Gets the default name for the configuration filename.
+		/// </summary>
+		/// <returns>Default name of the configuration filename</returns>
+		public override string GetDefaultConfigFileName()
+		{
+			return "xmsprovider-test.config";
+		}
+
+		/// <summary>
+		/// Gets a new client id.
+		/// </summary>
+		/// <returns>Client id</returns>
+		public override string GetTestClientId()
+		{
+			return base.GetTestClientId();
+			//return null;
+		}
+
+		/// <summary>
+		/// Create a new connection to the broker.
+		/// </summary>
+		/// <param name="newClientId">Client ID of the new connection.</param>
+		/// <returns>New connection</returns>
+		public override IConnection CreateConnection(string newClientId)
+		{
+			IConnection newConnection;
+
+			// IBM.XMS throws an exception if attempting to set the ClientId
+			// on the Connection after it was created.
+			// In a multithreaded environment, it would probably be best to
+			// create as many factories as client ids, rather than change the
+			// client id on the factory before creating a connection. Plus it
+			// wouldn't be a good idea to protect the code section through a
+			// semaphore, since connections creation takes a long time to be
+			// performed.
+			if(newClientId != null)
+			{
+				((Apache.NMS.XMS.ConnectionFactory)Factory).ClientId = newClientId;
+			}
+
+			if(this.userName == null)
+			{
+				newConnection = Factory.CreateConnection();
+			}
+			else
+			{
+				newConnection = Factory.CreateConnection(userName, passWord);
+			}
+
+			Assert.IsNotNull(newConnection, "Connection not created");
+
+			return newConnection;
+		}
+
+		ISession cleanupSession = null;
+		/// <summary>
+		/// Gets a clear destination. This will try to delete an existing
+		/// destination and re-create it.
+		/// </summary>
+		/// <param name="session">Session</param>
+		/// <param name="destinationURI">Destination URI</param>
+		/// <returns>Clear destination</returns>
+		public override IDestination GetClearDestination(ISession session,
+			string destinationURI)
+		{
+			IDestination destination = SessionUtil.GetDestination(session, destinationURI);
+
+			// Destination exists. Can't use the given session to clean up:
+			// once used synchronously, IBM XMS doesn't allow the session to be
+			// used asynchronously. Therefore, we create a specific synchronous
+			// session to perform cleanups.
+			if(cleanupSession == null)
+			{
+				IConnection cleanupConnection = CreateConnection("Cleanup");
+				cleanupSession = cleanupConnection.CreateSession();
+			}
+
+			IDestination cleanupDestination = SessionUtil.GetDestination(cleanupSession, destinationURI);
+
+			using(IMessageConsumer consumer = cleanupSession.CreateConsumer(destination))
+			{
+				while(consumer.Receive(TimeSpan.FromMilliseconds(750)) != null)
+				{
+				}
+			}
+
+			return destination;
+		}
+
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTextMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTextMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTextMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTextMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,41 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSTextMessageTest : TextMessageTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSTextMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+		[Test]
+		public void TestSendReceiveTextMessage(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+			base.TestSendReceiveTextMessage(deliveryMode, DEFAULT_TEST_QUEUE);
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTransactionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTransactionTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTransactionTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSTransactionTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,115 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+    [TestFixture]
+    public class XMSTransactionTest : TransactionTest
+    {
+        protected static string TRANSACTION_TEST_QUEUE = "transactionTestQueue";
+
+		public XMSTransactionTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+        [Test]
+        public void TestSendRollback(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestSendRollback(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestSendSessionClose(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestSendSessionClose(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestReceiveRollback(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestReceiveRollback(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+
+        [Test]
+        public void TestReceiveTwoThenRollback(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestReceiveTwoThenRollback(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestSendCommitNonTransaction(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge)]
+			AcknowledgementMode ackMode,
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestSendCommitNonTransaction(ackMode, deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestReceiveCommitNonTransaction(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge)]
+			AcknowledgementMode ackMode,
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+            base.TestReceiveCommitNonTransaction(ackMode, deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestReceiveRollbackNonTransaction(
+			[Values(AcknowledgementMode.AutoAcknowledge, AcknowledgementMode.ClientAcknowledge)]
+			AcknowledgementMode ackMode,
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+		{
+            base.TestReceiveRollbackNonTransaction(ackMode, deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestRedispatchOfRolledbackTx(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestRedispatchOfRolledbackTx(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+
+        [Test]
+        public void TestRedispatchOfUncommittedTx(
+			[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
+			MsgDeliveryMode deliveryMode)
+        {
+            base.TestRedispatchOfUncommittedTx(deliveryMode, TRANSACTION_TEST_QUEUE);
+        }
+    }
+}
+
+

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSXmlMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSXmlMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSXmlMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XMSXmlMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,52 @@
+/*
+ * 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 Apache.NMS.Test;
+using NUnit.Framework;
+
+namespace Apache.NMS.XMS.Test
+{
+	[TestFixture]
+	public class XMSXmlMessageTest : XmlMessageTest
+	{
+		protected static string DEFAULT_TEST_QUEUE = "defaultTestQueue";
+
+		public XMSXmlMessageTest()
+			: base(new XMSTestSupport())
+		{
+		}
+
+#if NET_3_5 || MONO
+
+		[Test]
+		public void TestSendReceiveXmlMessage_Net35()
+		{
+			base.TestSendReceiveXmlMessage_Net35(DEFAULT_TEST_QUEUE);
+		}
+
+#else
+
+		// Test the obsolete API versions until they are completely removed.
+		[Test]
+		public void SendReceiveXmlMessage()
+		{
+			base.TestSendReceiveXmlMessage(DEFAULT_TEST_QUEUE);
+		}
+
+#endif
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XmlMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XmlMessageTest.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XmlMessageTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/XmlMessageTest.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,186 @@
+/*
+ * 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 Apache.NMS.Util;
+using NUnit.Framework;
+
+namespace Apache.NMS.Test
+{
+	// For ease of cross-platform exchange of information, you might generate objects from
+	// an XSD file using XSDObjectGen. However, C# has built-in support for serializing.
+	// All of the XML attributes that are commented out are optional, but give you fine-grained
+	// control over the serialized format if you need it.
+
+	// [Serializable]
+	public enum CheckType
+	{
+		// [XmlEnum(Name = "message")]
+		message,
+		// [XmlEnum(Name = "command")]
+		command,
+		// [XmlEnum(Name = "response")]
+		response
+	}
+
+	// [XmlRoot(ElementName = "NMSTestXmlType1", IsNullable = false), Serializable]
+	public class NMSTestXmlType1
+	{
+		// [XmlElement(ElementName = "crcCheck", IsNullable = false, DataType = "int")]
+		public int crcCheck;
+
+		// [XmlElement(Type = typeof(CheckType), ElementName = "checkType", IsNullable = false)]
+		public CheckType checkType;
+
+		public NMSTestXmlType1()
+		{
+			crcCheck = 0;
+			checkType = CheckType.message;
+		}
+	}
+
+	// [XmlRoot(ElementName = "NMSTestXmlType2", IsNullable = false), Serializable]
+	public class NMSTestXmlType2
+	{
+		// [XmlElement(ElementName = "stringCheck", IsNullable = false, DataType = "string")]
+		public string stringCheck;
+
+		public NMSTestXmlType2()
+		{
+			stringCheck = String.Empty;
+		}
+	}
+
+	//[TestFixture]
+	public class XmlMessageTest : NMSTest
+	{
+		public XmlMessageTest(NMSTestSupport testSupport)
+			: base(testSupport)
+		{
+		}
+
+#if NET_3_5 || MONO
+
+		//[Test]
+		public virtual void TestSendReceiveXmlMessage_Net35(string testQueueRef)
+		{
+			using(IConnection connection = CreateConnection(GetTestClientId()))
+			{
+				connection.Start();
+				using(ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
+				{
+					IDestination destination = GetClearDestination(session, DestinationType.Queue, testQueueRef);
+					using(IMessageConsumer consumer = session.CreateConsumer(destination))
+					using(IMessageProducer producer = session.CreateProducer(destination))
+					{
+						NMSTestXmlType1 srcIntObject = new NMSTestXmlType1();
+						srcIntObject.crcCheck = 0xbadf00d;
+						srcIntObject.checkType = CheckType.command;
+						producer.Send(srcIntObject);
+
+						NMSTestXmlType2 srcStringObject = new NMSTestXmlType2();
+						srcStringObject.stringCheck = "BadFood";
+						producer.Send(srcStringObject);
+
+						// Demonstrate the ability to generically handle multiple object types
+						// sent to the same consumer.  If only one object type is ever sent to
+						// the destination, then a simple inline cast is all that is necessary
+						// when calling the NMSConvert.FromXmlMessage() function.
+
+						for(int index = 0; index < 2; index++)
+						{
+							object receivedObject = consumer.Receive(receiveTimeout).ToObject();
+							Assert.IsNotNull(receivedObject, "Failed to retrieve XML message object.");
+
+							if(receivedObject is NMSTestXmlType1)
+							{
+								NMSTestXmlType1 destObject = (NMSTestXmlType1) receivedObject;
+								Assert.AreEqual(srcIntObject.crcCheck, destObject.crcCheck, "CRC integer mis-match.");
+								Assert.AreEqual(srcIntObject.checkType, destObject.checkType, "Check type mis-match.");
+							}
+							else if(receivedObject is NMSTestXmlType2)
+							{
+								NMSTestXmlType2 destObject = (NMSTestXmlType2) receivedObject;
+								Assert.AreEqual(srcStringObject.stringCheck, destObject.stringCheck, "CRC string mis-match.");
+							}
+							else
+							{
+								Assert.Fail("Invalid object type.");
+							}
+						}
+					}
+				}
+			}
+		}
+
+#else
+
+		// Test the obsolete API versions until they are completely removed.
+		//[Test]
+		public virtual void TestSendReceiveXmlMessage(string testQueueRef)
+		{
+			using(IConnection connection = CreateConnection(GetTestClientId()))
+			{
+				connection.Start();
+				using(ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
+				{
+					IDestination destination = GetClearDestination(session, DestinationType.Queue, testQueueRef);
+					using(IMessageConsumer consumer = session.CreateConsumer(destination))
+					using(IMessageProducer producer = session.CreateProducer(destination))
+					{
+						NMSTestXmlType1 srcIntObject = new NMSTestXmlType1();
+						srcIntObject.crcCheck = 0xbadf00d;
+						srcIntObject.checkType = CheckType.command;
+						producer.Send(NMSConvert.ToXmlMessage(session, srcIntObject));
+
+						NMSTestXmlType2 srcStringObject = new NMSTestXmlType2();
+						srcStringObject.stringCheck = "BadFood";
+						producer.Send(NMSConvert.ToXmlMessage(session, srcStringObject));
+
+						// Demonstrate the ability to generically handle multiple object types
+						// sent to the same consumer.  If only one object type is ever sent to
+						// the destination, then a simple inline cast is all that is necessary
+						// when calling the NMSConvert.FromXmlMessage() function.
+
+						for(int index = 0; index < 2; index++)
+						{
+							object receivedObject = NMSConvert.FromXmlMessage(consumer.Receive(receiveTimeout));
+							Assert.IsNotNull(receivedObject, "Failed to retrieve XML message object.");
+
+							if(receivedObject is NMSTestXmlType1)
+							{
+								NMSTestXmlType1 destObject = (NMSTestXmlType1) receivedObject;
+								Assert.AreEqual(srcIntObject.crcCheck, destObject.crcCheck, "CRC integer mis-match.");
+								Assert.AreEqual(srcIntObject.checkType, destObject.checkType, "Check type mis-match.");
+							}
+							else if(receivedObject is NMSTestXmlType2)
+							{
+								NMSTestXmlType2 destObject = (NMSTestXmlType2) receivedObject;
+								Assert.AreEqual(srcStringObject.stringCheck, destObject.stringCheck, "CRC string mis-match.");
+							}
+							else
+							{
+								Assert.Fail("Invalid object type.");
+							}
+						}
+					}
+				}
+			}
+		}
+
+#endif
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms-test.csproj?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms-test.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms-test.csproj Wed Jan  6 02:19:56 2016
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{EB943C69-2C9B-45E7-B95B-FB916E7057ED}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Apache.NMS.XMS.Test</RootNamespace>
+    <AssemblyName>Apache.NMS.XMS.Test</AssemblyName>
+    <WarningLevel>4</WarningLevel>
+    <StartupObject>
+    </StartupObject>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>
+    <SccProjectName>Svn</SccProjectName>
+    <SccLocalPath>Svn</SccLocalPath>
+    <SccAuxPath>Svn</SccAuxPath>
+    <SccProvider>SubversionScc</SccProvider>
+    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>build\net-4.0\debug\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;NET,NET_4_0</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <NoWarn>3016</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <Optimize>true</Optimize>
+    <OutputPath>build\net-4.0\release\</OutputPath>
+    <DefineConstants>TRACE;NET,NET_4_0</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <DebugType>full</DebugType>
+    <NoWarn>3016</NoWarn>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Apache.NMS">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>
+    </Reference>
+    <Reference Include="Apache.NMS.Test">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.Test.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\NUnit\net-4.0\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />
+    <Compile Include="src\test\csharp\AsyncConsumeTest.cs" />
+    <Compile Include="src\test\csharp\BadConsumeTest.cs" />
+    <Compile Include="src\test\csharp\BytesMessageTest.cs" />
+    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />
+    <Compile Include="src\test\csharp\ConnectionTest.cs" />
+    <Compile Include="src\test\csharp\ConsumerTest.cs" />
+    <Compile Include="src\test\csharp\DurableTest.cs" />
+    <Compile Include="src\test\csharp\EndianBinaryReaderTest.cs" />
+    <Compile Include="src\test\csharp\EndianBinaryWriterTest.cs" />
+    <Compile Include="src\test\csharp\EndianTest.cs" />
+    <Compile Include="src\test\csharp\ForeignMessageTransformationTest.cs" />
+    <Compile Include="src\test\csharp\MapMessageTest.cs" />
+    <Compile Include="src\test\csharp\MessageSelectorTest.cs" />
+    <Compile Include="src\test\csharp\MessageTest.cs" />
+    <Compile Include="src\test\csharp\MessageTransformerTest.cs" />
+    <Compile Include="src\test\csharp\NMSPropertyTest.cs" />
+    <Compile Include="src\test\csharp\NMSTest.cs" />
+    <Compile Include="src\test\csharp\NMSTestSupport.cs" />
+    <Compile Include="src\test\csharp\NMSTracer.cs" />
+    <Compile Include="src\test\csharp\PrimitiveMapTest.cs" />
+    <Compile Include="src\test\csharp\ProducerTest.cs" />
+    <Compile Include="src\test\csharp\RedeliveryPolicyTest.cs" />
+    <Compile Include="src\test\csharp\RequestResponseTest.cs" />
+    <Compile Include="src\test\csharp\StreamMessageTest.cs" />
+    <Compile Include="src\test\csharp\TempDestinationDeletionTest.cs" />
+    <Compile Include="src\test\csharp\TempDestinationTest.cs" />
+    <Compile Include="src\test\csharp\TextMessageTest.cs" />
+    <Compile Include="src\test\csharp\TransactionTest.cs" />
+    <Compile Include="src\test\csharp\XmlMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSAsyncConsumeTest.cs" />
+    <Compile Include="src\test\csharp\XMSBadConsumeTest.cs" />
+    <Compile Include="src\test\csharp\XMSBytesMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSConnectionTest.cs" />
+    <Compile Include="src\test\csharp\XMSConsumerTest.cs" />
+    <Compile Include="src\test\csharp\XMSDurableTest.cs" />
+    <Compile Include="src\test\csharp\XMSForeignMessageTransformationTest.cs" />
+    <Compile Include="src\test\csharp\XMSMapMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSMessageSelectorTest.cs" />
+    <Compile Include="src\test\csharp\XMSMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSMessageTransformerTest.cs" />
+    <Compile Include="src\test\csharp\XMSNMSPropertyTest.cs" />
+    <Compile Include="src\test\csharp\XMSProducerTest.cs" />
+    <Compile Include="src\test\csharp\XMSRequestResponseTest.cs" />
+    <Compile Include="src\test\csharp\XMSStreamMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSTempDestinationDeletionTest.cs" />
+    <Compile Include="src\test\csharp\XMSTempDestinationTest.cs" />
+    <Compile Include="src\test\csharp\XMSTestSupport.cs" />
+    <Compile Include="src\test\csharp\XMSTextMessageTest.cs" />
+    <Compile Include="src\test\csharp\XMSTransactionTest.cs" />
+    <Compile Include="src\test\csharp\XMSXmlMessageTest.cs" />
+    <Compile Include="src\test\csharp\Commands\BytesMessage.cs" />
+    <Compile Include="src\test\csharp\Commands\Destination.cs" />
+    <Compile Include="src\test\csharp\Commands\MapMessage.cs" />
+    <Compile Include="src\test\csharp\Commands\Message.cs" />
+    <Compile Include="src\test\csharp\Commands\ObjectMessage.cs" />
+    <Compile Include="src\test\csharp\Commands\Queue.cs" />
+    <Compile Include="src\test\csharp\Commands\StreamMessage.cs" />
+    <Compile Include="src\test\csharp\Commands\TempDestination.cs" />
+    <Compile Include="src\test\csharp\Commands\TempQueue.cs" />
+    <Compile Include="src\test\csharp\Commands\TempTopic.cs" />
+    <Compile Include="src\test\csharp\Commands\TextMessage.cs" />
+    <Compile Include="src\test\csharp\Commands\Topic.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Apache.NMS.XMS.Test.nunit">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="keyfile\XMSKey.snk" />
+    <Content Include="xmsprovider-test.config">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      <SubType>Designer</SubType>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="vs2013-xms.csproj">
+      <Project>{2af5ebb5-9873-4b35-a8fc-8b6e74242767}</Project>
+      <Name>vs2013-xms</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+  <PropertyGroup>
+    <PostBuildEvent>cd $(ProjectDir)
+nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.csproj?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.csproj Wed Jan  6 02:19:56 2016
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Apache.NMS.XMS</RootNamespace>
+    <AssemblyName>Apache.NMS.XMS</AssemblyName>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>
+    <SccProjectName>Svn</SccProjectName>
+    <SccLocalPath>Svn</SccLocalPath>
+    <SccAuxPath>Svn</SccAuxPath>
+    <SccProvider>SubversionScc</SccProvider>
+    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>build\net-4.0\debug\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;NET,NET_4_0</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>build\net-4.0\release\</OutputPath>
+    <DefineConstants>TRACE;NET,NET_4_0</DefineConstants>
+    <ErrorReport>none</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <DebugSymbols>true</DebugSymbols>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Apache.NMS">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+    <Reference Include="IBM.XMS">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\IBM.XMS\net-4.0\IBM.XMS.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="src\main\csharp\BytesMessage.cs" />
+    <Compile Include="src\main\csharp\CommonAssemblyInfo.cs" />
+    <Compile Include="src\main\csharp\Connection.cs" />
+    <Compile Include="src\main\csharp\ConnectionFactory.cs" />
+    <Compile Include="src\main\csharp\ConnectionMetaData.cs" />
+    <Compile Include="src\main\csharp\Destination.cs" />
+    <Compile Include="src\main\csharp\InitialContext.cs" />
+    <Compile Include="src\main\csharp\MapMessage.cs" />
+    <Compile Include="src\main\csharp\Message.cs" />
+    <Compile Include="src\main\csharp\MessageConsumer.cs" />
+    <Compile Include="src\main\csharp\MessageProducer.cs" />
+    <Compile Include="src\main\csharp\MessageProperties.cs" />
+    <Compile Include="src\main\csharp\ObjectMessage.cs" />
+    <Compile Include="src\main\csharp\Queue.cs" />
+    <Compile Include="src\main\csharp\QueueBrowser.cs" />
+    <Compile Include="src\main\csharp\Session.cs" />
+    <Compile Include="src\main\csharp\StreamMessage.cs" />
+    <Compile Include="src\main\csharp\TemporaryQueue.cs" />
+    <Compile Include="src\main\csharp\TemporaryTopic.cs" />
+    <Compile Include="src\main\csharp\TextMessage.cs" />
+    <Compile Include="src\main\csharp\Topic.cs" />
+    <Compile Include="src\main\csharp\Util\Dispatcher.cs" />
+    <Compile Include="src\main\csharp\Util\ExceptionUtil.cs" />
+    <Compile Include="src\main\csharp\Util\IntrospectionSupport.cs" />
+    <Compile Include="src\main\csharp\Util\UriAttributeAttribute.cs" />
+    <Compile Include="src\main\csharp\Util\XMSConvert.cs" />
+    <Compile Include="src\main\csharp\Util\XMSEnum.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="keyfile\XMSKey.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <PropertyGroup>
+    <PreBuildEvent>cd $(ProjectDir)
+nant -nologo download-vendor -D:vendor.build.config=$(ConfigurationName) -D:vendor.build.framework=net-4.0</PreBuildEvent>
+    <PostBuildEvent>cd $(ProjectDir)
+nant -nologo -q install-all -D:compile.skip=true</PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.sln
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.sln?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.sln (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/vs2013-xms.sln Wed Jan  6 02:19:56 2016
@@ -0,0 +1,32 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2013-xms", "vs2013-xms.csproj", "{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2013-xms-test", "vs2013-xms-test.csproj", "{EB943C69-2C9B-45E7-B95B-FB916E7057ED}"
+EndProject
+Global
+	GlobalSection(SubversionScc) = preSolution
+		Svn-Managed = True
+		Manager = AnkhSVN - Subversion Support for Visual Studio
+	EndGlobalSection
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2AF5EBB5-9873-4B35-A8FC-8B6E74242767}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EB943C69-2C9B-45E7-B95B-FB916E7057ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EB943C69-2C9B-45E7-B95B-FB916E7057ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EB943C69-2C9B-45E7-B95B-FB916E7057ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EB943C69-2C9B-45E7-B95B-FB916E7057ED}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/xmsprovider-test.config
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/xmsprovider-test.config?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/xmsprovider-test.config (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/xmsprovider-test.config Wed Jan  6 02:19:56 2016
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+* 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.
+-->
+<configuration>
+	<testURI value="xms:wmq://localhost:1414">
+		<userName value="guest"/>
+		<passWord value="guest"/>
+		<defaultTestQueue value="queue://TEST.QUEUE"/>
+		<defaultTestTopic value="topic://TEST.TOPIC"/>
+		<durableConsumerTestTopic value="topic://TEST.DURABLE.CONSUMER.TOPIC"/>
+		<messageSelectorTestQueue value="queue://TEST.SELECTOR.MESSAGE.QUEUE"/>
+		<messageSelectorTestTopic value="topic://TEST.SELECTOR.MESSAGE.TOPIC"/>
+		<deletionTestQueue value="queue://TEST.DELETION.QUEUE"/>
+		<deletionTestTopic value="topic://TEST.DELETION.TOPIC"/>
+		<deletionTestTempQueue value="temp-queue://TEST.DELETION.TEMP.QUEUE"/>
+		<deletionTestTempTopic value="temp-topic://TEST.DELETION.TEMP.TOPIC"/>
+		<transactionTestQueue value="queue://TEST.TRANSACTION.QUEUE"/>
+	</testURI>
+</configuration>