This is an automated email from the ASF dual-hosted git repository.
jkonisa pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git
The following commit(s) were added to refs/heads/trunk by this push:
new 431a3fd7 CASSSIDECAR-408: SchemaStorePublisherFactory should be
Injectable in CachingSchemaStore (#319)
431a3fd7 is described below
commit 431a3fd78c76bfd3f1320d2d3618d1b3efd8d045
Author: Jyothsna konisa <[email protected]>
AuthorDate: Tue Feb 17 13:48:31 2026 -0800
CASSSIDECAR-408: SchemaStorePublisherFactory should be Injectable in
CachingSchemaStore (#319)
Patch by Jyothsna Konisa; Reviewed by Bernardo Botella and Josh McKenzie
for CASSSIDECAR-408
---
CHANGES.txt | 1 +
.../java/org/apache/cassandra/sidecar/cdc/CachingSchemaStore.java | 7 +++++--
.../main/java/org/apache/cassandra/sidecar/modules/CdcModule.java | 8 ++++++++
.../org/apache/cassandra/sidecar/cdc/CachingSchemaStoreTest.java | 4 +++-
4 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 2f1bd14b..7e60e49c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
0.3.0
-----
+ * SchemaStorePublisherFactory should be Injectable in CachingSchemaStore
(CASSSIDECAR-408)
* Fix StorageClientTest Docker API compatibility and improve CI test
reporting (CASSSIDECAR-410)
* Incorrect SSL Configuration Keys in CdcPublisher.secretsProvider()
(CASSSIDECAR-401)
* Fix ClusterTopologyMonitor delay parsing error due to missing time unit
suffix (CASSSIDECAR-406)
diff --git
a/server/src/main/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStore.java
b/server/src/main/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStore.java
index 9b24de8c..8795d2ed 100644
---
a/server/src/main/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStore.java
+++
b/server/src/main/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStore.java
@@ -72,6 +72,7 @@ public class CachingSchemaStore implements SchemaStore
@Nullable private volatile TableSchemaPublisher publisher;
private final CqlToAvroSchemaConverter cqlToAvroSchemaConverter;
private final SidecarCdcStats sidecarCdcStats;
+ private final SchemaStorePublisherFactory schemaStorePublisherFactory;
private static final String METADATA_NAME_KEY = "name";
private static final String METADATA_NAMESPACE_KEY = "namespace";
@@ -83,7 +84,8 @@ public class CachingSchemaStore implements SchemaStore
CdcConfigImpl cdcConfig,
SidecarCdcStats sidecarCdcStats,
SidecarSchema sidecarSchema,
- CqlToAvroSchemaConverter cqlToAvroSchemaConverter)
+ CqlToAvroSchemaConverter cqlToAvroSchemaConverter,
+ SchemaStorePublisherFactory schemaStorePublisherFactory)
{
this.cassandraClusterSchemaMonitor = cassandraClusterSchemaMonitor;
this.tableHistoryDatabaseAccessor = tableHistoryDatabaseAccessor;
@@ -95,6 +97,7 @@ public class CachingSchemaStore implements SchemaStore
this.vertx = vertx;
this.cdcConfig = cdcConfig;
this.sidecarCdcStats = sidecarCdcStats;
+ this.schemaStorePublisherFactory = schemaStorePublisherFactory;
if (cdcConfig.cdcEnabled())
{
@@ -109,7 +112,7 @@ public class CachingSchemaStore implements SchemaStore
{
this.publisher.close();
}
- this.publisher =
SchemaStorePublisherFactory.DEFAULT.buildPublisher(kafkaOptions);
+ this.publisher =
schemaStorePublisherFactory.buildPublisher(kafkaOptions);
}
private void configureSidecarServerEventListeners()
diff --git
a/server/src/main/java/org/apache/cassandra/sidecar/modules/CdcModule.java
b/server/src/main/java/org/apache/cassandra/sidecar/modules/CdcModule.java
index 56d5c61f..3d369c5e 100644
--- a/server/src/main/java/org/apache/cassandra/sidecar/modules/CdcModule.java
+++ b/server/src/main/java/org/apache/cassandra/sidecar/modules/CdcModule.java
@@ -31,6 +31,7 @@ import org.apache.cassandra.bridge.CassandraBridgeFactory;
import org.apache.cassandra.cdc.api.SchemaSupplier;
import org.apache.cassandra.cdc.avro.CqlToAvroSchemaConverter;
import org.apache.cassandra.cdc.msg.CdcEvent;
+import org.apache.cassandra.cdc.schemastore.SchemaStorePublisherFactory;
import org.apache.cassandra.cdc.sidecar.CdcSidecarInstancesProvider;
import org.apache.cassandra.cdc.sidecar.ClusterConfigProvider;
import org.apache.cassandra.cdc.sidecar.SidecarCdcClient;
@@ -163,6 +164,13 @@ public class CdcModule extends AbstractModule
return new CassandraBridgeFactory();
}
+ @Provides
+ @Singleton
+ SchemaStorePublisherFactory schemaStorePublisherFactory()
+ {
+ return SchemaStorePublisherFactory.DEFAULT;
+ }
+
@Provides
@Singleton
TokenSplitUtil tokenSplitUtilProvider(TokenSplitConfigAccessor
tokenSplitConfigAccessor,
diff --git
a/server/src/test/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStoreTest.java
b/server/src/test/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStoreTest.java
index c1156469..faa2377d 100644
---
a/server/src/test/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStoreTest.java
+++
b/server/src/test/java/org/apache/cassandra/sidecar/cdc/CachingSchemaStoreTest.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.bridge.CdcBridgeFactory;
import org.apache.cassandra.cdc.api.TableIdLookup;
import org.apache.cassandra.cdc.avro.AvroSchemas;
import org.apache.cassandra.cdc.avro.CqlToAvroSchemaConverter;
+import org.apache.cassandra.cdc.schemastore.SchemaStorePublisherFactory;
import org.apache.cassandra.sidecar.db.TableHistoryDatabaseAccessor;
import org.apache.cassandra.sidecar.db.schema.SidecarSchema;
import org.apache.cassandra.sidecar.tasks.CassandraClusterSchemaMonitor;
@@ -280,7 +281,8 @@ public class CachingSchemaStoreTest
{
return new CachingSchemaStore(vertx, clusterSchema,
spyTableHistoryDatabaseAccessor,
mockCdcConfig, mockSidecarCdcStats,
- mockSidecarSchema,
cqlToAvroSchemaConverter);
+ mockSidecarSchema,
cqlToAvroSchemaConverter,
+ SchemaStorePublisherFactory.DEFAULT);
}
private CassandraClusterSchemaMonitor
createMockClusterSchema(Set<CqlTable> tables)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]