Without generics, extending AbstractPubSubChannelRegistry and using a custom Message type requires some unpleasant casting and suppression of warnings. By genericizing PubSubChannelRegistry and AbstractPubSubChannelRegistry these problems can be avoided.