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 2011/07/12 02:28:55 UTC
svn commit: r1145404 - in /activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk: ./
src/main/csharp/
Author: jgomes
Date: Tue Jul 12 00:28:55 2011
New Revision: 1145404
URL: http://svn.apache.org/viewvc?rev=1145404&view=rev
Log:
Implemented basic message producer. Removed unnecessary ZmqMessage. The normal message types will be directly supported once the wire format encoding is added.
Fixes [AMQNET-333]. (See https://issues.apache.org/jira/browse/AMQNET-333)
Removed:
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/DefaultMessageConverter.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/IMessageConverter.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/ZmqMessage.cs
Modified:
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Connection.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageConsumer.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageProducer.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x64.csproj
activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x86.csproj
Modified: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Connection.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Connection.cs?rev=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Connection.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Connection.cs Tue Jul 12 00:28:55 2011
@@ -27,8 +27,6 @@ namespace Apache.NMS.ZMQ
public class Connection : IConnection
{
private AcknowledgementMode acknowledgementMode = AcknowledgementMode.AutoAcknowledge;
- private IMessageConverter messageConverter = new DefaultMessageConverter();
-
private IRedeliveryPolicy redeliveryPolicy;
private ConnectionMetaData metaData = null;
private bool closed = true;
@@ -45,7 +43,7 @@ namespace Apache.NMS.ZMQ
/// </summary>
public void Start()
{
- CheckConnected();
+ closed = false;
}
/// <summary>
@@ -54,7 +52,7 @@ namespace Apache.NMS.ZMQ
/// </summary>
public bool IsStarted
{
- get { return true; }
+ get { return !closed; }
}
/// <summary>
@@ -62,7 +60,7 @@ namespace Apache.NMS.ZMQ
/// </summary>
public void Stop()
{
- CheckConnected();
+ closed = true;
}
/// <summary>
@@ -78,13 +76,17 @@ namespace Apache.NMS.ZMQ
/// </summary>
public ISession CreateSession(AcknowledgementMode mode)
{
- CheckConnected();
return new Session(this, mode);
}
public void Dispose()
{
- closed = true;
+ Close();
+ }
+
+ public void Close()
+ {
+ Stop();
}
/// <summary>
@@ -102,12 +104,6 @@ namespace Apache.NMS.ZMQ
set { acknowledgementMode = value; }
}
- public IMessageConverter MessageConverter
- {
- get { return messageConverter; }
- set { messageConverter = value; }
- }
-
/// <summary>
/// Get/or set the broker Uri.
/// </summary>
@@ -123,10 +119,7 @@ namespace Apache.NMS.ZMQ
public string ClientId
{
get { return clientId; }
- set
- {
- clientId = value;
- }
+ set { clientId = value; }
}
/// <summary>
@@ -157,10 +150,7 @@ namespace Apache.NMS.ZMQ
/// </summary>
static internal ZContext Context
{
- get
- {
- return _context;
- }
+ get { return _context; }
}
/// <summary>
@@ -188,20 +178,6 @@ namespace Apache.NMS.ZMQ
/// </summary>
public event ConnectionResumedListener ConnectionResumedListener;
- protected void CheckConnected()
- {
- closed = false;
- if(null == messageConverter)
- {
- throw new NMSException("Context Not Created");
- }
- }
-
- public void Close()
- {
- Dispose();
- }
-
public void HandleException(System.Exception e)
{
if(ExceptionListener != null && !this.closed)
Modified: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageConsumer.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageConsumer.cs?rev=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageConsumer.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageConsumer.cs Tue Jul 12 00:28:55 2011
@@ -19,9 +19,9 @@ using System;
using System.Text;
using System.Threading;
using Apache.NMS.Util;
+using ZSendRecvOpt = ZMQ.SendRecvOpt;
using ZSocket = ZMQ.Socket;
using ZSocketType = ZMQ.SocketType;
-using ZSendRecvOpt = ZMQ.SendRecvOpt;
namespace Apache.NMS.ZMQ
{
@@ -114,16 +114,8 @@ namespace Apache.NMS.ZMQ
/// </returns>
public IMessage Receive()
{
- IMessage nmsMessage = null;
- if(null != messageSubscriber)
- {
- string messageText = messageSubscriber.Recv(Encoding.ASCII, ZSendRecvOpt.NOBLOCK);
- if(!string.IsNullOrEmpty(messageText))
- {
- nmsMessage = ToNmsMessage(messageText);
- }
- }
- return nmsMessage;
+ // TODO: Support decoding of all message types + all meta data (e.g., headers and properties)
+ return ToNmsMessage(messageSubscriber.Recv(Encoding.ASCII, ZSendRecvOpt.NOBLOCK));
}
/// <summary>
@@ -134,16 +126,8 @@ namespace Apache.NMS.ZMQ
/// </returns>
public IMessage Receive(TimeSpan timeout)
{
- IMessage nmsMessage = null;
- if(null != messageSubscriber)
- {
- string messageText = messageSubscriber.Recv(Encoding.ASCII, timeout.Milliseconds);
- if(!string.IsNullOrEmpty(messageText))
- {
- nmsMessage = ToNmsMessage(messageText);
- }
- }
- return nmsMessage;
+ // TODO: Support decoding of all message types + all meta data (e.g., headers and properties)
+ return ToNmsMessage(messageSubscriber.Recv(Encoding.ASCII, timeout.Milliseconds));
}
/// <summary>
@@ -257,60 +241,36 @@ namespace Apache.NMS.ZMQ
/// <returns>
/// nms message object
/// </returns>
- protected virtual IMessage ToNmsMessage(ZmqMessage message)
+ protected virtual IMessage ToNmsMessage(string messageText)
{
- IMessage ReturnValue = null;
- if(null == message)
+ IMessage nmsMessage = new TextMessage(messageText);
+
+ try
{
- return ReturnValue;
+ nmsMessage.NMSMessageId = "";
+ nmsMessage.NMSDestination = new Queue(contextBinding);
+ nmsMessage.NMSDeliveryMode = MsgDeliveryMode.NonPersistent;
+ nmsMessage.NMSPriority = MsgPriority.Normal;
+ nmsMessage.NMSTimestamp = DateTime.Now;
+ nmsMessage.NMSTimeToLive = new TimeSpan(0);
+ nmsMessage.NMSType = "";
+ }
+ catch(InvalidOperationException)
+ {
+ // Log error
}
- ReturnValue = session.MessageConverter.ToNmsMessage(message);
-
- if(this.ConsumerTransformer != null)
+ if(null != this.ConsumerTransformer)
{
- IMessage newMessage = ConsumerTransformer(this.session, this, ReturnValue);
- if(newMessage != null)
+ IMessage transformedMessage = ConsumerTransformer(this.session, this, nmsMessage);
+
+ if(null != transformedMessage)
{
- ReturnValue = newMessage;
+ nmsMessage = transformedMessage;
}
}
- return ReturnValue;
- }
- /// <summary>
- /// Create nms message object
- /// </summary>
- /// <param name="message">
- /// message text
- /// </param>
- /// <returns>
- /// nms message object
- /// </returns>
- protected virtual IMessage ToNmsMessage(string messageText)
- {
- IMessage ReturnValue = null;
- ZmqMessage message = ToZmqMessage(messageText);
- ReturnValue = ToNmsMessage(message);
- return ReturnValue;
- }
-
- /// <summary>
- /// Create zmq message object
- /// </summary>
- /// <param name="messageText">
- /// message text
- /// </param>
- /// <returns>
- /// zmq message object
- /// </returns>
- private ZmqMessage ToZmqMessage(string messageText)
- {
- ZmqMessage message = new ZmqMessage();
- message.Destination = new Queue(this.contextBinding);
- message.ClientId = session.Connection.ClientId;
- message.Text = messageText;
- return message;
+ return nmsMessage;
}
}
}
Modified: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageProducer.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageProducer.cs?rev=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageProducer.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/MessageProducer.cs Tue Jul 12 00:28:55 2011
@@ -84,7 +84,18 @@ namespace Apache.NMS.ZMQ
public void Send(IDestination destination, IMessage message, MsgDeliveryMode deliveryMode, MsgPriority priority, TimeSpan timeToLive)
{
- messageProducer.Send();
+ if(null != this.ProducerTransformer)
+ {
+ IMessage transformedMessage = ProducerTransformer(this.session, this, message);
+
+ if(null != transformedMessage)
+ {
+ message = transformedMessage;
+ }
+ }
+
+ // TODO: Support encoding of all message types + all meta data (e.g., headers and properties)
+ messageProducer.Send(((ITextMessage) message).Text, Encoding.ASCII);
}
public void Dispose()
Modified: 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=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/src/main/csharp/Session.cs Tue Jul 12 00:28:55 2011
@@ -28,13 +28,11 @@ namespace Apache.NMS.ZMQ
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();
@@ -43,9 +41,15 @@ namespace Apache.NMS.ZMQ
public void Dispose()
{
+ Close();
+ }
+
+ public void Close()
+ {
if(MessageQueueTransaction != null)
{
MessageQueueTransaction.Dispose();
+ MessageQueueTransaction = null;
}
}
@@ -229,12 +233,6 @@ namespace Apache.NMS.ZMQ
set { messageQueueTransaction = value; }
}
- public IMessageConverter MessageConverter
- {
- get { return messageConverter; }
- set { messageConverter = value; }
- }
-
private ConsumerTransformerDelegate consumerTransformer;
public ConsumerTransformerDelegate ConsumerTransformer
{
@@ -248,10 +246,5 @@ namespace Apache.NMS.ZMQ
get { return this.producerTransformer; }
set { this.producerTransformer = value; }
}
-
- public void Close()
- {
- Dispose();
- }
}
}
Modified: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x64.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x64.csproj?rev=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x64.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x64.csproj Tue Jul 12 00:28:55 2011
@@ -57,9 +57,7 @@
<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" />
@@ -70,7 +68,6 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="src\main\csharp\TextMessage.cs" />
- <Compile Include="src\main\csharp\ZmqMessage.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="lib\clrzmq\net-4.0\libzmq64.dll">
Modified: activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x86.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x86.csproj?rev=1145404&r1=1145403&r2=1145404&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x86.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.ZMQ/trunk/vs2010-zmq-net-4.0x86.csproj Tue Jul 12 00:28:55 2011
@@ -57,9 +57,7 @@
<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" />
@@ -70,7 +68,6 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="src\main\csharp\TextMessage.cs" />
- <Compile Include="src\main\csharp\ZmqMessage.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="lib\clrzmq\net-4.0\libzmq.dll">