activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <jira+amq...@apache.org>
Subject [jira] Commented: (AMQNET-271) Add support for a Message Transformer to be set in NMS API
Date Fri, 27 Aug 2010 20:19:40 GMT

    [ https://issues.apache.org/activemq/browse/AMQNET-271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61482#action_61482
] 

Timothy Bish commented on AMQNET-271:
-------------------------------------

I've implemented a solution locally using delegates for the Producer and Consumer Transformer.
  One this I still am not crazy about is that the fact that these are exposed as Events in
the NMS interfaces causes the implementations to allow for multiple registrations of transformers
which we really don't want, only one would ever actually have its return value used the others
would just be unnecessary overhead per invocation.

> Add support for a Message Transformer to be set in NMS API
> ----------------------------------------------------------
>
>                 Key: AMQNET-271
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-271
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>          Components: ActiveMQ, EMS, MSMQ, NMS, Stomp
>    Affects Versions: 1.3.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 1.4.0
>
>
> Add support in the NMS API for users to set an custom MessageTransformer on the NMS object:

> IConnectionFactory
> IConnection
> ISession
> IMessageProducer
> IMessageConsumer
> The transformer would be an instance of IMessageTransformer which provides two methods:
> {noformat}
>     /// <summary>
>     /// Interface for a class that can Transform a Message from one type to another either
>     /// before consumption or before sent by a producer.
>     /// </summary>
>     public interface IMessageTransformer
>     {
>         /// <summary>
>         /// Called from an IMessageProducer prior to sending the IMessage, allows the
client
>         /// to perform a transformation on the Message prior to it being sent.  This
allows a
>         /// client to configure a single Producer to convert a Message to a format that
can be
>         /// processed by a specific receiving client.
>         /// </summary>
>         IMessage ProducerTransform(ISession session, IMessageProducer producer, IMessage
message);
>         /// <summary>
>         /// Called from an IMessageConsumer prior to dispatching the message to the client
either
>         /// by the 'Receive' methods or from the async listener event.  Allows the client
to perform
>         /// message pre-processing before some messages are dispatched into the client
code.
>         /// </summary>
>         IMessage ConsumerTransform(ISession session, IMessageConsumer producer, IMessage
message);
>     }
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message