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 [6/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/main/csharp/Util/XMSConvert.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSConvert.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSConvert.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSConvert.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,1475 @@
+/*
+ * 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.Collections;
+using IBM.XMS;
+
+namespace Apache.NMS.XMS.Util
+{
+	/// <summary>
+	/// This class implements conversion methods between the IBM XMS and
+	/// the Apache NMS models.
+	/// </summary>
+	public class XMSConvert
+	{
+		#region IBM XMS to Apache NMS objects conversion
+
+		/// <summary>
+		/// Converts an IBM XMS connection interface
+		/// into an NMS connection interface.
+		/// </summary>
+		/// <param name="xmsConnection">IBM XMS connection interface.</param>
+		/// <returns>Apache NMS connection interface.</returns>
+		public static Apache.NMS.IConnection ToNMSConnection(
+			IBM.XMS.IConnection xmsConnection)
+		{
+			return (xmsConnection != null
+				? new Apache.NMS.XMS.Connection(xmsConnection)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS session interface
+		/// into an NMS session interface.
+		/// </summary>
+		/// <param name="xmsSession">IBM XMS session interface.</param>
+		/// <returns>Apache NMS session interface.</returns>
+		public static Apache.NMS.ISession ToNMSSession(
+			IBM.XMS.ISession xmsSession)
+		{
+			return (xmsSession != null
+				? new Apache.NMS.XMS.Session(xmsSession)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS destination interface
+		/// into an NMS destination interface.
+		/// </summary>
+		/// <param name="xmsDestination">XMS destination.</param>
+		/// <returns>Apache NMS destination interface.</returns>
+		public static Apache.NMS.IDestination ToNMSDestination(
+				IBM.XMS.IDestination xmsDestination)
+		{
+			return ToNMSDestination(xmsDestination, false);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS destination interface
+		/// into an NMS destination interface.
+		/// </summary>
+		/// <param name="xmsDestination">XMS destination.</param>
+		/// <param name="isTemporary">Destination is temporary.</param>
+		/// <returns>Apache NMS destination interface.</returns>
+		public static Apache.NMS.IDestination ToNMSDestination(
+				IBM.XMS.IDestination xmsDestination,
+				bool isTemporary)
+		{
+			if(xmsDestination.TypeId == IBM.XMS.DestinationType.Queue)
+			{
+				return (isTemporary ? ToNMSTemporaryQueue(xmsDestination)
+									: ToNMSQueue(xmsDestination));
+			}
+
+			if(xmsDestination.TypeId == IBM.XMS.DestinationType.Topic)
+			{
+				return (isTemporary ? ToNMSTemporaryTopic(xmsDestination)
+									: ToNMSTopic(xmsDestination));
+			}
+
+			return null;
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS queue interface
+		/// into an NMS queue interface.
+		/// </summary>
+		/// <param name="xmsQueue">XMS destination of type
+		/// <c>DestinationType.Queue</c>.</param>
+		/// <returns>Apache NMS queue interface.</returns>
+		public static Apache.NMS.IQueue ToNMSQueue(
+			IBM.XMS.IDestination xmsQueue)
+		{
+			if((xmsQueue != null) &&
+			(xmsQueue.TypeId != IBM.XMS.DestinationType.Queue))
+			{ throw new ArgumentException(
+				"Cannot convert IBM XMS destination to NMS destination: invalid destination type id.",
+				"xmsQueue");
+			}
+			return (xmsQueue != null
+				? new Apache.NMS.XMS.Queue(xmsQueue)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS topic interface
+		/// into an NMS topic interface.
+		/// </summary>
+		/// <param name="xmsTopic">XMS destination of type
+		/// <c>DestinationType.Topic</c>.</param>
+		/// <returns>Apache NMS topic interface.</returns>
+		public static Apache.NMS.ITopic ToNMSTopic(
+			IBM.XMS.IDestination xmsTopic)
+		{
+			if((xmsTopic != null) &&
+			(xmsTopic.TypeId != IBM.XMS.DestinationType.Topic))
+			{ throw new ArgumentException(
+				"Cannot convert IBM XMS destination to NMS destination: invalid destination type id.",
+				"xmsTopic");
+			}
+			return (xmsTopic != null
+				? new Apache.NMS.XMS.Topic(xmsTopic)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS temporary queue interface
+		/// into an NMS temporary queue interface.
+		/// </summary>
+		/// <param name="xmsTemporaryQueue">XMS destination of type
+		/// <c>DestinationType.Queue</c>.</param>
+		/// <returns>Apache NMS temporary queue interface.</returns>
+		// Couldn't find a means to test whether a XMS destination is temporary.
+		public static Apache.NMS.ITemporaryQueue ToNMSTemporaryQueue(
+			IBM.XMS.IDestination xmsTemporaryQueue)
+		{
+			if((xmsTemporaryQueue != null) &&
+			(xmsTemporaryQueue.TypeId != IBM.XMS.DestinationType.Queue))
+			{ throw new ArgumentException(
+				"Cannot convert IBM XMS destination to NMS destination: invalid destination type id.",
+				"xmsTemporaryQueue");
+			}
+			return (xmsTemporaryQueue != null
+				? new Apache.NMS.XMS.TemporaryQueue(xmsTemporaryQueue)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS temporary topic interface
+		/// into an NMS temporary topic interface.
+		/// </summary>
+		/// <param name="xmsTemporaryTopic">XMS destination of type
+		/// <c>DestinationType.Topic</c>.</param>
+		/// <returns>Apache NMS temporary topic interface.</returns>
+		// Couldn't find a means to test whether a XMS destination is temporary.
+		public static Apache.NMS.ITemporaryTopic ToNMSTemporaryTopic(
+			IBM.XMS.IDestination xmsTemporaryTopic)
+		{
+			if((xmsTemporaryTopic != null) &&
+			(xmsTemporaryTopic.TypeId != IBM.XMS.DestinationType.Queue))
+			{ throw new ArgumentException(
+				"Cannot convert IBM XMS destination to NMS destination: invalid destination type id.",
+				"xmsTemporaryTopic");
+			}
+			return (xmsTemporaryTopic != null
+				? new Apache.NMS.XMS.TemporaryTopic(xmsTemporaryTopic)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS message producer interface
+		/// into an NMS message producer interface.
+		/// </summary>
+		/// <param name="session">NMS session.</param>
+		/// <param name="xmsMessageProducer">XMS message producer.</param>
+		/// <returns>Apache NMS message producer interface.</returns>
+		public static Apache.NMS.IMessageProducer ToNMSMessageProducer(
+			Apache.NMS.XMS.Session session,
+			IBM.XMS.IMessageProducer xmsMessageProducer)
+		{
+			return (xmsMessageProducer != null
+				? new Apache.NMS.XMS.MessageProducer(session, xmsMessageProducer)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS message consumer interface
+		/// into an NMS message consumer interface.
+		/// </summary>
+		/// <param name="session">NMS session.</param>
+		/// <param name="xmsMessageConsumer">XMS message consumer.</param>
+		/// <returns>Apache NMS message consumer interface.</returns>
+		public static Apache.NMS.IMessageConsumer ToNMSMessageConsumer(
+			Apache.NMS.XMS.Session session,
+			IBM.XMS.IMessageConsumer xmsMessageConsumer)
+		{
+			return (xmsMessageConsumer != null
+				? new Apache.NMS.XMS.MessageConsumer(session, xmsMessageConsumer)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS queue browser interface
+		/// into an NMS queue browser interface.
+		/// </summary>
+		/// <param name="xmsQueueBrowser">XMS queue browser.</param>
+		/// <returns>Apache NMS queue browser interface.</returns>
+		public static Apache.NMS.IQueueBrowser ToNMSQueueBrowser(
+			IBM.XMS.IQueueBrowser xmsQueueBrowser)
+		{
+			return (xmsQueueBrowser != null
+				? new Apache.NMS.XMS.QueueBrowser(xmsQueueBrowser)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS message
+		/// into an NMS message.
+		/// </summary>
+		/// <param name="xmsMessage">IBM XMS message.</param>
+		/// <returns>NMS message.</returns>
+		public static Apache.NMS.IMessage ToNMSMessage(IBM.XMS.IMessage xmsMessage)
+		{
+			if(xmsMessage is IBM.XMS.ITextMessage)
+			{
+				return ToNMSTextMessage((IBM.XMS.ITextMessage)xmsMessage);
+			}
+
+			if(xmsMessage is IBM.XMS.IBytesMessage)
+			{
+				return ToNMSBytesMessage((IBM.XMS.IBytesMessage)xmsMessage);
+			}
+
+			if(xmsMessage is IBM.XMS.IStreamMessage)
+			{
+				return ToNMSStreamMessage((IBM.XMS.IStreamMessage)xmsMessage);
+			}
+
+			if(xmsMessage is IBM.XMS.IMapMessage)
+			{
+				return ToNMSMapMessage((IBM.XMS.IMapMessage)xmsMessage);
+			}
+
+			if(xmsMessage is IBM.XMS.IObjectMessage)
+			{
+				return ToNMSObjectMessage((IBM.XMS.IObjectMessage)xmsMessage);
+			}
+
+			return (xmsMessage != null
+				? new Apache.NMS.XMS.Message(xmsMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS text message
+		/// into an NMS text message.
+		/// </summary>
+		/// <param name="xmsTextMessage">IBM XMS text message.</param>
+		/// <returns>NMS text message.</returns>
+		public static Apache.NMS.ITextMessage ToNMSTextMessage(
+			IBM.XMS.ITextMessage xmsTextMessage)
+		{
+			return (xmsTextMessage != null
+				? new Apache.NMS.XMS.TextMessage(xmsTextMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS bytes message
+		/// into an NMS bytes message.
+		/// </summary>
+		/// <param name="xmsBytesMessage">IBM XMS bytes message.</param>
+		/// <returns>NMS bytes message.</returns>
+		public static Apache.NMS.IBytesMessage ToNMSBytesMessage(
+			IBM.XMS.IBytesMessage xmsBytesMessage)
+		{
+			return (xmsBytesMessage != null
+				? new Apache.NMS.XMS.BytesMessage(xmsBytesMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS stream message
+		/// into an NMS stream message.
+		/// </summary>
+		/// <param name="xmsStreamMessage">IBM XMS stream message.</param>
+		/// <returns>NMS stream message.</returns>
+		public static Apache.NMS.IStreamMessage ToNMSStreamMessage(
+			IBM.XMS.IStreamMessage xmsStreamMessage)
+		{
+			return (xmsStreamMessage != null
+				? new Apache.NMS.XMS.StreamMessage(xmsStreamMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS map message
+		/// into an NMS map message.
+		/// </summary>
+		/// <param name="xmsMapMessage">IBM XMS map message.</param>
+		/// <returns>NMS map message.</returns>
+		public static Apache.NMS.IMapMessage ToNMSMapMessage(
+			IBM.XMS.IMapMessage xmsMapMessage)
+		{
+			return (xmsMapMessage != null
+				? new Apache.NMS.XMS.MapMessage(xmsMapMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS object message
+		/// into an NMS object message.
+		/// </summary>
+		/// <param name="xmsObjectMessage">IBM XMS object message.</param>
+		/// <returns>NMS object message.</returns>
+		public static Apache.NMS.IObjectMessage ToNMSObjectMessage(
+			IBM.XMS.IObjectMessage xmsObjectMessage)
+		{
+			return (xmsObjectMessage != null
+				? new Apache.NMS.XMS.ObjectMessage(xmsObjectMessage)
+				: null);
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS message
+		/// into an NMS primitive map.
+		/// </summary>
+		/// <param name="xmsMessage">IBM XMS message.</param>
+		/// <returns>NMS primitive map.</returns>
+		public static Apache.NMS.IPrimitiveMap ToMessageProperties(
+			IBM.XMS.IMessage xmsMessage)
+		{
+			return (xmsMessage != null
+				? new Apache.NMS.XMS.MessageProperties(xmsMessage)
+				: null);
+		}
+
+		#endregion
+
+		#region Apache NMS to IBM XMS objects conversion
+
+		/// <summary>
+		/// Converts an NMS destination
+		/// into an IBM XMS destination.
+		/// </summary>
+		/// <param name="nmsDestination">NMS destination.</param>
+		/// <returns>IBM XMS destination.</returns>
+		public static IBM.XMS.IDestination ToXMSDestination(
+			Apache.NMS.IDestination nmsDestination)
+		{
+			if(nmsDestination is Apache.NMS.XMS.Destination)
+			{
+				return ((Apache.NMS.XMS.Destination)nmsDestination).xmsDestination;
+			}
+			return null;
+		}
+
+		#endregion
+
+		#region Property values conversion
+
+		#region Exception handling
+
+		/// <summary>
+		/// Throws a conversion exception.
+		/// </summary>
+		private static void ThrowCantConvertValueException(object value,
+					string conversionMethod)
+		{
+			throw new ArgumentException(string.Format(
+				"Cannot convert {0} using {1}.", value, conversionMethod),
+				conversionMethod);
+		}
+
+		#endregion
+
+		#region Encoding
+
+		/// <summary>
+		/// Converts an XMS encoding key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Encoding ToEncoding(Int32 inputValue)
+		{
+			return (Encoding)inputValue;
+		}
+
+		/// <summary>
+		/// Converts an encoding to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSEncoding(Encoding inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Message Type
+
+		/// <summary>
+		/// Converts an XMS message type key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static MessageType ToMessageType(Int32 inputValue)
+		{
+			return (MessageType)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a message type to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMessageType(MessageType inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Confirm On Arrival
+
+		/// <summary>
+		/// Converts an XMS "confirm on arrival" key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportConfirmOnArrival ToReportConfirmOnArrival(
+			Int32 inputValue)
+		{
+			return (ReportConfirmOnArrival)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "confirm on arrival" to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportConfirmOnArrival(
+			ReportConfirmOnArrival inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Confirm On Delivery
+
+		/// <summary>
+		/// Converts an XMS "confirm on delivery" key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportConfirmOnDelivery ToReportConfirmOnDelivery(
+			Int32 inputValue)
+		{
+			return (ReportConfirmOnDelivery)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "confirm on delivery" to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportConfirmOnDelivery(
+			ReportConfirmOnDelivery inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Exception
+
+		/// <summary>
+		/// Converts an XMS "report exceptions" key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportExceptions ToReportExceptions(
+			Int32 inputValue)
+		{
+			return (ReportExceptions)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "report exceptions" to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportExceptions(
+			ReportExceptions inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Expiration
+
+		/// <summary>
+		/// Converts an XMS "report expiration" key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportExpiration ToReportExpiration(
+			Int32 inputValue)
+		{
+			return (ReportExpiration)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "report expiration" to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportExpiration(
+			ReportExpiration inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Correlation Id
+
+		/// <summary>
+		/// Converts an XMS "report correlation id." key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportCorrelationId ToReportCorrelationId(
+			Int32 inputValue)
+		{
+			return (ReportCorrelationId)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "report correlation id." to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportCorrelationId(
+			ReportCorrelationId inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Report Message Id
+
+		/// <summary>
+		/// Converts an XMS "report message id." key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReportMessageId ToReportMessageId(
+			Int32 inputValue)
+		{
+			return (ReportMessageId)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a "report message id." to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReportMessageId(
+			ReportMessageId inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Asynchronous Exceptions
+
+		/// <summary>
+		/// Converts an XMS asynchronous exceptions handling directive key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static AsynchronousExceptions ToAsynchronousExceptions(
+			Int32 inputValue)
+		{
+			return (AsynchronousExceptions)inputValue;
+		}
+
+		/// <summary>
+		/// Converts an asynchronous exceptions handling directive to the
+		/// equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSAsynchronousExceptions(
+			AsynchronousExceptions inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Connection Type
+
+		/// <summary>
+		/// Converts an XMS connection type key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ConnectionType ToConnectionType(Int32 inputValue)
+		{
+			return (ConnectionType)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a connection type to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSConnectionType(ConnectionType inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Delivery Mode
+
+		/// <summary>
+		/// Converts an XMS delivery mode key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static DeliveryMode ToDeliveryMode(Int32 inputValue)
+		{
+			return (DeliveryMode)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a delivery mode to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSDeliveryMode(DeliveryMode inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Priority
+
+		/// <summary>
+		/// Converts an XMS priority key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Priority ToPriority(Int32 inputValue)
+		{
+			return (Priority)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a priority to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSPriority(Priority inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Connection Protocol (RTT)
+
+		/// <summary>
+		/// Converts an RTT connection protocol key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static RTTConnectionProtocol ToRTTConnectionProtocol(
+			Int32 inputValue)
+		{
+			return (RTTConnectionProtocol)inputValue;
+		}
+
+		/// <summary>
+		/// Converts an RTT connection protocol to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSRTTConnectionProtocol(
+			RTTConnectionProtocol inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Multicast (RTT)
+
+		/// <summary>
+		/// Converts an RTT multicast state key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Multicast ToMulticast(Int32 inputValue)
+		{
+			return (Multicast)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a multicast state to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMulticast(Multicast inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Broker Version (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ broker version key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static BrokerVersion ToBrokerVersion(Int32 inputValue)
+		{
+			return (BrokerVersion)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a broker version to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSBrokerVersion(BrokerVersion inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Reconnect Options (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ reconnect option key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReconnectOptions ToReconnectOptions(Int32 inputValue)
+		{
+			return (ReconnectOptions)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a reconnect option to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReconnectOptions(ReconnectOptions inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Connection Mode (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ connection mode key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ConnectionMode ToConnectionMode(Int32 inputValue)
+		{
+			return (ConnectionMode)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a connection mode to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSConnectionMode(ConnectionMode inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Fail If Quiesce (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ yes/no key to the equivalent boolean.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static bool ToFailIfQuiesce(Int32 inputValue)
+		{
+			switch(inputValue)
+			{
+				case XMSC.WMQ_FIQ_YES: return true;
+				case XMSC.WMQ_FIQ_NO : return false;
+				default:
+					ThrowCantConvertValueException(inputValue, "ToFailIfQuiesce");
+					return false;
+
+			}
+		}
+
+		/// <summary>
+		/// Converts a WMQ boolean to the equivalent XMS yes/no value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSFailIfQuiesce(bool inputValue)
+		{
+			return inputValue ? XMSC.WMQ_FIQ_YES : XMSC.WMQ_FIQ_NO;
+		}
+
+		#endregion
+
+		#region Message Body (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ message body key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static MessageBody ToMessageBody(Int32 inputValue)
+		{
+			return (MessageBody)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a message body to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMessageBody(MessageBody inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Message Context (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ message context key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static MessageContext ToMessageContext(Int32 inputValue)
+		{
+			return (MessageContext)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a message context to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMessageContext(MessageContext inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region MQMD Read Enabled (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ yes/no key to the equivalent boolean.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static bool ToMQMDReadEnabled(Int32 inputValue)
+		{
+			return (inputValue != 0);
+			//switch(inputValue)
+			//{
+			//case XMSC.WMQ_READ_ENABLED_YES: return true;
+			//case XMSC.WMQ_READ_ENABLED_NO : return false;
+			//default:
+			//	ThrowCantConvertValueException(inputValue, "ToMQMDReadEnabled");
+			//	return false;
+			//}
+		}
+
+		/// <summary>
+		/// Converts a WMQ boolean to the equivalent XMS yes/no value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMQMDReadEnabled(bool inputValue)
+		{
+			return inputValue ? 1 : 0;
+			//	XMSC.WMQ_READ_ENABLED_YES : XMSC.WMQ_READ_ENABLED_NO;
+		}
+
+		#endregion
+
+		#region MQMD Write Enabled (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ yes/no key to the equivalent boolean.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static bool ToMQMDWriteEnabled(Int32 inputValue)
+		{
+			return (inputValue != 0);
+			//switch(inputValue)
+			//{
+			//case XMSC.WMQ_WRITE_ENABLED_YES: return true;
+			//case XMSC.WMQ_WRITE_ENABLED_NO : return false;
+			//default:
+			//	ThrowCantConvertValueException(inputValue, "ToMQMDWriteEnabled");
+			//	return false;
+			//}
+		}
+
+		/// <summary>
+		/// Converts a WMQ boolean to the equivalent XMS yes/no value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMQMDWriteEnabled(bool inputValue)
+		{
+			return inputValue ? 1 : 0;
+			//	XMSC.WMQ_WRITE_ENABLED_YES : XMSC.WMQ_WRITE_ENABLED_NO;
+		}
+
+		#endregion
+
+		#region Asynchronous Puts Allowed (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ asynchronous puts allowed key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static AsynchronousPutsAllowed ToAsynchronousPutsAllowed(
+			Int32 inputValue)
+		{
+			return (AsynchronousPutsAllowed)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ asynchronous puts allowed to the equivalent
+		/// XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSAsynchronousPutsAllowed(
+			AsynchronousPutsAllowed inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Read Ahead Allowed (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ read ahead allowed key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReadAheadAllowed ToReadAheadAllowed(
+			Int32 inputValue)
+		{
+			return (ReadAheadAllowed)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ read ahead allowed to the equivalent
+		/// XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReadAheadAllowed(
+			ReadAheadAllowed inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Read Ahead Close Policy (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ read ahead close policy key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReadAheadClosePolicy ToReadAheadClosePolicy(
+			Int32 inputValue)
+		{
+			return (ReadAheadClosePolicy)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ read ahead close policy to the equivalent
+		/// XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReadAheadClosePolicy(
+			ReadAheadClosePolicy inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Message Selection (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ message selection key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static MessageSelection ToMessageSelection(Int32 inputValue)
+		{
+			return (MessageSelection)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ message selection to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMessageSelection(MessageSelection inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Receive Conversion (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ receive conversion key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ReceiveConversion ToReceiveConversion(Int32 inputValue)
+		{
+			return (ReceiveConversion)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ receive conversion to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSReceiveConversion(ReceiveConversion inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Share Socket Allowed (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ yes/no key to the equivalent boolean.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static bool ToShareSocketAllowed(Int32 inputValue)
+		{
+			switch(inputValue)
+			{
+			case XMSC.WMQ_SHARE_CONV_ALLOWED_YES: return true;
+			case XMSC.WMQ_SHARE_CONV_ALLOWED_NO : return false;
+			default:
+				ThrowCantConvertValueException(inputValue, "ShareSocketAllowed");
+				return false;
+			}
+		}
+
+		/// <summary>
+		/// Converts a WMQ boolean to the equivalent XMS yes/no value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSShareSocketAllowed(bool inputValue)
+		{
+			return inputValue
+				? XMSC.WMQ_SHARE_CONV_ALLOWED_YES
+				: XMSC.WMQ_SHARE_CONV_ALLOWED_NO;
+		}
+
+		#endregion
+
+		#region Target Client (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ target client key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static TargetClient ToTargetClient(Int32 inputValue)
+		{
+			return (TargetClient)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ target client to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSTargetClient(TargetClient inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Wildcard Format (WMQ)
+
+		/// <summary>
+		/// Converts a WMQ wildcard format key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static WildcardFormat ToWildcardFormat(Int32 inputValue)
+		{
+			return (WildcardFormat)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WMQ wildcard format to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSWildcardFormat(WildcardFormat inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Connection Protocol (WPM)
+
+		/// <summary>
+		/// Converts a WPM connection protocol key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static WPMConnectionProtocol ToWPMConnectionProtocol(
+			Int32 inputValue)
+		{
+			return (WPMConnectionProtocol)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WPM connection protocol to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSWPMConnectionProtocol(
+			WPMConnectionProtocol inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Connection Proximity (WPM)
+
+		/// <summary>
+		/// Converts a WPM connection proximity key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static ConnectionProximity ToConnectionProximity(
+			Int32 inputValue)
+		{
+			return (ConnectionProximity)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WPM connection proximity to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSConnectionProximity(
+			ConnectionProximity inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Mapping (WPM)
+
+		/// <summary>
+		/// Converts a WPM mapping key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Mapping ToMapping(Int32 inputValue)
+		{
+			return (Mapping)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WPM mapping to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSMapping(Mapping inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Target Significance (WPM)
+
+		/// <summary>
+		/// Converts a WPM target significance key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static TargetSignificance ToTargetSignificance(
+			Int32 inputValue)
+		{
+			return (TargetSignificance)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WPM target significance to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSTargetSignificance(
+			TargetSignificance inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#region Target Type (WPM)
+
+		/// <summary>
+		/// Converts a WPM target type key.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static TargetType ToTargetType(Int32 inputValue)
+		{
+			return (TargetType)inputValue;
+		}
+
+		/// <summary>
+		/// Converts a WPM target type to the equivalent XMS value.
+		/// </summary>
+		/// <param name="inputValue">Input value.</param>
+		/// <returns>Converted value.</returns>
+		public static Int32 ToXMSTargetType(TargetType inputValue)
+		{
+			return (Int32)inputValue;
+		}
+
+		#endregion
+
+		#endregion
+
+		#region IBM XMS to Apache NMS enumerations conversion
+
+		/// <summary>
+		/// Converts an IBM XMS destination type
+		/// to the equivalent NMS value.
+		/// </summary>
+		/// <param name="xmsDestinationType">XMS destination type.</param>
+		/// <param name="isTemporary">Whether the destination is temporary.
+		/// </param>
+		/// <returns>NMS destination type.</returns>
+		public static DestinationType ToDestinationType(
+			IBM.XMS.DestinationType xmsDestinationType, bool isTemporary)
+		{
+			switch(xmsDestinationType)
+			{
+			case IBM.XMS.DestinationType.Queue:
+				return(isTemporary
+					? DestinationType.TemporaryQueue
+					: DestinationType.Queue);
+
+			case IBM.XMS.DestinationType.Topic:
+				return(isTemporary
+					? DestinationType.TemporaryTopic
+					: DestinationType.Queue);
+
+			default:
+				ThrowCantConvertValueException(
+					xmsDestinationType.ToString(),
+					"ToDestinationType");
+				return DestinationType.Queue;
+			}
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS acknowledgement mode
+		/// to the equivalent NMS value.
+		/// </summary>
+		/// <param name="acknowledgeMode">XMS acknowledgement mode.</param>
+		/// <returns>NMS acknowledgement mode.</returns>
+		public static Apache.NMS.AcknowledgementMode ToAcknowledgementMode(
+			IBM.XMS.AcknowledgeMode acknowledgeMode)
+		{
+			Apache.NMS.AcknowledgementMode acknowledge =
+				Apache.NMS.AcknowledgementMode.AutoAcknowledge;
+
+			switch(acknowledgeMode)
+			{
+			case IBM.XMS.AcknowledgeMode.AutoAcknowledge:
+				acknowledge = Apache.NMS.AcknowledgementMode.AutoAcknowledge;
+				break;
+
+			case IBM.XMS.AcknowledgeMode.ClientAcknowledge:
+				acknowledge = Apache.NMS.AcknowledgementMode.ClientAcknowledge;
+				break;
+
+			case IBM.XMS.AcknowledgeMode.DupsOkAcknowledge:
+				acknowledge = Apache.NMS.AcknowledgementMode.DupsOkAcknowledge;
+				break;
+
+			case IBM.XMS.AcknowledgeMode.SessionTransacted:
+				acknowledge = Apache.NMS.AcknowledgementMode.Transactional;
+				break;
+			}
+
+			return acknowledge;
+		}
+
+		/// <summary>
+		/// Converts an IBM XMS delivery mode
+		/// to the equivalent NMS value.
+		/// </summary>
+		/// <param name="deliveryMode">XMS delivery mode.</param>
+		/// <returns>NMS delivery mode.</returns>
+		public static MsgDeliveryMode ToNMSMsgDeliveryMode(
+			IBM.XMS.DeliveryMode deliveryMode)
+		{
+			if(deliveryMode == IBM.XMS.DeliveryMode.Persistent)
+			{
+				return MsgDeliveryMode.Persistent;
+			}
+
+			if(deliveryMode == IBM.XMS.DeliveryMode.NonPersistent)
+			{
+				return MsgDeliveryMode.NonPersistent;
+			}
+
+			// Hard cast it to the enumeration.
+			return (MsgDeliveryMode) deliveryMode;
+		}
+
+		#endregion
+
+		#region Apache NMS to IBM XMS enumerations conversion
+
+		/// <summary>
+		/// Converts an NMS acknowledgement mode
+		/// to the equivalent IBM XMS value.
+		/// </summary>
+		/// <param name="acknowledge">NMS acknowledgement mode.</param>
+		/// <returns>IBM XMS acknowledgement mode.</returns>
+		public static IBM.XMS.AcknowledgeMode ToAcknowledgeMode(
+			Apache.NMS.AcknowledgementMode acknowledge)
+		{
+			IBM.XMS.AcknowledgeMode acknowledgeMode =
+				(IBM.XMS.AcknowledgeMode)0;
+
+			switch(acknowledge)
+			{
+			case Apache.NMS.AcknowledgementMode.AutoAcknowledge:
+				acknowledgeMode = IBM.XMS.AcknowledgeMode.AutoAcknowledge;
+				break;
+
+			case Apache.NMS.AcknowledgementMode.ClientAcknowledge:
+				acknowledgeMode = IBM.XMS.AcknowledgeMode.ClientAcknowledge;
+				break;
+
+			case Apache.NMS.AcknowledgementMode.DupsOkAcknowledge:
+				acknowledgeMode = IBM.XMS.AcknowledgeMode.DupsOkAcknowledge;
+				break;
+
+			case Apache.NMS.AcknowledgementMode.Transactional:
+				acknowledgeMode = IBM.XMS.AcknowledgeMode.SessionTransacted;
+				break;
+			}
+
+			return acknowledgeMode;
+		}
+
+		/// <summary>
+		/// Converts an NMS delivery mode
+		/// to the equivalent IBM XMS value.
+		/// </summary>
+		/// <param name="deliveryMode">NMS delivery mode.</param>
+		/// <returns>IBM XMS delivery mode.</returns>
+		public static IBM.XMS.DeliveryMode ToJMSDeliveryMode(
+			MsgDeliveryMode deliveryMode)
+		{
+			if(deliveryMode == MsgDeliveryMode.Persistent)
+			{
+				return IBM.XMS.DeliveryMode.Persistent;
+			}
+
+			if(deliveryMode == MsgDeliveryMode.NonPersistent)
+			{
+				return IBM.XMS.DeliveryMode.NonPersistent;
+			}
+
+			// Hard cast it to the enumeration.
+			return (IBM.XMS.DeliveryMode) deliveryMode;
+		}
+
+		#endregion
+
+		#region Enumerable adapter
+
+		private class EnumerableAdapter : IEnumerable
+		{
+			private readonly IEnumerator enumerator;
+			public EnumerableAdapter(IEnumerator _enumerator)
+			{
+				this.enumerator = _enumerator;
+			}
+
+			public IEnumerator GetEnumerator()
+			{
+				return this.enumerator;
+			}
+		}
+
+		public static IEnumerable ToEnumerable(IEnumerator enumerator)
+		{
+			return new EnumerableAdapter(enumerator);
+		}
+
+		#endregion
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSEnum.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSEnum.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSEnum.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Util/XMSEnum.cs Wed Jan  6 02:19:56 2016
@@ -0,0 +1,1167 @@
+/*
+ * 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.Collections;
+using IBM.XMS;
+
+namespace Apache.NMS.XMS.Util
+{
+
+#region Encoding (IBM JMS)*
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_encoding.htm?lang=en
+/// <summary>
+/// How numerical data in the body of the message is represented when the XMS
+/// client forwards the message to its intended destination.
+/// </summary>
+public enum Encoding
+{
+	/// <summary>
+	/// Normal integer encoding.
+	/// </summary>
+	IntegerNormal = MQC.MQENC_INTEGER_NORMAL,
+
+	/// <summary>
+	/// Reversed integer encoding.
+	/// </summary>
+	IntegerReversed = MQC.MQENC_INTEGER_REVERSED,
+
+	/// <summary>
+	/// Normal packed decimal encoding.
+	/// </summary>
+	DecimalNormal = MQC.MQENC_DECIMAL_NORMAL,
+
+	/// <summary>
+	/// Reversed packed decimal encoding.
+	/// </summary>
+	DecimalReversed = MQC.MQENC_DECIMAL_REVERSED,
+
+	/// <summary>
+	/// Normal IEEE floating point encoding.
+	/// </summary>
+	FloatIEEENormal = MQC.MQENC_FLOAT_IEEE_NORMAL,
+
+	/// <summary>
+	/// Reversed IEEE floating point encoding.
+	/// </summary>
+	FloatIEEEReversed = MQC.MQENC_FLOAT_IEEE_REVERSED,
+
+	/// <summary>
+	/// z/OS® architecture floating point encoding.
+	/// </summary>
+	FloatS390 = MQC.MQENC_FLOAT_S390,
+
+	/// <summary>
+	/// Native machine encoding.
+	/// </summary>
+	Native = MQC.MQENC_NATIVE
+}
+
+#endregion
+
+#region Message Type (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_msgtype.htm?lang=en
+/// <summary>
+/// Message type.
+/// </summary>
+public enum MessageType
+{
+	/// <summary>
+	/// The message is one that does not require a reply.
+	/// </summary>
+	Datagram = MQC.MQMT_DATAGRAM,
+
+	/// <summary>
+	/// The message is one that requires a reply.
+	/// </summary>
+	Request = MQC.MQMT_REQUEST,
+
+	/// <summary>
+	/// The message is a reply message.
+	/// </summary>
+	Reply = MQC.MQMT_REPLY,
+
+	/// <summary>
+	/// The message is a report message.
+	/// </summary>
+	Report = MQC.MQMT_REPORT
+}
+
+#endregion
+
+#region Report Confirm On Arrival (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_coa.htm?lang=en
+/// <summary>
+/// Request 'confirm on arrival' report messages, specifying how much
+/// application data from the original message must be included in a
+/// report message.
+/// </summary>
+public enum ReportConfirmOnArrival
+{
+	/// <summary>
+	/// Request 'confirm on arrival' report messages, with no application
+	/// data from the original message included in a report message.
+	/// </summary>
+	NoData = MQC.MQRO_COA,
+
+	/// <summary>
+	/// Request 'confirm on arrival' report messages, with the first 100 bytes
+	/// of application data from the original message included in a report
+	/// message.
+	/// </summary>
+	PartialData = MQC.MQRO_COA_WITH_DATA,
+
+	/// <summary>
+	/// Request 'confirm on arrival' report messages, with all the application
+	/// data from the original message included in a report message.
+	/// </summary>
+	FullData = MQC.MQRO_COA_WITH_FULL_DATA
+}
+
+#endregion
+
+#region Report Confirm On Delivery (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_cod.htm?lang=en
+/// <summary>
+/// Request 'confirm on delivery' report messages, specifying how much
+/// application data from the original message must be included in a
+/// report message.
+/// </summary>
+public enum ReportConfirmOnDelivery
+{
+	/// <summary>
+	/// Request 'confirm on delivery' report messages, with no application
+	/// data from the original message included in a report message.
+	/// </summary>
+	NoData = MQC.MQRO_COD,
+
+	/// <summary>
+	/// Request 'confirm on delivery' report messages, with the first 100 bytes
+	/// of application data from the original message included in a report
+	/// message.
+	/// </summary>
+	PartialData = MQC.MQRO_COD_WITH_DATA,
+
+	/// <summary>
+	/// Request 'confirm on delivery' report messages, with all the application
+	/// data from the original message included in a report message.
+	/// </summary>
+	FullData = MQC.MQRO_COD_WITH_FULL_DATA
+}
+
+#endregion
+
+#region Report Exception (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_excpt.htm?lang=en
+/// <summary>
+/// Request exception report messages, specifying how much application data
+/// from the original message must be included in a report message.
+/// </summary>
+public enum ReportExceptions
+{
+	/// <summary>
+	/// Request exception report messages, with no application data from the
+	/// original message included in a report message.
+	/// </summary>
+	NoData = MQC.MQRO_COD,
+
+	/// <summary>
+	/// Request exception report messages, with the first 100 bytes of
+	/// application data from the original message included in a report
+	/// message.
+	/// </summary>
+	PartialData = MQC.MQRO_COD_WITH_DATA,
+
+	/// <summary>
+	/// Request exception report messages, with all the application data from
+	/// the original message included in a report message.
+	/// </summary>
+	FullData = MQC.MQRO_COD_WITH_FULL_DATA
+}
+
+#endregion
+
+#region Report Expiration (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_exprn.htm?lang=en
+/// <summary>
+/// Request expiration report messages, specifying how much application data
+/// from the original message must be included in a report message.
+/// </summary>
+public enum ReportExpiration
+{
+	/// <summary>
+	/// Request expiration report messages, with no application data from the
+	/// original message included in a report message.
+	/// </summary>
+	NoData = MQC.MQRO_EXPIRATION,
+
+	/// <summary>
+	/// Request expiration report messages, with the first 100 bytes of
+	/// application data from the original message included in a report
+	/// message.
+	/// </summary>
+	PartialData = MQC.MQRO_EXPIRATION_WITH_DATA,
+
+	/// <summary>
+	/// Request expiration report messages, with all the application data from
+	/// the original message included in a report message.
+	/// </summary>
+	FullData = MQC.MQRO_EXPIRATION_WITH_FULL_DATA
+}
+
+#endregion
+
+#region Report Correlation Id (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_pcid.htm?lang=en
+/// <summary>
+/// Request that the correlation identifier of any report or reply message
+/// is the same as the correlation identifier of the original message.
+/// </summary>
+public enum ReportCorrelationId
+{
+	/// <summary>
+	/// Request that the correlation identifier of any report or reply message
+	/// is the same as the correlation identifier of the original message.
+	/// </summary>
+	OriginalCorrelationId = MQC.MQRO_PASS_CORREL_ID,
+
+	/// <summary>
+	/// Request that the correlation identifier of any report or reply message
+	/// is the same as the message identifier of the original message.
+	/// </summary>
+	OriginalMessageId = MQC.MQRO_COPY_MSG_ID_TO_CORREL_ID
+}
+
+#endregion
+
+#region Report Message Id (IBM JMS)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prp_jms_ibm_rep_pmid.htm?lang=en
+/// <summary>
+/// Request that the message identifier of any report or reply message is the
+/// same as the message identifier of the original message.
+/// </summary>
+public enum ReportMessageId
+{
+	/// <summary>
+	/// Request that the message identifier of any report or reply message is the same as the message identifier of the original message.
+	/// </summary>
+	OriginalMessageId = MQC.MQRO_PASS_MSG_ID,
+
+	/// <summary>
+	/// Request that a new message identifier is generated for each report or
+	/// reply message.
+	/// </summary>
+	NewMessageId = MQC.MQRO_NEW_MSG_ID
+}
+
+#endregion
+
+#region Asynchronous Exceptions
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_async_exceptions.htm?lang=en
+/// <summary>
+/// whether XMS informs an ExceptionListener only when a connection is broken,
+/// or when any exception occurs asynchronously to an XMS API call.
+/// </summary>
+public enum AsynchronousExceptions
+{
+	/// <summary>
+	/// Any exception detected asynchronously, outside the scope of a
+	/// synchronous API call, and all connection broken exceptions are sent
+	/// to the <c>ExceptionListener</c>.
+	/// </summary>
+	All = XMSC.ASYNC_EXCEPTIONS_ALL,
+
+	/// <summary>
+	/// Only exceptions indicating a broken connection are sent to the
+	/// <c>ExceptionListener</c>. Any other exceptions occurring during
+	/// asynchronous processing are not reported to the
+	/// <c>ExceptionListener</c>, and hence the application is not informed
+	/// of these exceptions.
+	/// </summary>
+	ConnectionBroken = XMSC.ASYNC_EXCEPTIONS_CONNECTIONBROKEN
+}
+
+#endregion
+
+#region Connection Type
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_connection_type.htm?lang=en
+/// <summary>
+/// The type of messaging server to which an application connects.
+/// </summary>
+public enum ConnectionType
+{
+	/// <summary>
+	/// A real-time connection to a broker.
+	/// </summary>
+	RTT = XMSC.CT_RTT,
+
+	/// <summary>
+	/// A connection to a WebSphere® MQ queue manager.
+	/// </summary>
+	WMQ = XMSC.CT_WMQ,
+
+	/// <summary>
+	/// A connection to a WebSphere service integration bus.
+	/// </summary>
+	WPM = XMSC.CT_WPM
+}
+
+#endregion
+
+#region Delivery Mode
+
+/// <summary>
+/// The delivery mode of messages sent to the destination.
+/// </summary>
+public enum DeliveryMode
+{
+	/// <summary>
+	/// A message sent to the destination is nonpersistent. The default
+	/// delivery mode of the message producer, or any delivery mode specified
+	/// on the Send call, is ignored. If the destination is a WebSphere MQ
+	/// queue, the value of the queue attribute <c>DefPersistence</c> is also
+	/// ignored.
+	/// </summary>
+	NotPersistent = XMSC.DELIVERY_NOT_PERSISTENT,
+
+	/// <summary>
+	/// A message sent to the destination is persistent. The default
+	/// delivery mode of the message producer, or any delivery mode specified
+	/// on the Send call, is ignored. If the destination is a WebSphere MQ
+	/// queue, the value of the queue attribute <c>DefPersistence</c> is also
+	/// ignored.
+	/// </summary>
+	Persistent = XMSC.DELIVERY_PERSISTENT,
+
+	/// <summary>
+	/// A message sent to the destination has the delivery mode specified on
+	/// the Send call. If the Send call specifies no delivery mode, the default
+	/// delivery mode of the message producer is used instead. If the
+	/// destination is a WebSphere MQ queue, the value of the queue attribute
+	/// <c>DefPersistence</c> is ignored.
+	/// </summary>
+	AsApplication = XMSC.DELIVERY_AS_APP,
+
+	/// <summary>
+	/// If the destination is a WebSphere MQ queue, a message put on the queue
+	/// has the delivery mode specified by the value of the queue attribute
+	/// <c>DefPersistence</c>. The default delivery mode of the message
+	/// producer, or any delivery mode specified on the Send call, is ignored.
+	/// </summary>
+	AsDestination = XMSC.DELIVERY_AS_DEST
+}
+
+#endregion
+
+#region Priority
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_priority.htm?lang=en
+/// <summary>
+/// The priority of messages sent to the destination.
+/// </summary>
+public enum Priority
+{
+	/// <summary>
+	/// Lowest message priority.
+	/// </summary>
+	Lowest = 0,
+
+	/// <summary>
+	/// Between Low and Lowest message priority.
+	/// </summary>
+	VeryLow = 1,
+
+	/// <summary>
+	/// Low message priority.
+	/// </summary>
+	Low = 2,
+
+	/// <summary>
+	/// Normal message priority.
+	/// </summary>
+	Normal = 5,
+
+	/// <summary>
+	/// Between High and Normal message priority.
+	/// </summary>
+	AboveNormal = 6,
+
+	/// <summary>
+	/// High message priority.
+	/// </summary>
+	High = 7,
+
+	/// <summary>
+	/// Between Highest and High message priority.
+	/// </summary>
+	VeryHigh = 8,
+
+	/// <summary>
+	/// Highest message priority.
+	/// </summary>
+	Highest = 9,
+
+	/// <summary>
+	/// A message sent to the destination has the priority specified on the
+	/// Send call. If the Send call specifies no priority, the default
+	/// priority of the message producer is used instead. If the destination
+	/// is a WebSphere MQ queue, the value of the queue attribute
+	/// <c>DefPriority</c> is ignored.
+	/// </summary>
+	AsApplication = XMSC.PRIORITY_AS_APP,
+
+	/// <summary>
+	/// If the destination is a WebSphere MQ queue, a message put on the
+	/// queue has the priority specified by the value of the queue attribute
+	/// <c>DefPriority</c>. The default priority of the message producer,
+	/// or any priority specified on the Send call, is ignored.
+	/// </summary>
+	AsDestination = XMSC.PRIORITY_AS_DEST
+}
+
+#endregion
+
+#region Connection Protocol (RTT)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_rtt_conn_prot.htm?lang=en
+/// <summary>
+/// The communications protocol used for a real-time connection to a broker.
+/// </summary>
+public enum RTTConnectionProtocol
+{
+	/// <summary>
+	/// Real-time connection to a broker over TCP/IP.
+	/// <c>ConnectionFactory</c> object.
+	/// </summary>
+	TCP = XMSC.RTT_CP_TCP
+}
+
+#endregion
+
+#region Multicast (RTT)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_rtt_multicast.htm?lang=en
+/// <summary>
+/// The multicast setting for a connection factory or destination. Only a
+/// destination that is a topic can have this property.
+/// An application uses this property to enable multicast in association with
+/// a real-time connection to a broker and, if multicast is enabled, to
+/// specify the precise way in which multicast is used to deliver messages
+/// from the broker to a message consumer. The property has no effect on how
+/// a message producer sends messages to the broker.
+/// </summary>
+public enum Multicast
+{
+	/// <summary>
+	/// Messages are not delivered to a message consumer using WebSphere® MQ
+	/// Multicast Transport. This value is the default value for a
+	/// <c>ConnectionFactory</c> object.
+	/// </summary>
+	Disabled = XMSC.RTT_MULTICAST_DISABLED,
+
+	/// <summary>
+	/// Messages are delivered to a message consumer according to the multicast
+	/// setting for the connection factory associated with the message consumer.
+	/// The multicast setting for the connection factory is noted at the time
+	/// that the connection is created. This value is valid only for a
+	/// <c>Destination</c> object, and is the default value for a
+	/// <c>Destination</c> object.
+	/// </summary>
+	AsConnectionFactory = XMSC.RTT_MULTICAST_ASCF,
+
+	/// <summary>
+	/// If the topic is configured for multicast in the broker, messages are
+	/// delivered to a message consumer using WebSphere MQ Multicast Transport.
+	/// A reliable quality of service is used if the topic is configured for
+	/// reliable multicast.
+	/// </summary>
+	Enabled = XMSC.RTT_MULTICAST_ENABLED,
+
+	/// <summary>
+	/// If the topic is configured for reliable multicast in the broker,
+	/// messages are delivered to a message consumer using WebSphere MQ
+	/// Multicast Transport with a reliable quality of service. If the topic
+	/// is not configured for reliable multicast, you cannot create a message
+	/// consumer for the topic.
+	/// </summary>
+	Reliable = XMSC.RTT_MULTICAST_RELIABLE,
+
+	/// <summary>
+	/// If the topic is configured for multicast in the broker, messages are
+	/// delivered to a message consumer using WebSphere MQ Multicast Transport.
+	/// A reliable quality of service is not used even if the topic is
+	/// configured for reliable multicast.
+	/// </summary>
+	NotReliable = XMSC.RTT_MULTICAST_NOT_RELIABLE
+}
+
+#endregion
+
+#region Broker Version (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_brkr_version.htm?lang=en
+/// <summary>
+/// The type of broker used by the application for a connection or for the
+/// destination. Only a destination that is a topic can have this property.
+/// </summary>
+public enum BrokerVersion
+{
+	/// <summary>
+	/// The application is using a WebSphere® MQ Publish/Subscribe broker.
+	/// </summary>
+	Version1 = XMSC.WMQ_BROKER_V1,
+
+	/// <summary>
+	/// The application is using a broker of IBM® Integration Bus.
+	/// </summary>
+	Version2 = XMSC.WMQ_BROKER_V2,
+
+	/// <summary>
+	/// After the broker is migrated, set this property so that RFH2 headers
+	/// are no longer used. After migration, this property is no longer
+	/// relevant.
+	/// </summary>
+	Unspecified = XMSC.WMQ_BROKER_UNSPECIFIED
+}
+
+#endregion
+
+#region Reconnect Options (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_rtt_client_reconnect_options.htm?lang=en
+/// <summary>
+/// Client reconnect options for new connections created by a factory.
+/// </summary>
+public enum ReconnectOptions
+{
+	/// <summary>
+	/// Use the value specified in the <c>mqclient.ini</c> file. Set the value
+	/// by using the DefRecon property within the Channels stanza.
+	/// </summary>
+	AsDefault = XMSC.WMQ_CLIENT_RECONNECT_AS_DEF,
+
+	/// <summary>
+	/// Reconnect to any of the queue managers specified in the connection name
+	/// list.
+	/// </summary>
+	AnyQueueManager = XMSC.WMQ_CLIENT_RECONNECT,
+
+	/// <summary>
+	/// Reconnects to the same queue manager that it is originally connected to.
+	/// It returns <c>MQRC.RECONNECT_QMID_MISMATCH</c> if the queue manager it
+	/// tries to connect to (specified in the connection name list) has a
+	/// different QMID to the queue manager originally connected to.
+	/// </summary>
+	SameQueueManager = XMSC.WMQ_CLIENT_RECONNECT_Q_MGR,
+
+	/// <summary>
+	/// Reconnection is disabled.
+	/// </summary>
+	Disabled = XMSC.WMQ_CLIENT_RECONNECT_DISABLED
+}
+
+#endregion
+
+#region Connection Mode (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_conn_mode.htm?lang=en
+/// <summary>
+/// The mode by which an application connects to a queue manager.
+/// </summary>
+public enum ConnectionMode
+{
+	/// <summary>
+	/// A connection to a queue manager in bindings mode, for optimal performance. This value is the default value for C/C++.
+	/// </summary>
+	Bindings = XMSC.WMQ_CM_BINDINGS,
+
+	/// <summary>
+	/// A connection to a queue manager in client mode, to ensure a fully managed stack. This value is the default value for .NET.
+	/// </summary>
+	Client = XMSC.WMQ_CM_CLIENT,
+
+	/// <summary>
+	/// A connection to a queue manager which forces an unmanaged client stack.
+	/// </summary>
+	ClientUnmanaged = XMSC.WMQ_CM_CLIENT_UNMANAGED
+}
+
+#endregion
+
+#region Encoding (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_encoding.htm?lang=en
+// cf. "Encoding (IBM JMS)"
+
+#endregion
+
+#region Fail If Quiesce (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_fail_if_quiesce.htm?lang=en
+/// <summary>
+/// Whether calls to certain methods fail if the queue manager to which the
+/// application is connected is in a quiescing state.
+/// </summary>
+public enum FailIfQuiesce
+{
+	/// <summary>
+	/// Calls to certain methods fail if the queue manager is in a quiescing
+	/// state. When the application detects that the queue manager is
+	/// quiescing, the application can complete its immediate task and close
+	/// the connection, allowing the queue manager to stop.
+	/// </summary>
+	Yes = XMSC.WMQ_FIQ_YES,
+
+	/// <summary>
+	/// No method calls fail because the queue manager is in a quiescing
+	/// state. If you specify this value, the application cannot detect that
+	/// the queue manager is quiescing. The application might continue to
+	/// perform operations against the queue manager and therefore prevent
+	/// the queue manager from stopping.
+	/// </summary>
+	No = XMSC.WMQ_FIQ_NO
+}
+
+#endregion
+
+#region Message Body (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_message_body.htm?lang=en
+/// <summary>
+/// Whether an XMS application processes the <c>MQRFH2</c> of a WebSphere®
+/// MQ message as part of the message payload (that is, as part of the
+/// message body).
+/// </summary>
+public enum MessageBody
+{
+	/// <summary>
+	/// Receive: The inbound XMS message type and body are determined by the
+	/// contents of the <c>MQRFH2</c> (if present) or the <c>MQMD</c> (if there
+	/// is no <c>MQRFH2</c>) in the received WebSphere MQ message.
+	/// Send: The outbound XMS message body contains a prepended and
+	/// auto-generated <c>MQRFH2</c> header based on XMS Message properties and
+	/// header fields.
+	/// </summary>
+	JMS = XMSC.WMQ_MESSAGE_BODY_JMS,
+
+	/// <summary>
+	/// Receive: The inbound XMS message type is always <c>ByteMessage</c>,
+	/// irrespective of the contents of received WebSphere MQ message or the
+	/// format field of the received <c>MQMD</c>. The XMS message body is the
+	/// unaltered message data returned by the underlying messaging provider
+	/// API call. The character set and encoding of the data in the message
+	/// body is determined by the <c>CodedCharSetId</c> and <c>Encoding</c>
+	/// fields of the <c>MQMD</c>. The format of the data in the message body
+	/// is determined by the <c>Format</c> field of the <c>MQMD</c>.
+	/// Send: The outbound XMS message body contains the application payload
+	/// as-is; and no auto-generated WebSphere MQ header is added to the body.
+	/// </summary>
+	MQ = XMSC.WMQ_MESSAGE_BODY_MQ,
+
+	/// <summary>
+	/// Receive: The XMS client determines a suitable value for this property.
+	/// On receive path, this value is the <c>WMQ_MESSAGE_BODY_JMS</c> property
+	/// value.
+	/// Send: The XMS client determines a suitable value for this property. On
+	/// send path, this value is the <c>XMSC_WMQ_TARGET_CLIENT</c> property
+	/// value.
+	/// </summary>
+	Unspecified = XMSC.WMQ_MESSAGE_BODY_UNSPECIFIED
+}
+
+#endregion
+
+#region Message Context (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_mqmd_message_context.htm?lang=en
+/// <summary>
+/// Determines what level of message context is to be set by the XMS
+/// application. The application must be running with appropriate context
+/// authority for this property to take effect.
+/// </summary>
+public enum MessageContext
+{
+	/// <summary>
+	/// For outbound messages, the <c>MQOPEN</c> API call and the <c>MQPMO</c>
+	/// structure specifies no explicit message context options.
+	/// </summary>
+	Default = XMSC.WMQ_MDCTX_DEFAULT,
+
+	/// <summary>
+	/// The <c>MQOPEN</c> API call specifies the message context option 
+	/// <c>MQOO_SET_IDENTITY_CONTEXT</c> and the <c>MQPMO</c> structure
+	/// specifies <c>MQPMO_SET_IDENTITY_CONTEXT</c>.
+	/// </summary>
+	SetIdentity = XMSC.WMQ_MDCTX_SET_IDENTITY_CONTEXT,
+
+	/// <summary>
+	/// The <c>MQOPEN</c> API call specifies the message context option
+	/// <c>MQOO_SET_ALL_CONTEXT</c> and the <c>MQPMO</c> structure
+	/// specifies <c>MQPMO_SET_ALL_CONTEXT</c>. 
+	/// </summary>
+	SetAll = XMSC.WMQ_MDCTX_SET_ALL_CONTEXT,
+}
+
+#endregion
+
+#region MQMD Read Enabled (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_mqmd_read_enabled.htm?lang=en
+/// <summary>
+/// Whether an XMS application can extract the values of MQMD fields or not.
+/// </summary>
+public enum MQMDReadEnabled
+{
+	/// <summary>
+	/// When sending messages, the <c>JMS_IBM_MQMD*</c> properties on a sent
+	/// message are not updated to reflect the updated field values in the
+	/// <c>MQMD</c>.
+	/// When receiving messages, none of the <c>JMS_IBM_MQMD*</c> properties
+	/// are available on a received message, even if some or all of them are
+	/// set by the sender.
+	/// </summary>
+	No = 0, //XMSC.WMQ_READ_ENABLED_NO,
+
+	/// <summary>
+	/// When sending messages, all of the <c>JMS_IBM_MQMD*</c> properties on
+	/// a sent message are updated to reflect the updated field values in the
+	/// <c>MQMD</c>, including those properties that the sender did not set
+	/// explicitly.
+	/// When receiving messages, all of the <c>JMS_IBM_MQMD*</c> properties
+	/// are available on a received message, including those properties that
+	/// the sender did not set explicitly. 
+	/// </summary>
+	Yes = 1 //XMSC.WMQ_READ_ENABLED_YES
+}
+
+#endregion
+
+#region MQMD Write Enabled (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_mqmd_write_enabled.htm?lang=en
+/// <summary>
+/// Whether an XMS application can write the values of MQMD fields or not.
+/// </summary>
+public enum MQMDWriteEnabled
+{
+	/// <summary>
+	/// All <c>JMS_IBM_MQMD*</c> properties are ignored and their values are
+	/// not copied into the underlying <c>MQMD</c> structure.
+	/// </summary>
+	No = 0, //XMSC.WMQ_WRITE_ENABLED_NO,
+
+	/// <summary>
+	/// <c>JMS_IBM_MQMD*</c> properties are processed. Their values are copied
+	/// into the underlying <c>MQMD</c> structure.
+	/// </summary>
+	Yes = 1 //XMSC.WMQ_WRITE_ENABLED_YES
+}
+
+#endregion
+
+#region Asynchronous Puts Allowed (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_put_async_allowed.htm?lang=en
+/// <summary>
+/// Whether message producers are allowed to use asynchronous puts to send
+/// messages to this destination.
+/// </summary>
+public enum AsynchronousPutsAllowed
+{
+	/// <summary>
+	/// Determine whether asynchronous puts are allowed by referring to the
+	/// queue or topic definition.
+	/// </summary>
+	AsDestination = XMSC.WMQ_PUT_ASYNC_ALLOWED_AS_DEST,
+
+	/// <summary>
+	/// Determine whether asynchronous puts are allowed by referring to the
+	/// queue definition.
+	/// </summary>
+	AsQueueDefinition = XMSC.WMQ_PUT_ASYNC_ALLOWED_AS_Q_DEF,
+
+	/// <summary>
+	/// Determine whether asynchronous puts are allowed by referring to the
+	/// topic definition.
+	/// </summary>
+	AsTopicDefinition = XMSC.WMQ_PUT_ASYNC_ALLOWED_AS_TOPIC_DEF,
+
+	/// <summary>
+	/// Asynchronous puts are not allowed.
+	/// </summary>
+	Disabled = XMSC.WMQ_PUT_ASYNC_ALLOWED_DISABLED,
+
+	/// <summary>
+	/// Asynchronous puts are allowed.
+	/// </summary>
+	Enabled = XMSC.WMQ_PUT_ASYNC_ALLOWED_ENABLED
+}
+
+#endregion
+
+#region Read Ahead Allowed (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_read_ahead_allowed.htm?lang=en
+/// <summary>
+/// Whether message consumers and queue browsers are allowed to use read ahead
+/// to get non-persistent, non-transactional messages from this destination
+/// into an internal buffer before receiving them.
+/// </summary>
+public enum ReadAheadAllowed
+{
+	/// <summary>
+	/// Determine whether read ahead is allowed by referring to the queue
+	/// definition.
+	/// </summary>
+	AsQueueDefinition = XMSC.WMQ_READ_AHEAD_ALLOWED_AS_Q_DEF,
+
+	/// <summary>
+	/// Determine whether read ahead is allowed by referring to the topic
+	/// definition.
+	/// </summary>
+	AsTopicDefinition = XMSC.WMQ_READ_AHEAD_ALLOWED_AS_TOPIC_DEF,
+
+	/// <summary>
+	/// Determine whether read ahead is allowed by referring to the queue
+	/// or topic definition.
+	/// </summary>
+	AsDestinationDefinition = XMSC.WMQ_READ_AHEAD_ALLOWED_AS_DEST,
+
+	/// <summary>
+	/// Read ahead is not allowed while consuming or browsing messages.
+	/// </summary>
+	Disabled = XMSC.WMQ_READ_AHEAD_ALLOWED_DISABLED,
+
+	/// <summary>
+	/// Read ahead is allowed.
+	/// </summary>
+	Enabled = XMSC.WMQ_READ_AHEAD_ALLOWED_ENABLED
+}
+
+#endregion
+
+#region Read Ahead Close Policy (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_read_ahead_close_policy.htm?lang=en
+/// <summary>
+/// This property determines, for messages being delivered to an asynchronous
+/// message listener, what happens to messages in the internal read ahead buffer
+/// when the message consumer is closed.
+/// </summary>
+public enum ReadAheadClosePolicy
+{
+	/// <summary>
+	/// Only the current message listener invocation completes before returning,
+	/// potentially leaving messages in the internal read ahead buffer, which
+	/// are then discarded.
+	/// </summary>
+	DeliverCurrent = XMSC.WMQ_READ_AHEAD_DELIVERCURRENT,
+
+	/// <summary>
+	/// All messages in the internal read ahead buffer are delivered to the
+	/// application message listener before returning. 
+	/// </summary>
+	DeliverAll = XMSC.WMQ_READ_AHEAD_DELIVERALL
+}
+
+#endregion
+
+#region Message Selection (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_mes_selection.htm?lang=en
+/// <summary>
+/// Determines whether message selection is done by the XMS client or by
+/// the broker.
+/// </summary>
+public enum MessageSelection
+{
+	/// <summary>
+	/// Message selection is done by the XMS client.
+	/// </summary>
+	Client = XMSC.WMQ_MSEL_CLIENT,
+
+	/// <summary>
+	/// Message selection is done by the broker.
+	/// </summary>
+	Broker = XMSC.WMQ_MSEL_BROKER
+}
+
+#endregion
+
+#region Receive Conversion (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_receive_conversion.htm?lang=en
+/// <summary>
+/// Whether data conversion is going to be performed by the queue manager.
+/// </summary>
+public enum ReceiveConversion
+{
+	/// <summary>
+	/// Perform data conversion on the XMS client only. Conversion is always
+	/// done using codepage 1208.
+	/// </summary>
+	Client = XMSC.WMQ_RECEIVE_CONVERSION_CLIENT_MSG,
+
+	/// <summary>
+	/// Perform data conversion on the queue manager before sending a message
+	/// to the XMS client. 
+	/// </summary>
+	QueueManager = XMSC.WMQ_RECEIVE_CONVERSION_QMGR
+}
+
+#endregion
+
+#region Share Socket Allowed (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_share_conv_allowed.htm?lang=en
+/// <summary>
+/// Whether a client connection can share its socket with other top-level XMS
+/// connections from the same process to the same queue manager, if the channel
+/// definitions match.
+/// </summary>
+public enum ShareSocketAllowed
+{
+	/// <summary>
+	/// Connections do not share a socket.
+	/// </summary>
+	False = XMSC.WMQ_SHARE_CONV_ALLOWED_NO,
+
+	/// <summary>
+	/// Connections share a socket.
+	/// </summary>
+	True = XMSC.WMQ_SHARE_CONV_ALLOWED_YES
+}
+
+#endregion
+
+#region Target Client (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wmq_target_client.htm?lang=en
+/// <summary>
+/// Whether messages sent to the destination contain an <c>MQRFH2</c> header.
+/// </summary>
+public enum TargetClient
+{
+	/// <summary>
+	/// Messages sent to the destination contain an <c>MQRFH2</c> header.
+	/// Specify this value if the application is sending the messages to
+	/// another XMS application, a WebSphere® JMS application, or a native
+	/// WebSphere MQ application that is designed to handle an <c>MQRFH2</c>
+	/// header.
+	/// </summary>
+	JMS = XMSC.WMQ_TARGET_DEST_JMS,
+
+	/// <summary>
+	/// Messages sent to the destination do not contain an <c>MQRFH2</c>
+	/// header. Specify this value if the application is sending the messages
+	/// to a native WebSphere MQ application that is not designed to handle
+	/// an <c>MQRFH2</c> header.
+	/// </summary>
+	MQ = XMSC.WMQ_TARGET_DEST_MQ
+}
+
+#endregion
+
+#region Wildcard Format (WMQ)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xmsc_wmq_wildcard_format.htm?lang=en
+/// <summary>
+/// This property determines which version of wildcard syntax is to be used.
+/// </summary>
+public enum WildcardFormat
+{
+	/// <summary>
+	/// Recognizes the topic level wildcards only i.e. '#' and '+' are treated
+	/// as wildcards.
+	/// </summary>
+	TopicOnly = XMSC.WMQ_WILDCARD_TOPIC_ONLY,
+
+	/// <summary>
+	/// Recognizes the character wildcards only i.e. '*' and '?' are treated
+	/// as wildcards.
+	/// </summary>
+	CharacterOnly = XMSC.WMQ_WILDCARD_CHAR_ONLY
+}
+
+#endregion
+
+#region Connection Protocol (WPM)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_conn_prot.htm?lang=en
+/// <summary>
+/// The communications protocol used for the connection to the messaging
+/// engine.
+/// </summary>
+public enum WPMConnectionProtocol
+{
+	/// <summary>
+	/// The connection uses HTTP over TCP/IP.
+	/// </summary>
+	HTTP = XMSC.WPM_CP_HTTP,
+
+	/// <summary>
+	/// The connection uses TCP/IP.
+	/// </summary>
+	TCP = XMSC.WPM_CP_TCP
+}
+
+#endregion
+
+#region Connection Proximity (WPM)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_conn_prox.htm?lang=en
+/// <summary>
+/// The connection proximity setting for the connection. This property
+/// determines how close the messaging engine that the application connects
+/// to must be to the bootstrap server.
+/// </summary>
+public enum ConnectionProximity
+{
+	/// <summary>
+	/// Bus.
+	/// </summary>
+	Bus,           // XMSC.WPM_CONNECTION_PROXIMITY_BUS     = "Bus"
+
+	/// <summary>
+	/// Cluster.
+	/// </summary>
+	Cluster,       // XMSC.WPM_CONNECTION_PROXIMITY_CLUSTER = "Cluster"
+
+	/// <summary>
+	/// Host.
+	/// </summary>
+	Host,          // XMSC.WPM_CONNECTION_PROXIMITY_HOST    = "Host"
+
+	/// <summary>
+	/// Server.
+	/// </summary>
+	Server         // XMSC.WPM_CONNECTION_PROXIMITY_SERVER  = "Server"
+}
+
+#endregion
+
+#region Mapping (WPM)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_non_pers_m.htm?lang=en
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_pers_m.htm?lang=en
+/// <summary>
+/// The reliability level of messages that are sent using the connection.
+/// </summary>
+public enum Mapping
+{
+	/// <summary>
+	/// Determined by the default reliability level specified for the queue
+	/// or topic space in the service integration bus.
+	/// </summary>
+	AsDestination = XMSC.WPM_MAPPING_AS_DESTINATION,
+
+	/// <summary>
+	/// Best effort nonpersistent.
+	/// </summary>
+	BestEffortNonPersistent = XMSC.WPM_MAPPING_BEST_EFFORT_NON_PERSISTENT,
+
+	/// <summary>
+	/// Express nonpersistent.
+	/// </summary>
+	ExpressNonPersistent = XMSC.WPM_MAPPING_EXPRESS_NON_PERSISTENT,
+
+	/// <summary>
+	/// Reliable nonpersistent.
+	/// </summary>
+	ReliableNonPersistent = XMSC.WPM_MAPPING_RELIABLE_NON_PERSISTENT,
+
+	/// <summary>
+	/// Reliable persistent.
+	/// </summary>
+	ReliablePersistent = XMSC.WPM_MAPPING_RELIABLE_PERSISTENT,
+
+	/// <summary>
+	/// Assured persistent.
+	/// </summary>
+	AssuredPersistent = XMSC.WPM_MAPPING_ASSURED_PERSISTENT
+}
+
+#endregion
+
+#region Target Significance (WPM)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_target_signf.htm?lang=en
+/// <summary>
+/// The significance of the target group of messaging engines.
+/// </summary>
+public enum TargetSignificance
+{
+	/// <summary>
+	/// A messaging engine in the target group is selected if one is available.
+	/// Otherwise, a messaging engine outside the target group is selected,
+	/// provided it is in the same service integration bus.
+	/// </summary>
+	Preferred, // XMSC.WPM_TARGET_SIGNIFICANCE_PREFERRED = "Preferred"
+
+	/// <summary>
+	/// The selected messaging engine must be in the target group. If a
+	/// messaging engine in the target group is not available, the connection
+	/// process fails.
+	/// </summary>
+	Required   // XMSC.WPM_TARGET_SIGNIFICANCE_REQUIRED  = "Required"
+}
+
+#endregion
+
+#region Target Type (WPM)
+
+// http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/prx_wpm_target_type.htm?lang=en
+/// <summary>
+/// The type of the target group of messaging engines. This property
+/// determines the nature of the target group identified by the
+/// <c>XMSC_WPM_TARGET_GROUP</c> property.
+/// </summary>
+public enum TargetType
+{
+	/// <summary>
+	/// The name of the target group is the name of a bus member. The target
+	/// group is all the messaging engines in the bus member.
+	/// </summary>
+	BusMember,      // XMSC.WPM_TARGET_TYPE_BUSMEMBER = "BusMember"
+
+	/// <summary>
+	/// The name of the target group is the name of a user-defined group of
+	/// messaging engines. The target group is all the messaging engines that
+	/// are registered with the user-defined group.
+	/// </summary>
+	Custom,         // XMSC.WPM_TARGET_TYPE_CUSTOM = "Custom"
+
+	/// <summary>
+	/// The name of the target group is the name of a messaging engine. The
+	/// target group is the specified messaging engine.
+	/// </summary>
+	MessagingEngine // XMSC.WPM_TARGET_TYPE_ME = "ME"
+}
+
+#endregion
+
+}
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/_TODO_.txt
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/_TODO_.txt?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/_TODO_.txt (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/_TODO_.txt Wed Jan  6 02:19:56 2016
@@ -0,0 +1,29 @@
+ ~ BytesMessage.cs				// Ajouter commentaires
+ X Connection.cs
+ X ConnectionFactory.cs
+ X ConnectionMetaData.cs
+ X Destination.cs
+ X InitialContext.cs
+ X MapMessage.cs
+ X Message.cs
+ ~ MessageConsumer.cs			// Ajouter commentaires
+ ~ MessageProducer.cs			// Ajouter commentaires
+ ~ MessageProperties.cs			// Ajouter commentaires
+ X ObjectMessage.cs
+ X Queue.cs
+ ~ QueueBrowser.cs				// Ajouter commentaires
+ ~ Session.cs					// Ajouter commentaires
+ X StreamMessage.cs
+ X TemporaryQueue.cs
+ X TemporaryTopic.cs
+ X TextMessage.cs
+ X Topic.cs
+ ? Util\Dispatcher.cs
+ X Util\ExceptionUtil.cs
+ X Util\IntrospectionSupport.cs
+ X Util\UriAttributeAttribute.cs
+ X Util\XMSConvert.cs
+ X Util\XMSEnum.cs
+
+
+Temporary Queue / Topic
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/ndoc/NamespaceSummary.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/ndoc/NamespaceSummary.xml?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/ndoc/NamespaceSummary.xml (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/ndoc/NamespaceSummary.xml Wed Jan  6 02:19:56 2016
@@ -0,0 +1,21 @@
+<!--
+    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.
+-->
+<namespaces>
+    <namespace name="XMS">
+        The <b>XMS</b> namespace defines the IBM XMS provider API for the .Net Message System (NMS) API, which is an interface to messaging systems rather like JMS is for Java.
+    </namespace>
+</namespaces>

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/sandcastle/feedback_content.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/sandcastle/feedback_content.xml?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/sandcastle/feedback_content.xml (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/sandcastle/feedback_content.xml Wed Jan  6 02:19:56 2016
@@ -0,0 +1,32 @@
+<content xml:space="preserve">
+
+  <item id="fb_alias">activemq.docs@apache.org</item>
+  <item id="fb_product"></item>
+  <item id="fb_deliverable"></item>
+
+  <item id="fb_subject">Customer%20Feedback</item>
+  <item id="fb_body">%0\dThank%20you%20for%20your%20feedback.%20The%20developer%20writing%20teams%20use%20your%20feedback%20to%20improve%20documentation.%20While%20we%20are%20reviewing%20your%20feedback,%20we%20may%20send%20you%20e-mail%20to%20ask%20for%20clarification%20or%20feedback%20on%20a%20solution.%20We%20do%20not%20use%20your%20e-mail%20address%20for%20any%20other%20purpose.%0\d</item>
+ 
+   <item id="fb_headerFeedBack">Send Feedback</item>
+  
+
+   <!-- feedback values for sandcastle scenario -->
+
+   <item id="feedback_alias"></item>
+   <item id="feedback_product"></item>
+   <item id="feedback_deliverable"></item>
+   <item id="feedback_fileVersion"></item>
+   <item id="feedback_topicVersion"></item>
+   <item id="feedback_body"></item>
+   <item id="feedback_subject"></item>
+
+   <item id="fb_Introduction">We value your feedback. To rate this topic and send feedback about this topic to the documentation team, click a rating, and then click <b>Send Feedback</b>. For assistance with support issues, refer to the technical support information included with the product.</item>
+
+   <item id="fb_Send">Send Feedback</item>
+   <item id="fb_Poor">Poor</item>
+   <item id="fb_Excellent">Outstanding</item>
+   <item id="fb_EnterFeedbackText">To e-mail your feedback, click here:</item>
+   <item id="fb_Title">Documentation Feedback</item>
+   <item id="fb_altIcon">Display feedback instructions at the bottom of the page.</item>
+
+</content>
\ No newline at end of file

Propchange: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/test/csharp/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Jan  6 02:19:56 2016
@@ -0,0 +1 @@
+CommonAssemblyInfo.cs