I wonder if (later, not part of this PR) we might want to support setting of the actual PartitionStrategy rather than only providing SpEL as the option for customization. The main reason would be performance, since a strategy implementation should be faster than evaluating SpEL. Since this is invoked per-message, it is in the critical path. If we do take that approach, then I could see the SpEL-based version moving into ExpressionEvaluatingPartitionStrategy which would be set instead of the DefaultPartitionStrategy in the case where a partitionExpression has been provided.