Commit Graph

401 Commits

Author SHA1 Message Date
Soby Chacko
78dec77bb8 Initial infra for Pulsar binder/binding properties docs 2023-02-23 20:38:19 -05:00
Soby Chacko
a8ca3932f2 Pulsar topic provisioner binder docs 2023-02-23 18:38:50 -05:00
Soby Chacko
0e4fe50651 Pulsar binder/binding properties docs 2023-02-23 17:48:12 -05:00
Soby Chacko
d04e3054b9 Binder docs polishing 2023-02-23 16:31:28 -05:00
Soby Chacko
0b3521a536 Binder message conversion docs 2023-02-23 15:31:01 -05:00
Soby Chacko
6a1dfdeda8 Initial Pulsar Binder Docs 2023-02-23 12:42:43 -05:00
Soby Chacko
44d13742ec ReaderBuilderCustomizer through PulsarReader 2023-02-22 19:51:30 -05:00
Soby Chacko
e310f18f17 Refactor ReactivePulsarListenerAnnotationBeanPostProcessor
- Extend ReactivePulsarListenerAnnotationBeanPostProcessor
   from AbstractPulsarAnnotationsBeanPostProcessor.
2023-02-22 17:50:56 -05:00
Soby Chacko
6cf83a4296 Adding Consumer Customizations through PulsarListener 2023-02-22 16:29:14 -05:00
Chris Bono
dad0961eac Fix flaky PulsarFunctionAdministrationIntegrationTests
Pause after context close to give stop policies time to execute
2023-02-22 12:45:27 -06:00
Soby Chacko
fa7a2fa818 Consolidate message container hierarchy
Initial refactoring for extracting a common abstract class for various containers.
2023-02-22 12:36:49 -05:00
Soby Chacko
abe3786615 Message Listener/Reader consolidation
- Consolidate and refactor the hierarchy between Listener
   and Reader adpaters/converters
 - Remove unncessary batch message converters
2023-02-21 17:05:00 -05:00
Soby Chacko
9189654ab0 Reader classes naming cleanup 2023-02-21 15:22:17 -05:00
Soby Chacko
05ff873271 Remove Listener name from the Reader core classes 2023-02-21 15:09:04 -05:00
Chris Bono
39ba253161 [CI] Add integration test support (#357)
The `PulsarFunctionAdministrationIntegrationTests` was causing an OOM 
because it copies a large archive into memory in order to setup its 
testcontainers.

The unit tests running in parallel consume most of the available resources 
so we split the ITs into their own step in the workflow and all is happy.

This is also good to have support for integration tests in the project.
2023-02-20 13:17:51 -06:00
Soby Chacko
23f99593c3 PulsarReader integration tests 2023-02-17 19:50:34 -05:00
Soby Chacko
b82128c82c Remove unused annotation enhancers
- Remove unncessary annotation enhancers in PulsarListener/PulsarReader
2023-02-17 17:38:24 -05:00
Soby Chacko
ba51c23e7d Consolidate invokeHandler invocation 2023-02-17 16:51:05 -05:00
Soby Chacko
0621c540d6 PulsarReader Infrastructure
- Introducing PulsarReader annotation
 - Annotation bean post processor for PulsarReader
 - PulsarReader container and registry
 - PulsarReader endpoint and registry
 - PulsarReaderConfigurer
 - PulsarReader based listener adapter
 - PulsarReader annotation driven Boot auto configuration

Resolves https://github.com/spring-projects-experimental/spring-pulsar/issues/353
2023-02-17 14:39:13 -05:00
Chris Bono
5b0a69e850 [CI] Disable PulsarFunctionAdministration IT 2023-02-17 13:16:58 -06:00
Soby Chacko
b53df99c1b Implement stop() in reader container 2023-02-17 13:03:28 -05:00
Chris Bono
a32621315c [CI] Remove no-daemon from workflow
* Also disable PulsarFunction IT
2023-02-17 11:09:03 -06:00
Chris Bono
cbc7981b67 Improve topic validation (#351)
* Improve topic validation

* Check if topic exists already for both
  partitioned and unpartitioned cases
  prior to creating.

Fixes #266

* Fix test failure
2023-02-17 10:07:31 -05:00
Chris Bono
aa6f6f76ae [CI] Update ci.yml
Add --no-daemon to gradle commands
2023-02-16 23:07:38 -06:00
Chris Bono
3476bbf4e7 Attempt to fix PulsarFunctionAdministration IT (#352)
* Enable the IT run on CI-PR workflow

* Add Junit5 TestWatcher to log the Pulsar
  container logs on test failure
2023-02-16 21:01:11 -06:00
Chris Bono
50802c7393 [CI] Enable the PulsarFunctionAdmin IT 2023-02-16 21:00:03 -06:00
Chris Bono
727efdfb40 Remove PulsarClientConfiguration (#350)
* replace w/ map of config props
2023-02-15 21:47:01 -06:00
Chris Bono
1e6929b21d Move default service urls to PulsarProperties 2023-02-15 17:17:25 -05:00
Soby Chacko
e601cdcb5c sync send in latestMessageId test
- In order to avoid a potential race condition
  in this test, convert the asyncSend to sync.
2023-02-15 13:18:45 -05:00
Soby Chacko
9b5f64e5d6 Reader test improvements in latestMessageId test
- Enusre that the container is started
- Increase the latch wait timeout
2023-02-15 13:01:56 -05:00
Soby Chacko
7865973101 Container infrastructure for Pulsar Reader (#342)
* Container infrastructure for Pulsar Reader

Adding the basic foundations for the Pulsar Reader container.
This is similar to the message listener container mechanism
used in the regular consumer for managing the various lifecycles.

Resovles https://github.com/spring-projects-experimental/spring-pulsar/issues/341

* Addressing PR review
2023-02-15 12:22:21 -05:00
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