-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Add support for Spring for Apache Pulsar #34763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
...n/java/org/springframework/boot/build/classpath/CheckClasspathForProhibitedDependencies.java
Outdated
Show resolved
Hide resolved
spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar-reactive/build.gradle
Outdated
Show resolved
Hide resolved
spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar/build.gradle
Outdated
Show resolved
Hide resolved
...ure/src/main/java/org/springframework/boot/autoconfigure/pulsar/PulsarAutoConfiguration.java
Outdated
Show resolved
Hide resolved
2f389ef to
62f8300
Compare
311750f to
225f4fa
Compare
3ed0990 to
8dac932
Compare
8dac932 to
58c4232
Compare
|
I have also added support for the following:
These changes are in my fork (based off this same PR branch) in 3 separate commits, queued up and ready to PR once this base PR is merged: |
|
Is this expected to target Spring Boot 3.2 as hinted in this blog post? I'm asking because this is still in 3.x milestone and work on 3.2 is well underway. |
|
@wilkinsona I have covered all of the recent concerns other than:
Thanks |
|
I find the number of configuration properties quite a concern too. I wonder if we can just add the properties that we think will be popular and lean on One thing we've learnt from previous features is it's easier to add properties later when they are needed than take them away because they aren't. |
|
We discussed the properties in a team meeting yesterday (without Phil, he was on PTO) and came to the same conclusion. @snicoll reminded my that our Kafka support has got to where it is having evolved over many releases. This makes its large number of properties somewhat easier to justify. Our feeling is that we shouldn't jump straight into such a position with Pulsar and should instead provide plenty of room for things to evolve based on community feedback. As Phil suggests, the room to evolve can be provided by using one or more customizer callbacks to configure things not covered by configuration properties. It then becomes a question of what should be a configuration property. We'd defer to you on that as we lack the Pulsar expertise to have an informed opinion. As a general rule of thumb, settings that change from environment to environment (dev, staging, prod and so on) are the strongest candidates for configuration properties. Next would be settings that are really commonly tuned. Ideally we'd see a 5-10x reduction in the number of properties that we offer to begin with. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the latest upgrades, @onobc. The main two points still to address are SSL and the configuration properties. Apologies again for only identifying SSL now. Hopefully there isn't anything else major that's still lurking.
...c/main/java/org/springframework/boot/autoconfigure/pulsar/PulsarClientBuilderConfigurer.java
Outdated
Show resolved
Hide resolved
No worries on the SSL @wilkinsona - it is a big PR, there are many moving pieces - really thank you for the thorough reviews. Also, I think it is a good thing to reduce the config props - the user still can get at any "switch" they need via the customizer (as pointed out by yourself and @philwebb ). Then the community will ask for what they want to be a property. I will sync w/ @sobychacko and we will come up w/ the reduced list. |
|
We took a first pass and were able to knock it down from ~ We also verified that for all of the properties we are removing, the user has a way to customize them (we are good on that front). NOTE This has not been committed yet - just wanted to run the numbers by the team while the tests are being updated etc.. Data belowNOTE: the
Which is about a 30% reduction. The consumer and producer/sender config props (both imperative and reactive) are where most of the properties are. I am going to take another pass at those and see if we can drop it down further. |
|
@wilkinsona @philwebb config props reduced ~50% w/ the latest commit. Data belowNOTE: the
|
.../src/main/java/org/springframework/boot/autoconfigure/pulsar/ClientBuilderSslConfigurer.java
Outdated
Show resolved
Hide resolved
...moke-test-pulsar/src/test/java/smoketest/pulsar/SamplePulsarApplicationPemBasedSslTests.java
Outdated
Show resolved
Hide resolved
Add support for Apache Pulsar using the Spring for Apache Pulsar project. Co-authored-by: Phillip Webb <pwebb@vmware.com>
* Add tests for customizers * Break autoconfig out for cache/non-cache
* Add smoke tests * Add consumer to the PulsarAutoConfigurationIntegrationTests * Fix PulsarProperties.Consumer.DeadLetterPolicy
* Update docs
307c0af to
4940606
Compare
...ure/src/main/java/org/springframework/boot/autoconfigure/pulsar/PulsarAutoConfiguration.java
Outdated
Show resolved
Hide resolved
...rc/test/java/org/springframework/boot/autoconfigure/pulsar/PulsarAutoConfigurationTests.java
Show resolved
Hide resolved
...oconfigure/src/main/java/org/springframework/boot/autoconfigure/pulsar/PulsarProperties.java
Show resolved
Hide resolved
spring-boot-project/spring-boot-docs/src/docs/asciidoc/messaging/pulsar.adoc
Show resolved
Hide resolved
Add support for Apache Pulsar using the Spring for Apache Pulsar project. See gh-34763 Co-authored-by: Phillip Webb <pwebb@vmware.com>
Prefer `null` to `-1` for the default timeout. See gh-34763
Adds initial support for Spring for Apache Pulsar.
Work remaining: