* Introducing experimental consumer error handling
Provide a Spring specific general mechanism to handle consumer errors
regardless of the subscription type. Currently for exclusive and failover
subscriptions, Pulsar Java client does not allow the applicaitons to
use a DLQ. This feature allows the applications to set a PulsarConsumerErrorHandler
that takes a Backoff and PulsarMessageRecoverer to retry and recover the failed message.
This is an initial commit for this feature and more changes in this area will follow.
Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/28
* Addressing PR review comments
For shared subscriptions, Pulsar allows consumers to provide a complex
redelivery backoff mechanism when negatively acknowledging (nack).
Enabling this Pulsar feature through the PulsarListener annotation
and its related components in the framework.
Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/78
Checkstyle cleanup
Addressing PR review
When providing Pulsar consumer properties as Boot properties,
if there are enum values, verify that they are translated properly
as valid consumer properties.
* Auto-configures a `PulsarAdministration`
* Reconciles some properties for admin and regular clients
* Adds docs for config props (see #50)
Resolves#41
Factory to create a concurrent message listener container.
This is the default factory with concurrency set to 1.
Users can configure it to increase concurrency.
PulsarTemplate can infer schema type for basic primitive types.
For complex types like JSON, AVRO etc, it needs to support
the ability for the user to provide the schema information.
* Add producer interceptor docs (author added in previous commit but were lost during rebase)
* Add test for ordering of multiple configured interceptors
Closes#35
It is convenient to provide arbitrary Pulsar consumer properties
directly on the PulsarListener annotation. This commit enables that.
Here is an examle usage:
@PulsarListener(properties = { "receiverQueueSize=5000" })