diff --git a/CHANGELOG.md b/CHANGELOG.md
index b6fb229..3f211e1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **Tests**: integration tests overrode a wrong property name (`kafka-wrapper.data-dir`) and rewrote the developer's real `./data` directory on every run — both suites now point `kview.data-dir` at `target/`.
### Changed
+- **Spring Boot 3.3.4 → 3.5.16** (completes the release plan's P2.3 — the 3.3 line is past OSS support end): lifts Spring Framework to 6.2.x, Spring Security to 6.5.x, spring-kafka to 3.3.x, micrometer to 1.15.x and **kafka-clients to 3.9.2**; `KafkaClusterManager` now passes `SslBundles` to the Kafka properties builders, as required by the new builder signatures.
- Docs: corrected the README `reset-offsets` example; the README roadmap and COMPATIBILITY.md no longer describe the shipped Schema Registry support (Avro/JSON) as unbuilt; internal working documents moved from the repo root to `docs/`.
- Removed the divergent legacy `kview-cli.js` client; `cli/kview.mjs` is the CLI.
- CI: the MCP server startup is now smoke-tested on Node 20 (which would have caught the ESM crash), alongside the CLI smoke test.
diff --git a/pom.xml b/pom.xml
index 2f7c006..d01a1ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.3.4
+ 3.5.16
diff --git a/src/main/java/com/ritikbansod/kafkawrapper/connection/KafkaClusterManager.java b/src/main/java/com/ritikbansod/kafkawrapper/connection/KafkaClusterManager.java
index c930dec..0ef8650 100644
--- a/src/main/java/com/ritikbansod/kafkawrapper/connection/KafkaClusterManager.java
+++ b/src/main/java/com/ritikbansod/kafkawrapper/connection/KafkaClusterManager.java
@@ -38,11 +38,14 @@ public class KafkaClusterManager {
private final ConnectionStore store;
private final KafkaProperties springKafkaProperties;
+ private final org.springframework.boot.ssl.SslBundles sslBundles;
private final Map handles = new ConcurrentHashMap<>();
- public KafkaClusterManager(ConnectionStore store, KafkaProperties springKafkaProperties) {
+ public KafkaClusterManager(ConnectionStore store, KafkaProperties springKafkaProperties,
+ org.springframework.boot.ssl.SslBundles sslBundles) {
this.store = store;
this.springKafkaProperties = springKafkaProperties;
+ this.sslBundles = sslBundles;
}
public ConnectionProfile profileOf(String clusterId) {
@@ -134,9 +137,9 @@ private ClusterHandle createHandle(ConnectionProfile profile, boolean builtIn) {
consumerProps.put("auto.offset.reset", "earliest");
if (builtIn) {
- adminProps = springKafkaProperties.buildAdminProperties();
- producerProps = springKafkaProperties.buildProducerProperties();
- consumerProps = springKafkaProperties.buildConsumerProperties();
+ adminProps = springKafkaProperties.buildAdminProperties(sslBundles);
+ producerProps = springKafkaProperties.buildProducerProperties(sslBundles);
+ consumerProps = springKafkaProperties.buildConsumerProperties(sslBundles);
// byte pipeline wins over yml-configured String serdes (raw fidelity for SR payloads)
producerProps.put("key.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");
producerProps.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");