activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jim Gomes (JIRA)" <jira+amq...@apache.org>
Subject [jira] Updated: (AMQNET-105) Enhance NMSPersistent with alternative NMSDeliveryMode enum.
Date Wed, 13 Aug 2008 23:47:52 GMT

     [ https://issues.apache.org/activemq/browse/AMQNET-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jim Gomes updated AMQNET-105:
-----------------------------

    Description: 
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.

  was:
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:

enum MsgDeliveryMode
{
    Persistent,
    NonPersistent
}

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.


Expanded the sample snippet of code.

> 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.


Mime
View raw message