Description
JGroups already has the ability to bypass certain protocols, e.g. NO_FC set in a message bypasses any flow control layer.
It would be nice to do this for other protocols, too, e.g. SEQUENCER, but this needs to be done in a generic fashion.
What should be done is to use properties, e.g. +reliable-mcast, -frag, +flowcontrol, -bundling etc. Based on these flags, each protocol decides whether to handle (or not) a message. The properties should not take up any space in a message if not set.
This can probably be generalized, ie. by annotating a protocol with the props it provides, e.g. @Reliable @ReliableUnicast UNICAST, and by having code which matches the flags in a message and decides whether or not to process the message.