Commit Graph

119 Commits

Author SHA1 Message Date
Chris Bono
fbc4773dbd Update SB plugin to 3.0.0-SNAPSHOT in sample apps (#103)
Fixes #92
2022-09-11 12:28:59 -05:00
Chris Bono
ed87f86fcb Fix 'open access' build warning in spring-pulsar-docs 2022-09-11 11:42:50 -05:00
Soby Chacko
2f7d4851fc Introducing experimental consumer error handling (#100)
* 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
2022-09-10 21:03:11 -04:00
Alexander Preuß
a57c823a2a Fix dead letter tests sharing the same topic 2022-09-06 14:03:39 -04:00
Alexander Preuß
25dcfab607 Add DeadLetterPolicy to PulsarListener
Closes #79
2022-09-06 12:14:50 -05:00
Alexander Preuß
78efde7cd6 Add protobuf schema support (#87)
Additionally the following follow-up items from PR #82 :
* Extend PulsarListenerTests for different Schema types
* Add supported Schema types to docs
2022-09-06 08:13:50 -05:00
Soby Chacko
cc3842062e Nack redelivery backoff changes
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
2022-09-05 19:10:53 -04:00
Soby Chacko
6e9cc3f8fa Test debugging 2022-09-03 12:10:06 -04:00
Chris Bono
a3cc1846d0 Add ProducerBuilderCustomizer to support batching/chunking config
Resolves #80
2022-09-03 10:53:54 -04:00
Chris Bono
597bacde41 Polish "Add AVRO and (inline) KeyValue support for PulsarListener" 2022-09-03 00:58:56 -05:00
Alexander Preuß
c2732c6ee6 Add AVRO and (inline) KeyValue support for PulsarListener 2022-09-03 00:54:00 -05:00
Chris Bono
b188436ab5 Remove manual AutoConfiguration.imports
This file is now auto-generated when using the auto-config annotation processor.

See da4de7d67d
2022-09-02 17:28:11 -05:00
Soby Chacko
f590a6d70e Fix a bug in the way containers are stopped 2022-09-02 17:49:00 -04:00
Alexander Preuß
07dc259665 Fix documentation sections 2022-09-02 10:12:30 -04:00
Chris Bono
130501ab0a More test debugging
- Add comment suppression filter in checkstyles
- Add show standard out streams in test for spring-pulsar
- Move log to sout in test
2022-08-31 22:58:56 -05:00
Soby Chacko
20f9e7ff77 Fix ci.yml 2022-08-31 19:39:13 -04:00
Soby Chacko
37416e80d7 Test debugging continues 2022-08-31 19:35:48 -04:00
Soby Chacko
0b87aa1693 Test debugging 2022-08-31 18:05:54 -04:00
Soby Chacko
34c4512dd8 Batch acknowledgment test changes 2022-08-31 16:36:29 -04:00
Soby Chacko
9330d82792 Increasing latency in consumer ack tests 2022-08-31 16:00:26 -04:00
Alexander Preuß
e364dee85a Implement topic pattern on PulsarListener (#5) (#77)
* Implement topicPattern parameter in PulsarListener

* Fix Typos
2022-08-31 15:01:32 -04:00
Soby Chacko
ada6086cd8 Verify Pulsar consumer enum values as properties
When providing Pulsar consumer properties as Boot properties,
if there are enum values, verify that they are translated properly
as valid consumer properties.
2022-08-30 21:47:52 -04:00
Soby Chacko
bf1dbd9547 Adding test for initial subscription position 2022-08-30 21:06:38 -04:00
Soby Chacko
5ffcf5dc06 Concurrncy tests refactoring
Docs changes
2022-08-30 11:29:22 -04:00
Chris Bono
c1d155e507 Add fluent API to PulsarTemplate
Fixes #68
2022-08-29 14:42:18 -05:00
Alexander Preuß
dfa1e36bc2 Detect M1 mac in test and substitute container image (#75)
Fixes #57
2022-08-29 14:02:25 -05:00
Alexander Preuß
67cb57c800 Add auto-configuration for PulsarAdministration (#72)
* Auto-configures a `PulsarAdministration`
* Reconciles some properties for admin and regular clients
* Adds docs for config props (see #50)

Resolves #41
2022-08-29 13:30:16 -05:00
Soby Chacko
0926e5b848 Increase consumer test latency 2022-08-26 13:46:58 -04:00
Soby Chacko
8b473cd3cf Trying to increase latency in concurrency test 2022-08-26 12:28:34 -04:00
Eddú Meléndez Gonzales
206cc1599e Add .sdkmanrc with 17.0.4-tem (#71)
`.sdkmanrc` is used by sdkman to automatically switch to the version
declared in the file.
2022-08-25 22:47:14 -05:00
Soby Chacko
bfa22bcf8f Adding concurrency on PulsarListener 2022-08-25 17:19:27 -04:00
Chris Bono
4bab93e744 Polish "GH-41: Add auto-created topics"
Remove author

See #41
2022-08-25 13:53:36 -05:00
Alexander Preuß
c834ecf1a6 GH-41: Add auto-created topics
See #41
2022-08-25 13:50:17 -05:00
Soby Chacko
1843fedc26 Concurrent message listener container improvements 2022-08-24 19:13:24 -04:00
Soby Chacko
4a92c29842 Concurrent Message Listener Container
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.
2022-08-24 16:34:06 -04:00
Soby Chacko
cd8780e82a Initial commit for concurrent message listeners 2022-08-23 16:29:35 -04:00
Soby Chacko
a28b73e93b Fixing sample application 2022-08-23 14:30:01 -04:00
Soby Chacko
0061e552c3 Fix typo in docs 2022-08-22 17:37:14 -04:00
Chris Bono
465c5ea3f6 Polish "Pulsar template schema detection improvements"
* Adjust AssertJ completable future usage in newly added test.
2022-08-15 17:46:03 -05:00
Soby Chacko
624dde15fc Pulsar template schema detection improvements
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.
2022-08-15 17:36:15 -05:00
Chris Bono
664c62eb36 Polish "Add ProducerInterceptor support"
* Add producer interceptor docs (author added in previous commit but were lost during rebase)
* Add test for ordering of multiple configured interceptors

Closes #35
2022-08-15 10:13:07 -05:00
Alexander Preuß
e32ed00750 Add ProducerInterceptor support
See #35
2022-08-15 10:04:31 -05:00
Chris Bono
01017cb020 [DOCS] Support for new Wiki (#63)
* Links to wiki from CONTRIBUTING.adoc
* Adds idea code style (it is mentioned in wiki)
* Adds asciidocs target in build (it is mentioned in wiki)
2022-08-13 00:25:53 -05:00
Soby Chacko
e6d517fb42 ref docs changes 2022-08-12 20:40:41 -04:00
Soby Chacko
86c8bf88cb Minor adjustments in docs generation 2022-08-12 18:39:21 -04:00
Soby Chacko
33648dcda2 Adding docs for consumer properties on PulsarListener 2022-08-12 18:24:10 -04:00
Chris Bono
84a57491d2 [DOCS] Move config props to collapsible panels (#62)
* Also add Alex D. to author list
2022-08-12 12:12:59 -05:00
Soby Chacko
8e33ac0b12 Allow Pulsar consumer properties on PulsarListener
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" })
2022-08-11 22:06:55 -04:00
Soby Chacko
38dae7a241 Minro javadocs/docs updates 2022-08-11 15:59:55 -04:00
Chris Bono
b145c3ff82 Polish reference docs
- Remove hardcoded code where possible
- Link to auto-generated config props rather than hardcoded tables
- Simplify some wording
2022-08-11 15:13:36 -04:00