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