> What about:
>
> public interface MessageFilter {
> enum FilterOutcome {
> ACCEPT, -> deliver to the Consumer
> REJECT, -> skip the message
> SYSTEM -> use standard system processing
> }
>
> public FilterOutcome filterMessages(List<MessageWrapper> messages,
> FilterContext context) throws Exception;
>
> }
>
> interface MessageWrapper {
> ....allow to access Message payload, metadata, headers...
> }
>
> interface FilterContext {
> ...isReplayRead,
> ...access acks
> ...access ManagedCursor
> }
>
>
> This way the implementation of the filter will not use internal APIs that
> evolve in Pulsar sometimes even in point releases.
>
> Enrico
Hi Enrico:
Thank you for your advice.
I got your point, it works for me.
More detailed interface implementation, we can discuss it in PR.