[
https://issues.apache.org/jira/browse/DIRMINA-428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Trustin Lee resolved DIRMINA-428.
---------------------------------
Resolution: Fixed
Assignee: Trustin Lee
I've just added IoSessionDataStructureFactory which provides session attribute
map and write request queue for a session. By implementing this interface and
changing IoService.sessionDataStructureFactory property, you can use whatever
queue implementation you want, as long as it's thread safe.
This means you can implement prioritization of messages very easily. For
example, you could extend DefaultIoSessionDataStructureFactory and override
getWriteRequestQueue() method to return a synchronized PriorityQueue
constructed with a proper Comparator.
> Message priorities
> ------------------
>
> Key: DIRMINA-428
> URL: https://issues.apache.org/jira/browse/DIRMINA-428
> Project: MINA
> Issue Type: New Feature
> Components: Core
> Reporter: Adrian Sandor
> Assignee: Trustin Lee
> Fix For: 2.0.0-M1
>
>
> I would like MINA to support sending messages with different priorities, so
> that higher-priority messages will get sent out first (in the order that they
> were added to the queue, if they have the same priority)
> Here's how I think this could be implemented:
> - define different priorities; I suggest using numeric constants, such as
> LOWEST=0, LOW=25, NORMAL=50, HIGH=75, HIGHEST=100, allowing any custom values
> from 0 to 100
> - add a priority field to WriteRequest, and implement Comparable using it
> - add a write(Object message, int priority) method to IoSession
> - make write(message) call write(message, NORMAL)
> - make the writeRequestQueue in the session implementations a priority queue,
> but one that preserves the original order of "equal" elements
> - ensure that a higher priority message won't interrupt sending out another
> message (if pending)
> - if desired, write an IoFilter that can manipulate the priority
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.