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