Commit Graph

370 Commits

Author SHA1 Message Date
Chris Bono
64159ff350 Update Pulsar to 2.11.0 (#337)
* User template vars for links to pulsar docs site
* Update all code references to `2.11.0`
2023-02-14 14:52:09 -06:00
Chris Bono
e65f282141 Improve docs for Pulsar service urls 2023-02-14 13:53:01 -05:00
Soby Chacko
eaec21477d Readjust acktimeout and DLQ tests 2023-02-14 11:47:48 -05:00
Soby Chacko
9f4eeac34c Polish to the previous commit.
Adding Nullable to the partitin count private method.
2023-02-13 14:44:46 -05:00
Soby Chacko
5b2d466c7d Pulsar binder partition count defaults (#339)
* Pulsar binder partition count defaults

In Pulsar, partitioned topics are optional. If we set the default partition
count to be 1, then it unnecessarily creates a partitoned topic. Therefore,
we need to set the default partition count as 0 in the binder and extended binding
properties.

* PR review
2023-02-13 14:40:01 -05:00
Chris Bono
284b4b0c1e Add consumer/producer config props to binder and binding level (#338)
* Move loadConf into ProducerBuilderConfigurationUtil

* Add full consumer/producer props to binder/binding props

* Re-use the consumer and producer props from PulsarProperties
* Add unit and integration test for newly added props
2023-02-13 11:06:21 -05:00
Chris Bono
48ac3836bc Add PulsarReader section to docs (#336)
- Use template var for pulsar docs url
2023-02-09 14:41:42 -06:00
Soby Chacko
bc38cecce5 Basic binder compatibility tests
* Ensuring that AbstractBinderTests and Partition capable tests work
  for Pulsar binder. Some tests needed to be overridden in order for them
  to work in a Pulsar context.

Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/334
2023-02-09 10:35:36 -05:00
Christophe Bornet
0468ca22eb Add reader application properties doc (#333) 2023-02-08 08:40:23 -06:00
Christophe Bornet
d13ae9a94d Harmonize tests between PulsarTemplate and ReactivePulsarTemplate (#332) 2023-02-08 08:39:23 -06:00
Chris Bono
b432e3da67 Fix failing PulsarTemplateTest
* @Nested for send null tests
* @Nested for send non-primitive w/ schema tests
2023-02-07 19:53:43 -06:00
Christophe Bornet
33712c6bef Add support for tombstone/null values
Fixes #311
2023-02-07 17:10:45 -06:00
Christophe Bornet
4da2f5025c Use Schema.JSON instead of Schema.BYTES as default schema (#325)
* Use Schema.JSON instead of Schema.BYTES as default schema

* Default to BYTES schema if JSON cannot be constructed for the message type

* Add doc
2023-02-07 13:04:21 -06:00
Soby Chacko
c6680973a5 Pulsar Reader auto config (imperative)
Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/328
2023-02-07 12:25:19 -05:00
Christophe Bornet
9fb8879491 Bump the Pulsar reactive client to 0.2.0 (#307) 2023-02-07 09:19:41 -06:00
Chris Bono
34a30411b5 Producer and sender factories use topic resolver (#322)
* Producer and sender factories use topic resolver

* Remove resolveTopicName from ProducerUtils
* DefaultPulsarProducerFactory and CachingPulsarProducerFactory
  use TopicResolver instead of ProducerUtils to resolve topic
  name.
* Delete ReactiveMessageSenderUtils
* DefaultReactivePulsarSenderFactory use TopicResolver instead of
  ReactiveMessageSenderUtils to resolve topic name

* Disabled shared consumer test again
2023-02-06 21:30:32 -06:00
Chris Bono
92dd113251 Add single customizer API in PulsarConsumerFactory (#321) 2023-02-06 20:22:33 -06:00
Soby Chacko
062e79e47f Add boot property support to Pulsar Reader (imperative) (#327) 2023-02-06 20:22:00 -06:00
Soby Chacko
e67f22b79c Trying to fix failing test in shared subscription (#326) 2023-02-06 18:07:34 -06:00
Soby Chacko
52ff019b96 More reader factory tests
Disabling the shared subscription test
2023-02-06 18:07:28 -05:00
Chris Bono
ba5573bfeb Trim ReactivePulsarSenderFactory API (#320)
* The `createSender(Schema)` is not useful
  in that most users will specify a topic and
  not rely on the default topic.
2023-02-06 16:41:55 -06:00
Chris Bono
b97a44a378 Trim PulsarProducerFactory API (#319)
* The `createProducer(Schema)` is not useful
  in that most users will specify a topic and
  not rely on the default to send to
2023-02-06 15:55:33 -06:00
Chris Bono
f108bc202b Update copyright 2023 on all source files (#318)
* Add ability to update all copyrights

* Update all source copyrights to 2023

* Disabling problematic pause/resume test
2023-02-06 15:54:34 -06:00
Soby Chacko
2e2b75908d Adding back removed shared subscription test 2023-02-06 16:35:00 -05:00
Chris Bono
ce91178db8 Misc cleanups (#317)
* Replace `String.format` w/ `String.formatted`

* Simplify LogAccessor usage

* Replace `new LogAccessor(LogFactory.getLog(Class))`
  calls w/ `new LogAccessor(Class)`

* Remove fully qualified refs in javadoc + code
2023-02-06 15:03:24 -06:00
Chris Bono
56dbe84cb4 Remove duplicate PulsarTestContainerSupport (#316)
Also:
* Re-order (alpha) test dependencies
2023-02-06 15:02:32 -06:00
Chris Bono
953c18d97e Only assert when message matches
Update test to count messages by container/key

Update test - better logging

Update test - fix format

Update ci-pr.yml

Remove temp filter - run all tests
2023-02-06 15:25:30 -05:00
Chris Bono
59a4d94964 Update Pulsar 2.10.3 (#315) 2023-02-06 14:04:59 -06:00
Chris Bono
dd09c98c01 Update Spring Boot 3.0.2 (#314)
Also update:
* testcontainersVersion = `1.17.6`
* springCloudStreamVersion = `4.0.1`
2023-02-06 09:05:52 -06:00
Chris Bono
f211a3490b Disable retry test plugin on CI 2023-02-03 17:08:27 -06:00
Soby Chacko
f804771658 Tests for shared subscriptions
Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/305
2023-02-02 20:36:05 -05:00
Chris Bono
b9710b947a Improve ConsumerFactory API
- Simplify API to single method
- Add subscriptionName
- Add test for DefaultPulsarConsumerFactory
2023-02-02 19:37:21 -05:00
Soby Chacko
8dd39fdc7a Basic Pulsar Reader API support in Spring Pulsar
Addressing PR review
2023-02-02 15:33:15 -05:00
Christophe Bornet
883aeaaf3c Make SendMessageBuilder interface more navigable (#304) 2023-02-02 09:49:02 -06:00
Christophe Bornet
75e235f43a Allow topic/schema resolution in ReactivePulsarTemplate sendMany (#303)
- Use switchOnFirst to determine the Schema and topic from the first message in doSendMany 
- Fixes ordering issue when `doSendMany` did not have schema (see #300)
2023-02-01 21:20:44 -06:00
Soby Chacko
c288e9e496 Failover consumer test improvements
Ensure that all 3 failover consumers participate in the subscription
2023-02-01 12:31:17 -05:00
Soby Chacko
4db9357dac Test cleanup in failover consumer tests 2023-02-01 12:10:30 -05:00
Soby Chacko
cc379b16f9 Test cleanup: Consumer ACK tests 2023-02-01 12:04:49 -05:00
Soby Chacko
a7b0cf9d8b Consumer test cleanup 2023-02-01 11:05:51 -05:00
Chris Bono
5dbb9a18c2 Don't allow topic to be set via customizers
- Add producer/sender factory createSender API
  w/ only a schema
- Add producer/sender factory createSender API
  w/ single customizer
- ReactivePulsarSenderFactory createSender API
  consistent with PulsarProducerFactory
  createProducer API
- Cleanup/refactor producer factory tests

Resolves #295
2023-02-01 10:40:48 -05:00
Soby Chacko
051aa43521 Test cleanup: DefaultPulsarMessageListenerContainerTests 2023-01-31 16:58:39 -05:00
Soby Chacko
ce96e7f5a9 Container pause/resume improvements (#299)
- When container is paused, ensure that we are not spinning
  CPU cycles by constantly trying to poll in a loop. When
  pausing the container, the polling waits until a condition
  is signaled by resuming.

Resolves #297
2023-01-31 13:33:43 -06:00
Soby Chacko
224eb0b3e2 Pause/Resume further improvements (#298)
- Move pause/resume operation to abstract container
- Only pause/resume if container in proper state

Resovles #296
2023-01-30 15:39:48 -06:00
Chris Bono
280637f98f Polish "Add ability to pause/resume listener containers"
- simplify pause/resume sample w/ code snippet
2023-01-30 12:42:09 -06:00
Soby Chacko
53bd54af4c Add ability to pause/resume listener containers
Resolves #286
2023-01-30 12:25:28 -06:00
Chris Bono
6fdd6c743c Update SCSt binder sample
* Use 2 different types of schema
now that the setSchema is thread-safe.
2023-01-30 10:39:18 -05:00
Chris Bono
7294580bfa Add topic resolver (#293)
* Add topic resolver

- Topic resolver with configurable
message type to topic name mappings

See #269

* Sample app uses topic and schema resolver

* Add topic resolver docs
2023-01-30 10:38:19 -05:00
Soby Chacko
82e055a4bc Renaming ListenerEndpointRegistry
ListenerEndpointRegistry -> GenericListenerEndpointRegistry
2023-01-27 17:56:30 -05:00
Chris Bono
7f724bb3e0 Polish "Create partitioned topics once per ns"
- ran the "./gradlew format"
- add @author tag
- re-ordered new test utility methods
2023-01-27 12:12:03 -06:00
Kirill Merkushev
392cb6f5a5 Create partitioned topics once per ns
User defined topics in different namespaces
should only be created in the namespace it
is specifies.
2023-01-27 12:09:41 -06:00