This is an automated email from the ASF dual-hosted git repository.

hqtran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit f980e4364e4094a72b77ea7c900cd1079ff7828e
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Thu Jul 10 10:33:05 2025 +0200

    [ENHANCEMENT] Log cassandra table informations
    
     - Logging the list of tables helps administrator safely discarding the
     no longer needed ones.
     - Logging creation helps following startup progress
---
 .../james/backends/cassandra/components/CassandraTable.java      | 6 ++++++
 .../james/backends/cassandra/init/CassandraTableManager.java     | 9 +++++++++
 2 files changed, 15 insertions(+)

diff --git 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraTable.java
 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraTable.java
index f8339eff61..e8a312de42 100644
--- 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraTable.java
+++ 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraTable.java
@@ -24,6 +24,8 @@ import java.util.function.Function;
 
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
 import 
org.apache.james.backends.cassandra.init.configuration.JamesExecutionProfiles;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.datastax.oss.driver.api.core.CqlSession;
 import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
@@ -33,6 +35,8 @@ import com.google.common.base.MoreObjects;
 import reactor.core.publisher.Mono;
 
 public class CassandraTable {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(CassandraTable.class);
+
     public enum InitializationStatus {
         ALREADY_DONE,
         PARTIAL,
@@ -64,6 +68,8 @@ public class CassandraTable {
             return Mono.just(InitializationStatus.ALREADY_DONE);
         }
 
+        LOGGER.info("Creating table {}", name);
+
         return 
Mono.from(session.executeReactive(createStatement.apply(typesProvider).build()
             
.setExecutionProfile(JamesExecutionProfiles.getTableCreationProfile(session))))
             .thenReturn(InitializationStatus.FULL);
diff --git 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java
 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java
index e0ff3fa2a4..a66824158b 100644
--- 
a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java
+++ 
b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java
@@ -23,6 +23,7 @@ import static 
com.datastax.oss.driver.api.querybuilder.QueryBuilder.selectFrom;
 import static org.apache.james.util.ReactorUtils.DEFAULT_CONCURRENCY;
 
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import jakarta.inject.Inject;
 
@@ -30,6 +31,8 @@ import 
org.apache.james.backends.cassandra.components.CassandraDataDefinition;
 import org.apache.james.backends.cassandra.components.CassandraTable;
 import 
org.apache.james.backends.cassandra.components.CassandraTable.InitializationStatus;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.datastax.oss.driver.api.core.CqlSession;
 import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
@@ -40,6 +43,7 @@ import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
 
 public class CassandraTableManager {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(CassandraTableManager.class);
 
     private final CqlSession session;
     private final CassandraDataDefinition module;
@@ -53,6 +57,11 @@ public class CassandraTableManager {
     public InitializationStatus initializeTables(CassandraTypesProvider 
typesProvider) {
         KeyspaceMetadata keyspaceMetadata = 
session.getMetadata().getKeyspaces().get(session.getKeyspace().get());
 
+        LOGGER.info("Enforcing the existance of the following tables: {}", 
module.moduleTables()
+            .stream()
+            .map(CassandraTable::getName)
+            .collect(Collectors.joining(", ")));
+
         return Flux.fromIterable(module.moduleTables())
             .flatMap(table -> table.initialize(keyspaceMetadata, session, 
typesProvider), DEFAULT_CONCURRENCY)
             .reduce(InitializationStatus::reduce)


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to