activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pmmerritt1 <pmmerr...@gmail.com>
Subject Re: ActiveMQ JMSPriority (AMQ-122)
Date Fri, 09 Apr 2010 17:43:43 GMT

I have attached the files to AMQ-122. I cleaned up the implementation a
little bit before attaching

In summary I made the following changes
1) Added a useJmsPriority option to the Broker
2) Added the useJmsPriority parameter to the BrokerInfo class
3) Updated code which was creating BrokerInfo instances to set the
useJmsPriority
4) Converted MessageDispatchChannel into an Interface
5) Created a new class FifoMessageDispatchChannel which implements
MessageDispatchChannel and contains the same implementation as was
previously in MessageDispatchChannel
6) Created a new class PriorityMessageDispatchChannel which contains the
newly created PrioritizedMessageDispatchChannel. This implementation
contains an array of priority linkedlists and a current index to the highest
priority linkedlist. So messages are dequeued from the highest priority
linked list with messages and enqueued to the linked list which corresponds
to the priority in the message.
7) Created a MessageDispatchChannelFactory which returns the appropriate
MessageDispatchChannel dependent upon the value of the useJmsPriority
parameter
8) Updated ActiveMQConnection and ActiveMQSession to only override the
message priority when useJmsPriority is false or the message priority is not
set.
9) Added a new unit test JmsPriorityTest in order to test priority ordering

Thanks,
Phillip Merritt


bsnyder wrote:
> 
> On Wed, Apr 7, 2010 at 2:26 PM, pmmerritt1 <pmmerritt@gmail.com> wrote:
>>
>> We had a need to use priority based queuing on a project I am working on
>> and
>> do not have enough time to wait on 6.0.0 to come out which is what
>> AMQ-122
>> states as the release date, so I took a stab at implementing it. Since I
>> am
>> not too familiar with ActiveMQ I was hoping that one of the developers
>> may
>> be able to pick it up and incorporate into a 5.3 release if at all
>> possible.
>> I ran the unit tests and they seem to run with the exception of issues
>> with
>> the SSL but I do not believe that is related to the changes I made.
>>
>> Here is the summary of the changes, all source files are attached:
>> 1) Created class PriorityMessageDispatchChannel which replaced
>> MessageDispatchChannel
>> 2) Updated ActiveMQMessageConsumer.java and ActiveMQSessionExecutor.java
>> in
>> order to instantiate the PriorityMessageDispatchChannel instead of the
>> the
>> MessageDispatchChannel. This would be best done at runtime based upon a
>> configuration option such as supportsJMSPriority, however I did not want
>> to
>> make that significant of a change until I could figure out the
>> feasibility
>> of getting it incorporated into ActiveMQ.
>> 3) Updated ActiveMQConnection.java and ActiveMQSession.java to only set
>> the
>> message priority to the defaultPriority if it wasn't set on the Message.
>> 4) Added a unit test ChangeSentMessagePriorityTest.java
>>
>> I have attached all of the source files to this post, please let me know
>> if
>> it is possible to get this into a release and if so if I can do anything
>> to
>> help make that happen.
>>
>> Thanks,
>> Phillip Merritt
>> http://old.nabble.com/file/p28170545/ActiveMQConnection.java
>> ActiveMQConnection.java
>> http://old.nabble.com/file/p28170545/ActiveMQMessageConsumer.java
>> ActiveMQMessageConsumer.java
>> http://old.nabble.com/file/p28170545/ActiveMQSession.java
>> ActiveMQSession.java
>> http://old.nabble.com/file/p28170545/ActiveMQSessionExecutor.java
>> ActiveMQSessionExecutor.java
>> http://old.nabble.com/file/p28170545/ChangeSentMessagePriorityTest.java
>> ChangeSentMessagePriorityTest.java
>> http://old.nabble.com/file/p28170545/PriorityMessageDispatchChannel.java
>> PriorityMessageDispatchChannel.java
> 
> Please create a diff of your changes and attach it to the JIRA issue
> as noted here:
> 
> http://activemq.apache.org/contributing.html#Contributing-Submittingpatches
> 
> Bruce
> -- 
> perl -e 'print
> unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
> 
> ActiveMQ in Action: http://bit.ly/2je6cQ
> Blog: http://bruceblog.org/
> Twitter: http://twitter.com/brucesnyder
> 
> 

-- 
View this message in context: http://old.nabble.com/ActiveMQ-JMSPriority-%28AMQ-122%29-tp28170545p28195453.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.


Mime
View raw message