You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Mark Pollack (JIRA)" <ji...@apache.org> on 2008/08/14 02:47:52 UTC

[jira] Commented: (AMQNET-105) Enhance NMSPersistent with alternative NMSDeliveryMode enum.

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

Mark Pollack commented on AMQNET-105:
-------------------------------------

If 1.0 isn't out yet, why should this deprecated method remain in 1.1?  Why not schedule this fix for 1.0 with deprecation and then remove it for 1.1?

> Enhance NMSPersistent with alternative NMSDeliveryMode enum.
> ------------------------------------------------------------
>
>                 Key: AMQNET-105
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-105
>             Project: ActiveMQ .Net
>          Issue Type: Improvement
>          Components: ActiveMQ Client, EMS, MSMQ, Stomp
>            Reporter: Jim Gomes
>            Assignee: Jim Gomes
>            Priority: Minor
>             Fix For: 1.1
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> The {{NMSPersistent}} field is too limited to support variations from different brokers.  The minimum is that a message in either persistent or it isn't.  However, TIBCO adds a third proprietary optimized delivery mode called ReliableDelivery.  The {{NMSPersistent}} field should be deprecated in favor of a new {{NMSDeliveryMode}} enumeration as follows:
> {code:title=New Enum|borderStyle=solid}
> enum MsgDeliveryMode
> {
>     Persistent,
>     NonPersistent
> }
> // ... SNIPPIT ...
> interface IMessage
> {
>     [deprecated]
>     bool NMSPersistent { get; }
>     MsgDeliveryMode NMSDeliveryMode { get; }
> }
> interface IMessageProducer
> {
>     [deprecated]
>     void Send(IMessage message, bool persistent, byte priority, TimeSpan timeToLive);
>     void Send(IMessage message, MsgDeliveryMode deliveryMode, byte priority, TimeSpan timeToLive);
>     [deprecated]
>     void Send(IDestination destination, IMessage message, bool persistent, byte priority, TimeSpan timeToLive);
>     void Send(IDestination destination, IMessage message, MsgDeliveryMode deliveryMode, byte priority, TimeSpan timeToLive);
>     [deprecated]
>     bool Persistent { get; set; }
>     MsgDeliveryMode DeliveryMode { get; set; }
> }
> // ... END ...
> {code}
> This will make the code more self-documenting as well as supporting broker implementations of proprietary delivery modes.
> The NMSPersistent field should be marked as [deprecated] and then removed in the following version.  This will allow users of the NMS library time to update their code, since this would be a breaking change and should be carefully approached as it has the potential to affect business logic requirements.

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