activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jgo...@apache.org
Subject svn commit: r1144423 [2/2] - in /activemq/activemq-dotnet/Apache.NMS.ZMQ: ./ branches/ tags/ trunk/ trunk/src/ trunk/src/main/ trunk/src/main/csharp/ trunk/src/main/ndoc/ trunk/src/main/sandcastle/ trunk/src/test/ trunk/src/test/csharp/
Date Fri, 08 Jul 2011 18:55:18 GMT
Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,257 @@
+/*
+ * 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.Messaging;
+
+namespace Apache.NMS.ZMQ
+{
+	/// <summary>
+	/// ZMQ provider of ISession
+	/// </summary>
+	public class Session : ISession
+	{
+		private Connection connection;
+		private AcknowledgementMode acknowledgementMode;
+		private MessageQueueTransaction messageQueueTransaction;
+		private IMessageConverter messageConverter;
+
+		public Session(Connection connection, AcknowledgementMode acknowledgementMode)
+		{
+			this.connection = connection;
+			this.acknowledgementMode = acknowledgementMode;
+			MessageConverter = connection.MessageConverter;
+			if(this.acknowledgementMode == AcknowledgementMode.Transactional)
+			{
+				MessageQueueTransaction = new MessageQueueTransaction();
+			}
+		}
+
+		public void Dispose()
+		{
+			if(MessageQueueTransaction != null)
+			{
+				MessageQueueTransaction.Dispose();
+			}
+		}
+
+		#region Producer methods
+		public IMessageProducer CreateProducer()
+		{
+			return CreateProducer(null);
+		}
+
+		public IMessageProducer CreateProducer(IDestination destination)
+		{
+			throw new NotSupportedException("Producer is not supported/implemented");
+		}
+		#endregion
+
+		#region Consumer methods
+		public IMessageConsumer CreateConsumer(IDestination destination)
+		{
+			return CreateConsumer(destination, null);
+		}
+
+		public IMessageConsumer CreateConsumer(IDestination destination, string selector)
+		{
+			return CreateConsumer(destination, selector, false);
+		}
+
+		public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal)
+		{
+			// Subscriber client reads messages from a publisher and forwards messages 
+			// through the message consumer 
+			return new MessageConsumer(this, acknowledgementMode, new ZmqSubscriber(connection, destination, selector));
+		}
+
+		public IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal)
+		{
+			throw new NotSupportedException("Durable Topic subscribers are not supported/implemented");
+		}
+
+		public void DeleteDurableConsumer(string name)
+		{
+			throw new NotSupportedException("Durable Topic subscribers are not supported/implemented");
+		}
+		#endregion
+
+		public IQueueBrowser CreateBrowser(IQueue queue)
+		{
+			throw new NotImplementedException();
+		}
+
+		public IQueueBrowser CreateBrowser(IQueue queue, string selector)
+		{
+			throw new NotImplementedException();
+		}
+
+		public IQueue GetQueue(string name)
+		{
+			return new Queue(name);
+		}
+
+		public ITopic GetTopic(string name)
+		{
+			return new Topic(name);
+		}
+
+		public ITemporaryQueue CreateTemporaryQueue()
+		{
+			return new TemporaryQueue();
+		}
+
+		public ITemporaryTopic CreateTemporaryTopic()
+		{
+			return new TemporaryTopic();
+		}
+
+		/// <summary>
+		/// Delete a destination (Queue, Topic, Temp Queue, Temp Topic).
+		/// </summary>
+		public void DeleteDestination(IDestination destination)
+		{
+			// Nothing to delete.  Resources automatically disappear.
+			return;
+		}
+
+		public IMessage CreateMessage()
+		{
+			return new BaseMessage();
+		}
+
+		public ITextMessage CreateTextMessage()
+		{
+			return new TextMessage();
+		}
+
+		public ITextMessage CreateTextMessage(string text)
+		{
+			return new TextMessage(text);
+		}
+
+		public IMapMessage CreateMapMessage()
+		{
+			return new MapMessage();
+		}
+
+		public IBytesMessage CreateBytesMessage()
+		{
+			return new BytesMessage();
+		}
+
+		public IBytesMessage CreateBytesMessage(byte[] body)
+		{
+			BytesMessage answer = new BytesMessage();
+			answer.Content = body;
+			return answer;
+		}
+
+		public IStreamMessage CreateStreamMessage()
+		{
+			return new StreamMessage();
+		}
+
+		public IObjectMessage CreateObjectMessage(Object body)
+		{
+			return new ObjectMessage(body);
+		}
+
+		public void Commit()
+		{
+			if(!Transacted)
+			{
+				throw new InvalidOperationException("You cannot perform a Commit() on a non-transacted session. Acknowlegement mode is: " + acknowledgementMode);
+			}
+			messageQueueTransaction.Commit();
+		}
+
+		public void Rollback()
+		{
+			if(!Transacted)
+			{
+				throw new InvalidOperationException("You cannot perform a Commit() on a non-transacted session. Acknowlegement mode is: " + acknowledgementMode);
+			}
+			messageQueueTransaction.Abort();
+		}
+
+		// Properties
+		public Connection Connection
+		{
+			get { return connection; }
+		}
+
+		/// <summary>
+		/// The default timeout for network requests.
+		/// </summary>
+		public TimeSpan RequestTimeout
+		{
+			get { return NMSConstants.defaultRequestTimeout; }
+			set { }
+		}
+
+		public bool Transacted
+		{
+			get { return acknowledgementMode == AcknowledgementMode.Transactional; }
+		}
+
+		public AcknowledgementMode AcknowledgementMode
+		{
+			get { throw new NotImplementedException(); }
+		}
+
+		public MessageQueueTransaction MessageQueueTransaction
+		{
+			get
+			{
+				if(null != messageQueueTransaction
+					&& messageQueueTransaction.Status != MessageQueueTransactionStatus.Pending)
+				{
+					messageQueueTransaction.Begin();
+				}
+
+				return messageQueueTransaction;
+			}
+			set { messageQueueTransaction = value; }
+		}
+
+		public IMessageConverter MessageConverter
+		{
+			get { return messageConverter; }
+			set { messageConverter = value; }
+		}
+
+		private ConsumerTransformerDelegate consumerTransformer;
+		public ConsumerTransformerDelegate ConsumerTransformer
+		{
+			get { return this.consumerTransformer; }
+			set { this.consumerTransformer = value; }
+		}
+
+		private ProducerTransformerDelegate producerTransformer;
+		public ProducerTransformerDelegate ProducerTransformer
+		{
+			get { return this.producerTransformer; }
+			set { this.producerTransformer = value; }
+		}
+
+		public void Close()
+		{
+			Dispose();
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/StreamMessage.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/StreamMessage.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/StreamMessage.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/StreamMessage.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,893 @@
+/*
+ * 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.IO;
+using Apache.NMS.Util;
+
+namespace Apache.NMS.ZMQ
+{
+	public class StreamMessage : BaseMessage, IStreamMessage
+	{
+		private EndianBinaryReader dataIn = null;
+		private EndianBinaryWriter dataOut = null;
+		private MemoryStream byteBuffer = null;
+		private int bytesRemaining = -1;
+
+		public bool ReadBoolean()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.BOOLEAN_TYPE)
+					{
+						return this.dataIn.ReadBoolean();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Boolean.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a bool");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Boolean type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public byte ReadByte()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.BYTE_TYPE)
+					{
+						return this.dataIn.ReadByte();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Byte.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a byte");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Byte type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public char ReadChar()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.CHAR_TYPE)
+					{
+						return this.dataIn.ReadChar();
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a char");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Char type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public short ReadInt16()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.SHORT_TYPE)
+					{
+						return this.dataIn.ReadInt16();
+					}
+					else if(type == PrimitiveMap.BYTE_TYPE)
+					{
+						return this.dataIn.ReadByte();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Int16.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a short");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Int16 type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public int ReadInt32()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.INTEGER_TYPE)
+					{
+						return this.dataIn.ReadInt32();
+					}
+					else if(type == PrimitiveMap.SHORT_TYPE)
+					{
+						return this.dataIn.ReadInt16();
+					}
+					else if(type == PrimitiveMap.BYTE_TYPE)
+					{
+						return this.dataIn.ReadByte();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Int32.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a int");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Int32 type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public long ReadInt64()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.LONG_TYPE)
+					{
+						return this.dataIn.ReadInt64();
+					}
+					else if(type == PrimitiveMap.INTEGER_TYPE)
+					{
+						return this.dataIn.ReadInt32();
+					}
+					else if(type == PrimitiveMap.SHORT_TYPE)
+					{
+						return this.dataIn.ReadInt16();
+					}
+					else if(type == PrimitiveMap.BYTE_TYPE)
+					{
+						return this.dataIn.ReadByte();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Int64.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a long");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Int64 type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public float ReadSingle()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.FLOAT_TYPE)
+					{
+						return this.dataIn.ReadSingle();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Single.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a float");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Single type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public double ReadDouble()
+		{
+			InitializeReading();
+
+			try
+			{
+				long startingPos = this.byteBuffer.Position;
+				try
+				{
+					int type = this.dataIn.ReadByte();
+
+					if(type == PrimitiveMap.DOUBLE_TYPE)
+					{
+						return this.dataIn.ReadDouble();
+					}
+					else if(type == PrimitiveMap.FLOAT_TYPE)
+					{
+						return this.dataIn.ReadSingle();
+					}
+					else if(type == PrimitiveMap.STRING_TYPE)
+					{
+						return Single.Parse(this.dataIn.ReadString16());
+					}
+					else if(type == PrimitiveMap.NULL)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new NMSException("Cannot convert Null type to a double");
+					}
+					else
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Value is not a Double type.");
+					}
+				}
+				catch(FormatException e)
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw NMSExceptionSupport.CreateMessageFormatException(e);
+				}
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public string ReadString()
+		{
+			InitializeReading();
+
+			long startingPos = this.byteBuffer.Position;
+
+			try
+			{
+				int type = this.dataIn.ReadByte();
+
+				if(type == PrimitiveMap.BIG_STRING_TYPE)
+				{
+					return this.dataIn.ReadString32();
+				}
+				else if(type == PrimitiveMap.STRING_TYPE)
+				{
+					return this.dataIn.ReadString16();
+				}
+				else if(type == PrimitiveMap.LONG_TYPE)
+				{
+					return this.dataIn.ReadInt64().ToString();
+				}
+				else if(type == PrimitiveMap.INTEGER_TYPE)
+				{
+					return this.dataIn.ReadInt32().ToString();
+				}
+				else if(type == PrimitiveMap.SHORT_TYPE)
+				{
+					return this.dataIn.ReadInt16().ToString();
+				}
+				else if(type == PrimitiveMap.FLOAT_TYPE)
+				{
+					return this.dataIn.ReadSingle().ToString();
+				}
+				else if(type == PrimitiveMap.DOUBLE_TYPE)
+				{
+					return this.dataIn.ReadDouble().ToString();
+				}
+				else if(type == PrimitiveMap.CHAR_TYPE)
+				{
+					return this.dataIn.ReadChar().ToString();
+				}
+				else if(type == PrimitiveMap.BYTE_TYPE)
+				{
+					return this.dataIn.ReadByte().ToString();
+				}
+				else if(type == PrimitiveMap.BOOLEAN_TYPE)
+				{
+					return this.dataIn.ReadBoolean().ToString();
+				}
+				else if(type == PrimitiveMap.NULL)
+				{
+					return null;
+				}
+				else
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw new MessageFormatException("Value is not a known type.");
+				}
+			}
+			catch(FormatException e)
+			{
+				this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public int ReadBytes(byte[] value)
+		{
+			InitializeReading();
+
+			if(value == null)
+			{
+				throw new NullReferenceException("Passed Byte Array is null");
+			}
+
+			try
+			{
+				if(this.bytesRemaining == -1)
+				{
+					long startingPos = this.byteBuffer.Position;
+					byte type = this.dataIn.ReadByte();
+
+					if(type != PrimitiveMap.BYTE_ARRAY_TYPE)
+					{
+						this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+						throw new MessageFormatException("Not a byte array");
+					}
+
+					this.bytesRemaining = this.dataIn.ReadInt32();
+				}
+				else if(this.bytesRemaining == 0)
+				{
+					this.bytesRemaining = -1;
+					return -1;
+				}
+
+				if(value.Length <= this.bytesRemaining)
+				{
+					// small buffer
+					this.bytesRemaining -= value.Length;
+					this.dataIn.Read(value, 0, value.Length);
+					return value.Length;
+				}
+				else
+				{
+					// big buffer
+					int rc = this.dataIn.Read(value, 0, this.bytesRemaining);
+					this.bytesRemaining = 0;
+					return rc;
+				}
+			}
+			catch(EndOfStreamException ex)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(ex);
+			}
+			catch(IOException ex)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(ex);
+			}
+		}
+
+		public Object ReadObject()
+		{
+			InitializeReading();
+
+			long startingPos = this.byteBuffer.Position;
+
+			try
+			{
+				int type = this.dataIn.ReadByte();
+
+				if(type == PrimitiveMap.BIG_STRING_TYPE)
+				{
+					return this.dataIn.ReadString32();
+				}
+				else if(type == PrimitiveMap.STRING_TYPE)
+				{
+					return this.dataIn.ReadString16();
+				}
+				else if(type == PrimitiveMap.LONG_TYPE)
+				{
+					return this.dataIn.ReadInt64();
+				}
+				else if(type == PrimitiveMap.INTEGER_TYPE)
+				{
+					return this.dataIn.ReadInt32();
+				}
+				else if(type == PrimitiveMap.SHORT_TYPE)
+				{
+					return this.dataIn.ReadInt16();
+				}
+				else if(type == PrimitiveMap.FLOAT_TYPE)
+				{
+					return this.dataIn.ReadSingle();
+				}
+				else if(type == PrimitiveMap.DOUBLE_TYPE)
+				{
+					return this.dataIn.ReadDouble();
+				}
+				else if(type == PrimitiveMap.CHAR_TYPE)
+				{
+					return this.dataIn.ReadChar();
+				}
+				else if(type == PrimitiveMap.BYTE_TYPE)
+				{
+					return this.dataIn.ReadByte();
+				}
+				else if(type == PrimitiveMap.BOOLEAN_TYPE)
+				{
+					return this.dataIn.ReadBoolean();
+				}
+				else if(type == PrimitiveMap.BYTE_ARRAY_TYPE)
+				{
+					int length = this.dataIn.ReadInt32();
+					byte[] data = new byte[length];
+					this.dataIn.Read(data, 0, length);
+					return data;
+				}
+				else if(type == PrimitiveMap.NULL)
+				{
+					return null;
+				}
+				else
+				{
+					this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+					throw new MessageFormatException("Value is not a known type.");
+				}
+			}
+			catch(FormatException e)
+			{
+				this.byteBuffer.Seek(startingPos, SeekOrigin.Begin);
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+			catch(EndOfStreamException e)
+			{
+				throw NMSExceptionSupport.CreateMessageEOFException(e);
+			}
+			catch(IOException e)
+			{
+				throw NMSExceptionSupport.CreateMessageFormatException(e);
+			}
+		}
+
+		public void WriteBoolean(bool value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.BOOLEAN_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteByte(byte value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.BYTE_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteBytes(byte[] value)
+		{
+			InitializeWriting();
+			this.WriteBytes(value, 0, value.Length);
+		}
+
+		public void WriteBytes(byte[] value, int offset, int length)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.BYTE_ARRAY_TYPE);
+				this.dataOut.Write((int) length);
+				this.dataOut.Write(value, offset, length);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteChar(char value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.CHAR_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteInt16(short value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.SHORT_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteInt32(int value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.INTEGER_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteInt64(long value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.LONG_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteSingle(float value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.FLOAT_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteDouble(double value)
+		{
+			InitializeWriting();
+			try
+			{
+				this.dataOut.Write(PrimitiveMap.DOUBLE_TYPE);
+				this.dataOut.Write(value);
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteString(string value)
+		{
+			InitializeWriting();
+			try
+			{
+				if(value.Length > 8192)
+				{
+					this.dataOut.Write(PrimitiveMap.BIG_STRING_TYPE);
+					this.dataOut.WriteString32(value);
+				}
+				else
+				{
+					this.dataOut.Write(PrimitiveMap.STRING_TYPE);
+					this.dataOut.WriteString16(value);
+				}
+			}
+			catch(IOException e)
+			{
+				NMSExceptionSupport.Create(e);
+			}
+		}
+
+		public void WriteObject(Object value)
+		{
+			InitializeWriting();
+			if(value is System.Byte)
+			{
+				this.WriteByte((byte) value);
+			}
+			else if(value is Char)
+			{
+				this.WriteChar((char) value);
+			}
+			else if(value is Boolean)
+			{
+				this.WriteBoolean((bool) value);
+			}
+			else if(value is Int16)
+			{
+				this.WriteInt16((short) value);
+			}
+			else if(value is Int32)
+			{
+				this.WriteInt32((int) value);
+			}
+			else if(value is Int64)
+			{
+				this.WriteInt64((long) value);
+			}
+			else if(value is Single)
+			{
+				this.WriteSingle((float) value);
+			}
+			else if(value is Double)
+			{
+				this.WriteDouble((double) value);
+			}
+			else if(value is byte[])
+			{
+				this.WriteBytes((byte[]) value);
+			}
+			else if(value is String)
+			{
+				this.WriteString((string) value);
+			}
+			else
+			{
+				throw new MessageFormatException("Cannot write non-primitive type:" + value.GetType());
+			}
+		}
+
+		public override void ClearBody()
+		{
+			base.ClearBody();
+			this.byteBuffer = null;
+			this.dataIn = null;
+			this.dataOut = null;
+			this.bytesRemaining = -1;
+		}
+
+		public void Reset()
+		{
+			StoreContent();
+			this.dataIn = null;
+			this.dataOut = null;
+			this.byteBuffer = null;
+			this.bytesRemaining = -1;
+			this.ReadOnlyBody = true;
+		}
+
+		private void InitializeReading()
+		{
+			FailIfWriteOnlyBody();
+			if(this.dataIn == null)
+			{
+				// TODO - Add support for Message Compression.
+				this.byteBuffer = new MemoryStream(this.Content, false);
+				dataIn = new EndianBinaryReader(byteBuffer);
+			}
+		}
+
+		private void InitializeWriting()
+		{
+			FailIfReadOnlyBody();
+			if(this.dataOut == null)
+			{
+				// TODO - Add support for Message Compression.
+				this.byteBuffer = new MemoryStream();
+				this.dataOut = new EndianBinaryWriter(byteBuffer);
+			}
+		}
+
+		private void StoreContent()
+		{
+			if(dataOut != null)
+			{
+				dataOut.Close();
+				// TODO - Add support for Message Compression.
+
+				this.Content = byteBuffer.ToArray();
+				this.dataOut = null;
+				this.byteBuffer = null;
+			}
+		}
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryQueue.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryQueue.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryQueue.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryQueue.cs Fri Jul  8 18:55:17 2011
@@ -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;
+
+namespace Apache.NMS.ZMQ
+{
+	/// <summary>
+	/// Summary description for TemporaryQueue.
+	/// </summary>
+	public class TemporaryQueue : Destination, ITemporaryQueue
+	{
+		public TemporaryQueue()
+			: base()
+		{
+		}
+
+		public TemporaryQueue(String name)
+			: base(name)
+		{
+		}
+
+		override public DestinationType DestinationType
+		{
+			get { return DestinationType.TemporaryQueue; }
+		}
+
+		#region ITemporaryQueue Members
+
+		public void Delete()
+		{
+			// Nothing to delete.  Resources are cleaned up automatically.
+		}
+
+		#endregion
+
+		#region IQueue Members
+
+		public string QueueName
+		{
+			get { return Name; }
+		}
+
+		#endregion
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryTopic.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryTopic.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryTopic.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TemporaryTopic.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,61 @@
+/*
+ * 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;
+
+namespace Apache.NMS.ZMQ
+{
+	/// <summary>
+	/// Summary description for TemporaryTopic.
+	/// </summary>
+	public class TemporaryTopic : Destination, ITemporaryTopic
+	{
+		public TemporaryTopic()
+			: base()
+		{
+		}
+
+		public TemporaryTopic(String name)
+			: base(name)
+		{
+		}
+
+		override public DestinationType DestinationType
+		{
+			get { return DestinationType.TemporaryTopic; }
+		}
+
+		#region ITopic Members
+
+		public string TopicName
+		{
+			get { return Name; }
+		}
+
+		#endregion
+
+		#region ITemporaryTopic Members
+
+		public void Delete()
+		{
+			// Nothing to delete.  Resources are cleaned up automatically.
+		}
+
+		#endregion
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TextMessage.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TextMessage.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TextMessage.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/TextMessage.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,101 @@
+/*
+ * 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;
+
+namespace Apache.NMS.ZMQ
+{
+	public class TextMessage : BaseMessage, ITextMessage
+	{
+		public const int SIZE_OF_INT = 4; // sizeof(int) - though causes unsafe issues with net 1.1
+
+		private String text;
+
+		public TextMessage()
+		{
+		}
+
+		public TextMessage(String text)
+		{
+			this.Text = text;
+		}
+
+
+		// Properties
+
+		public string Text
+		{
+			get
+			{
+				if(text == null)
+				{
+					// now lets read the content
+					byte[] data = this.Content;
+					if(data != null)
+					{
+						// TODO assume that the text is ASCII
+						char[] chars = new char[data.Length - SIZE_OF_INT];
+						for(int i = 0; i < chars.Length; i++)
+						{
+							chars[i] = (char) data[i + SIZE_OF_INT];
+						}
+						text = new String(chars);
+					}
+				}
+				return text;
+			}
+
+			set
+			{
+				this.text = value;
+				byte[] data = null;
+				if(text != null)
+				{
+					// TODO assume that the text is ASCII
+
+					byte[] sizePrefix = System.BitConverter.GetBytes(text.Length);
+					data = new byte[text.Length + sizePrefix.Length];  //int at the front of it
+
+					// add the size prefix
+					for(int j = 0; j < sizePrefix.Length; j++)
+					{
+						// The bytes need to be encoded in big endian
+						if(BitConverter.IsLittleEndian)
+						{
+							data[j] = sizePrefix[sizePrefix.Length - j - 1];
+						}
+						else
+						{
+							data[j] = sizePrefix[j];
+						}
+					}
+
+					// Add the data.
+					char[] chars = text.ToCharArray();
+					for(int i = 0; i < chars.Length; i++)
+					{
+						data[i + sizePrefix.Length] = (byte) chars[i];
+					}
+				}
+				this.Content = data;
+
+			}
+		}
+
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Topic.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Topic.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Topic.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Topic.cs Fri Jul  8 18:55:17 2011
@@ -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;
+
+namespace Apache.NMS.ZMQ
+{
+	/// <summary>
+	/// Summary description for Topic.
+	/// </summary>
+	public class Topic : Destination, ITopic
+	{
+		public Topic()
+			: base()
+		{
+		}
+
+		public Topic(String name)
+			: base(name)
+		{
+		}
+
+		override public DestinationType DestinationType
+		{
+			get { return DestinationType.Topic; }
+		}
+
+		#region ITopic Members
+
+		public string TopicName
+		{
+			get { return Name; }
+		}
+
+		#endregion
+	}
+}
+

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqMessage.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqMessage.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqMessage.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqMessage.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+namespace Apache.NMS.ZMQ
+{
+	public class ZmqMessage
+	{
+		public string ClientId = "";
+		public IDestination Destination = null;
+		public string Text = "";
+	}
+}

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqSubscriber.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqSubscriber.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqSubscriber.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqSubscriber.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,80 @@
+/*
+ * 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.Text;
+using CLRZMQ = ZMQ;
+
+namespace Apache.NMS.ZMQ
+{
+	public class ZmqSubscriber : IDisposable
+	{
+		/// <summary>
+		/// Socket object
+		/// </summary>
+		private CLRZMQ.Socket m_Subscriber = null;
+
+		/// <summary>
+		/// Context binding string
+		/// </summary>
+		private string m_Binding;
+
+		public ZmqSubscriber(Connection connection, IDestination destination, string selector)
+		{
+			if(null != Connection.Context)
+			{
+				m_Subscriber = Connection.Context.Socket(CLRZMQ.SocketType.SUB);
+			}
+			Connect(connection.ClientId, connection.BrokerUri.LocalPath, selector);
+		}
+
+		private void Connect(string clientId, string binding, string selector)
+		{
+			m_Binding = binding;
+			if(null != m_Subscriber)
+			{
+				if(!string.IsNullOrEmpty(clientId))
+				{
+					m_Subscriber.StringToIdentity(clientId, Encoding.Unicode);
+				}
+				m_Subscriber.Connect(binding);
+				m_Subscriber.Subscribe(!string.IsNullOrEmpty(selector) ? selector : "", System.Text.Encoding.ASCII);
+			}
+		}
+
+		public void Dispose()
+		{
+			if(null != m_Subscriber)
+			{
+				m_Subscriber.Dispose();
+				m_Subscriber = null;
+			}
+		}
+
+		#region Properties
+		internal CLRZMQ.Socket Subscriber
+		{
+			get { return m_Subscriber; }
+		}
+
+		public string Binding
+		{
+			get { return m_Binding; }
+		}
+		#endregion
+	}
+}

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/
------------------------------------------------------------------------------
    bugtraq:label = Issue#:

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/
------------------------------------------------------------------------------
--- bugtraq:message (added)
+++ bugtraq:message Fri Jul  8 18:55:17 2011
@@ -0,0 +1 @@
+Fixes [AMQNET-%BUGID%]. (See https://issues.apache.org/jira/browse/AMQNET-%BUGID%)

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/
------------------------------------------------------------------------------
    bugtraq:url = https://issues.apache.org/jira/browse/AMQNET-%BUGID%

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/NamespaceSummary.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/NamespaceSummary.xml?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/NamespaceSummary.xml (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/ndoc/NamespaceSummary.xml Fri Jul  8 18:55:17 2011
@@ -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="NMS">
+        The <b>NMS</b> namespace defines the .Net Message System API which is an interface to messaging systems rather like JMS is for Java.
+    </namespace>
+</namespaces>

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/
------------------------------------------------------------------------------
    bugtraq:label = Issue#:

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/
------------------------------------------------------------------------------
--- bugtraq:message (added)
+++ bugtraq:message Fri Jul  8 18:55:17 2011
@@ -0,0 +1 @@
+Fixes [AMQNET-%BUGID%]. (See https://issues.apache.org/jira/browse/AMQNET-%BUGID%)

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/
------------------------------------------------------------------------------
    bugtraq:url = https://issues.apache.org/jira/browse/AMQNET-%BUGID%

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/feedback_content.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/feedback_content.xml?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/feedback_content.xml (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/sandcastle/feedback_content.xml Fri Jul  8 18:55:17 2011
@@ -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.ZMQ/trunk/src/test/
------------------------------------------------------------------------------
    bugtraq:label = Issue#:

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/
------------------------------------------------------------------------------
--- bugtraq:message (added)
+++ bugtraq:message Fri Jul  8 18:55:17 2011
@@ -0,0 +1 @@
+Fixes [AMQNET-%BUGID%]. (See https://issues.apache.org/jira/browse/AMQNET-%BUGID%)

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/
------------------------------------------------------------------------------
    bugtraq:url = https://issues.apache.org/jira/browse/AMQNET-%BUGID%

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/
------------------------------------------------------------------------------
    bugtraq:label = Issue#:

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/
------------------------------------------------------------------------------
--- bugtraq:message (added)
+++ bugtraq:message Fri Jul  8 18:55:17 2011
@@ -0,0 +1 @@
+Fixes [AMQNET-%BUGID%]. (See https://issues.apache.org/jira/browse/AMQNET-%BUGID%)

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/
------------------------------------------------------------------------------
    bugtraq:url = https://issues.apache.org/jira/browse/AMQNET-%BUGID%

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/CommonAssemblyInfo.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/CommonAssemblyInfo.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/CommonAssemblyInfo.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/CommonAssemblyInfo.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,28 @@
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.4952
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+[assembly: ComVisibleAttribute(false)]
+[assembly: CLSCompliantAttribute(true)]
+[assembly: AssemblyTitleAttribute("Apache NMS for ZMQ Class Library")]
+[assembly: AssemblyDescriptionAttribute("Apache NMS for ZMQ Class Library (.Net Messaging Library Implementation): An imp" +
+    "lementation of the NMS API for ZMQ")]
+[assembly: AssemblyConfigurationAttribute("SNAPSHOT")]
+[assembly: AssemblyCompanyAttribute("http://activemq.apache.org/nms")]
+[assembly: AssemblyProductAttribute("Apache NMS for ZMQ Class Library")]
+[assembly: AssemblyCopyrightAttribute("Copyright (C) 2005-2011 Apache Software Foundation")]
+[assembly: AssemblyTrademarkAttribute("")]
+[assembly: AssemblyCultureAttribute("")]
+[assembly: AssemblyVersionAttribute("1.6.0.2363")]
+[assembly: AssemblyInformationalVersionAttribute("1.6.0")]
+

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/ZMQTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/ZMQTest.cs?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/ZMQTest.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/test/csharp/ZMQTest.cs Fri Jul  8 18:55:17 2011
@@ -0,0 +1,149 @@
+/*
+ * 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.Messaging;
+using NUnit.Framework;
+using System.Threading;
+
+namespace Apache.NMS.ZMQ
+{
+	/// <summary>
+	/// Use to test and verify ZMQ behavior
+	/// </summary>
+	[TestFixture]
+	public class ZMQTest
+	{
+		private bool receivedTestMessage = true;
+
+		[SetUp]
+		public void SetUp()
+		{
+			// Setup before each test
+		}
+
+		[TearDown]
+		public void TearDown()
+		{
+			// Clean up after each test
+		}
+
+		[Test]
+		public void TestReceive()
+		{
+			////////////////////////////
+			// Dependencies check
+			////////////////////////////
+			string TmpPath;
+			string TmpFilename;
+			//TmpPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
+			TmpPath = System.Environment.CurrentDirectory;
+			if(!TmpPath.EndsWith("\\"))
+			{
+				TmpPath += "\\";
+			}
+
+			TmpFilename = TmpPath + "libzmq.dll";
+			Assert.IsTrue(System.IO.File.Exists(TmpFilename), "Missing zmq library file: {0}", TmpFilename);
+			TmpFilename = TmpPath + "clrzmq.dll";
+			Assert.IsTrue(System.IO.File.Exists(TmpFilename), "Missing zmq wrapper file: {0}", TmpFilename);
+			TmpFilename = TmpPath + "Apache.NMS.dll";
+			Assert.IsTrue(System.IO.File.Exists(TmpFilename), "Missing Apache.NMS library file: {0}", TmpFilename);
+			TmpFilename = TmpPath + "Apache.NMS.ZMQ.dll";
+			Assert.IsTrue(System.IO.File.Exists(TmpFilename), "Missing Apache.NMS.ZMQ library file: {0}", TmpFilename);
+
+			////////////////////////////
+			// Factory check
+			////////////////////////////
+			Apache.NMS.ZMQ.ConnectionFactory factory = new Apache.NMS.ZMQ.ConnectionFactory("zmq:tcp://localhost:5556", "");
+			Assert.IsNotNull(factory);
+
+			////////////////////////////
+			// Connection check
+			////////////////////////////
+			IConnection connection = null;
+			try
+			{
+				connection = factory.CreateConnection();
+				Assert.IsNotNull(connection, "problem creating connection class, usually problem with libzmq and clrzmq ");
+			}
+			catch(System.Exception ex1)
+			{
+				Assert.Fail("Problem creating connection, make sure dependencies are present. Error: {0}", ex1.Message);
+			}
+
+			////////////////////////////
+			// Session check
+			////////////////////////////
+			ISession session = connection.CreateSession();
+			// Is session good?
+			Assert.IsNotNull(session, "Error creating Session.");
+
+			////////////////////////////
+			// Consumer check
+			////////////////////////////
+			IQueue testQueue = new Queue("ZMQTestQueue");
+			Assert.IsNotNull(testQueue, "Error creating test queue.");
+			IMessageConsumer consumer = session.CreateConsumer(testQueue);
+			Assert.IsNotNull(consumer, "Error creating consumer.");
+
+			consumer.Listener += OnMessage;
+
+			////////////////////////////
+			// Producer check
+			////////////////////////////
+			IMessageProducer producer = session.CreateProducer(testQueue);
+			Assert.IsNotNull(consumer);
+
+			ITextMessage testMsg = producer.CreateTextMessage("Zero Message.");
+			Assert.IsNotNull(testMsg, "Error creating test message.");
+
+			producer.Send(testMsg);
+
+			////////////////////////////
+			// Listener check
+			////////////////////////////
+			DateTime startWaitTime = DateTime.Now;
+			TimeSpan maxWaitTime = TimeSpan.FromSeconds(10);
+
+			while(!receivedTestMessage)
+			{
+				if((DateTime.Now - startWaitTime) > maxWaitTime)
+				{
+					Assert.Fail("Timeout waiting for message receive.");
+				}
+
+				Thread.Sleep(5);
+			}
+		}
+
+		/// <summary>
+		/// Receive messages sent to consumer.
+		/// </summary>
+		/// <param name="message"></param>
+		private void OnMessage(IMessage message)
+		{
+			Assert.IsInstanceOf<ITextMessage>(message, "Wrong message type received.");
+			ITextMessage textMsg = (ITextMessage) message;
+			Assert.AreEqual(textMsg.Text, "Zero Message.");
+			receivedTestMessage = true;
+		}
+	}
+}
+
+
+

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0-test.csproj?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0-test.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0-test.csproj Fri Jul  8 18:55:17 2011
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{2F31ED5C-44A2-464A-BD55-2B5B010654E8}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Apache.NMS.ZMQ.Test</RootNamespace>
+    <AssemblyName>Apache.NMS.ZMQ.Test</AssemblyName>
+    <WarningLevel>4</WarningLevel>
+    <StartupObject>
+    </StartupObject>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>
+    </AssemblyOriginatorKeyFile>
+    <SccProjectName>
+    </SccProjectName>
+    <SccLocalPath>
+    </SccLocalPath>
+    <SccAuxPath>
+    </SccAuxPath>
+    <SccProvider>
+    </SccProvider>
+    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile />
+    <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>
+    <BaseIntermediateOutputPath>obj\net-4.0</BaseIntermediateOutputPath>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\net-4.0\Debug\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;NET</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <NoWarn>
+    </NoWarn>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\net-4.0\Release\</OutputPath>
+    <DefineConstants>TRACE;NET</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <DebugType>full</DebugType>
+    <NoWarn>
+    </NoWarn>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Apache.NMS, Version=1.5.1.2378, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>
+    </Reference>
+    <Reference Include="Apache.NMS.Test, Version=1.5.1.2378, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.Test.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <HintPath>lib\NUnit\net-4.0\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Messaging" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />
+    <Compile Include="src\test\csharp\ZMQTest.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="vs2010-zmq-net-4.0.csproj">
+      <Project>{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}</Project>
+      <Name>vs2008-msmq</Name>
+    </ProjectReference>
+  </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>
+    <Content Include="lib\clrzmq\net-4.0x64\libzmq.dll">
+      <Link>libzmq.dll</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+  <PropertyGroup>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0.csproj?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0.csproj (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0.csproj Fri Jul  8 18:55:17 2011
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Apache.NMS.ZMQ</RootNamespace>
+    <AssemblyName>Apache.NMS.ZMQ</AssemblyName>
+    <WarningLevel>4</WarningLevel>
+    <StartupObject>
+    </StartupObject>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>
+    </AssemblyOriginatorKeyFile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <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>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+    <SccProjectName>
+    </SccProjectName>
+    <SccLocalPath>
+    </SccLocalPath>
+    <SccAuxPath>
+    </SccAuxPath>
+    <SccProvider>
+    </SccProvider>
+    <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile />
+    <BaseIntermediateOutputPath>obj\net-4.0</BaseIntermediateOutputPath>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\net-4.0\Debug\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;NET</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\net-4.0\Release\</OutputPath>
+    <DefineConstants>TRACE;NET</DefineConstants>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Apache.NMS, Version=1.5.0.2363, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Apache.NMS\net-4.0\Apache.NMS.dll</HintPath>
+    </Reference>
+    <Reference Include="clrzmq64">
+      <HintPath>lib\clrzmq\net-4.0\clrzmq64.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Messaging" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="src\main\csharp\BaseMessage.cs" />
+    <Compile Include="src\main\csharp\BytesMessage.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <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\TemporaryTopic.cs" />
+    <Compile Include="src\main\csharp\Topic.cs" />
+    <Compile Include="src\main\csharp\TemporaryQueue.cs" />
+    <Compile Include="src\main\csharp\DefaultMessageConverter.cs" />
+    <Compile Include="src\main\csharp\Destination.cs" />
+    <Compile Include="src\main\csharp\IMessageConverter.cs" />
+    <Compile Include="src\main\csharp\MapMessage.cs" />
+    <Compile Include="src\main\csharp\MessageConsumer.cs" />
+    <Compile Include="src\main\csharp\MessageProducer.cs" />
+    <Compile Include="src\main\csharp\ObjectMessage.cs" />
+    <Compile Include="src\main\csharp\Queue.cs" />
+    <Compile Include="src\main\csharp\Session.cs" />
+    <Compile Include="src\main\csharp\StreamMessage.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="src\main\csharp\TextMessage.cs" />
+    <Compile Include="src\main\csharp\ZmqSubscriber.cs" />
+    <Compile Include="src\main\csharp\ZmqMessage.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <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>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq.sln
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq.sln?rev=1144423&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq.sln (added)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq.sln Fri Jul  8 18:55:17 2011
@@ -0,0 +1,30 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2010-zmq-net-4.0", "vs2010-zmq-net-4.0.csproj", "{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vs2010-zmq-net-4.0-test", "vs2010-zmq-net-4.0-test.csproj", "{2F31ED5C-44A2-464A-BD55-2B5B010654E8}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A5FCA129-991B-4CB2-987A-B25E43B0F5EC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2F31ED5C-44A2-464A-BD55-2B5B010654E8}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(SubversionScc) = preSolution
+		Svn-Managed = True
+		Manager = AnkhSVN - Subversion Support for Visual Studio
+	EndGlobalSection
+EndGlobal



Mime
View raw message