35 Commits

Author SHA1 Message Date
Chris Bono
6d7148f629 Add PulsarClientImplementationBindingImpl to AOT reflection hints.
This allows running on GraalVM 23.1.0-dev.
2023-08-09 15:15:28 -04:00
Chris Bono
d38cc6cb8d Use builder to autoconfigure PulsarAdministration (#401) 2023-05-06 21:03:01 -05:00
Chris Bono
8bee5ef6e9 Use builder to autoconfigure PulsarProducerFactory (#397)
- Apply PulsarProperties to producer builder rather than raw
map of Pulsar properties

- Move producer props 'toMap' into PulsarBinderUtils
2023-05-03 22:19:44 -05:00
Chris Bono
dbd1b69e08 Use builder to autoconfigure PulsarClient (#394)
- Apply PulsarProperties to client builder rather than raw
map of Pulsar properties

- Replace PulsarClientFactoryBean with PulsarClientFactory
2023-04-28 22:13:10 -05:00
Chris Bono
f282a9a6d9 Dependency hygiene required by Spring Boot (#376) 2023-03-23 12:54:20 -05:00
Soby Chacko
e310f18f17 Refactor ReactivePulsarListenerAnnotationBeanPostProcessor
- Extend ReactivePulsarListenerAnnotationBeanPostProcessor
   from AbstractPulsarAnnotationsBeanPostProcessor.
2023-02-22 17:50:56 -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
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
727efdfb40 Remove PulsarClientConfiguration (#350)
* replace w/ map of config props
2023-02-15 21:47:01 -06:00
Christophe Bornet
d13ae9a94d Harmonize tests between PulsarTemplate and ReactivePulsarTemplate (#332) 2023-02-08 08:39:23 -06:00
Christophe Bornet
33712c6bef Add support for tombstone/null values
Fixes #311
2023-02-07 17:10:45 -06: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
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
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
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
59a4d94964 Update Pulsar 2.10.3 (#315) 2023-02-06 14:04:59 -06: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
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
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
ed2a67b0c4 Remove setSchema API from templates
For both PulsarTemplate and ReactivePulsarTemplate:
* remove setSchema()
* add schema param in simple API
* add schema param in fluent API

Update all tests and samples accordingly

See #268
2023-01-25 12:54:12 -05:00
Chris Bono
e36ef5f19c Add schema resolver customizer
See #269
2023-01-20 12:26:20 -05:00
Chris Bono
e52ef5dea3 Listener endpoints use schema resolver (#280)
* Listener endpoints use schema resolver

See #269

* Disabled PulsarFunctions IT
2023-01-20 10:57:25 -05:00
Chris Bono
d45af6979b Add custom schema mappings
See #269

- Still need to add docs
2023-01-18 15:41:27 -05:00
Christophe Bornet
7fd522cd64 Bump pulsar-client-reactive to 0.1.0 (#251) 2022-12-12 12:16:29 -06:00
Soby Chacko
7ee744bcfc AOT hints changes for reactive apps 2022-12-02 16:46:50 -05:00
Soby Chacko
ac87330416 Remove custom MessageHandlerMethodFactory (#247)
- Remove custom MessageHandlerMethodFactory from PulsarListenerEndpointRegistrar
- We will reintroduce it, if there is a valid use case that requires it
2022-11-29 11:55:03 -06:00
Soby Chacko
edd32284d5 Remove custom argument resolvers (#246)
- Remove custom argument resolvers from PulsarListenerEndpointRegistrar,
  as this is an un-used feature at the moment.

- The default HandlerMethodArgumentResolver is capable of adapting the all the
  method arguments in all the PulsarListener use cases we encountered so far.
  We will add it back if custom argument resolution is necessary.
2022-11-28 20:26:22 -06:00
Christophe Bornet
1055637ff2 Update with new MessageResult::acknowledge(Message) function (#233) 2022-11-21 20:05:56 -06:00
Chris Bono
0e4a4fad38 Extract Flux from base messaging adapter
PulsarMessagingMessageListenerAdapter was still referencing Flux.
This removes all reactive usage from imperative spring-pulsar lib.
2022-11-18 16:37:45 -05:00
Chris Bono
a8d65ec168 Split reactive into its own module
Remove redundant dep
2022-11-17 20:47:44 -05:00