This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 1308e1e5d1a74203193ba34971e1493efbfdd693 Author: Benoit Tellier <[email protected]> AuthorDate: Tue Jun 1 07:47:56 2021 +0700 [PERFORMANCE] Migrate where possible from Mono.fatMap to flatMapIterable --- .../cassandra/utils/CassandraAsyncExecutor.java | 3 ++- .../backends/cassandra/utils/CassandraUtils.java | 6 ------ .../cassandra/mail/CassandraDeletedMessageDAO.java | 23 +++++----------------- .../cassandra/mail/CassandraMailboxDAO.java | 16 ++------------- .../cassandra/mail/CassandraMailboxPathV3DAO.java | 13 +++--------- .../cassandra/mail/CassandraMailboxRecentsDAO.java | 15 ++------------ .../cassandra/mail/CassandraMessageMapper.java | 2 +- .../mail/CassandraUserMailboxRightsDAO.java | 8 ++------ .../cassandra/CassandraMailboxManagerTest.java | 5 ++--- .../cassandra/mail/CassandraACLMapperV1Test.java | 3 +-- .../cassandra/mail/CassandraACLMapperV2Test.java | 3 +-- .../cassandra/mail/CassandraMailboxMapperTest.java | 5 ++--- .../mail/CassandraMailboxPathV3DAOTest.java | 2 -- .../mail/CassandraUserMailboxRightsDAOTest.java | 3 +-- .../mail/migration/AclV2MigrationTest.java | 3 +-- .../SolveMailboxInconsistenciesServiceTest.java | 2 -- .../v7/ElasticSearchQuotaSearcher.java | 3 ++- .../memory/change/MemoryEmailChangeRepository.java | 6 ++++-- .../cassandra/CassandraMailRepositoryKeysDAO.java | 9 ++++----- .../CassandraMailRepositoryKeysDAOTest.java | 3 +-- .../cassandra/CassandraMailRepositoryTest.java | 5 ++--- ...aMailRepositoryWithFakeImplementationsTest.java | 3 +-- .../org/apache/james/jmap/http/JMAPApiRoutes.java | 3 ++- 23 files changed, 41 insertions(+), 103 deletions(-) diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraAsyncExecutor.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraAsyncExecutor.java index aa0c6cf..c869c30 100644 --- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraAsyncExecutor.java +++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraAsyncExecutor.java @@ -22,6 +22,7 @@ package org.apache.james.backends.cassandra.utils; import static org.apache.james.util.ReactorUtils.publishIfPresent; import java.util.Optional; +import java.util.function.Function; import javax.inject.Inject; @@ -67,7 +68,7 @@ public class CassandraAsyncExecutor { public Flux<Row> executeRows(Statement statement) { return execute(statement) - .flatMapMany(Flux::fromIterable); + .flatMapIterable(Function.identity()); } public Mono<Optional<Row>> executeSingleRowOptional(Statement statement) { diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraUtils.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraUtils.java index e6ec3a9..fa749e6 100644 --- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraUtils.java +++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraUtils.java @@ -29,8 +29,6 @@ import org.apache.james.backends.cassandra.init.configuration.CassandraConfigura import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; -import reactor.core.publisher.Flux; - public class CassandraUtils { public static final CassandraUtils WITH_DEFAULT_CONFIGURATION = new CassandraUtils(CassandraConfiguration.DEFAULT_CONFIGURATION); @@ -42,10 +40,6 @@ public class CassandraUtils { this.cassandraConfiguration = cassandraConfiguration; } - public Flux<Row> convertToFlux(ResultSet resultSet) { - return Flux.fromIterable(resultSet); - } - public Stream<Row> convertToStream(ResultSet resultSet) { return StreamSupport.stream(resultSet.spliterator(), true) .peek(row -> ensureFetchedNextPage(resultSet)); diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java index 8e45984..3e6d9db 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java @@ -30,10 +30,11 @@ import static org.apache.james.mailbox.cassandra.table.CassandraDeletedMessageTa import static org.apache.james.mailbox.cassandra.table.CassandraDeletedMessageTable.TABLE_NAME; import static org.apache.james.mailbox.cassandra.table.CassandraDeletedMessageTable.UID; +import java.util.function.Function; + import javax.inject.Inject; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.cassandra.ids.CassandraId; import org.apache.james.mailbox.model.MessageRange; @@ -41,7 +42,6 @@ import org.apache.james.mailbox.model.MessageRange; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Session; -import com.google.common.annotations.VisibleForTesting; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -54,15 +54,13 @@ public class CassandraDeletedMessageDAO { private final PreparedStatement addStatement; private final PreparedStatement deleteStatement; private final PreparedStatement deleteAllStatement; - private final PreparedStatement selectAllUidStatement; private final PreparedStatement selectOneUidStatement; private final PreparedStatement selectBetweenUidStatement; private final PreparedStatement selectFromUidStatement; - private final CassandraUtils cassandraUtils; @Inject - public CassandraDeletedMessageDAO(Session session, CassandraUtils cassandraUtils) { + public CassandraDeletedMessageDAO(Session session) { this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session); this.addStatement = prepareAddStatement(session); this.deleteStatement = prepareDeleteStatement(session); @@ -71,12 +69,6 @@ public class CassandraDeletedMessageDAO { this.selectOneUidStatement = prepareOneUidStatement(session); this.selectBetweenUidStatement = prepareBetweenUidStatement(session); this.selectFromUidStatement = prepareFromUidStatement(session); - this.cassandraUtils = cassandraUtils; - } - - @VisibleForTesting - public CassandraDeletedMessageDAO(Session session) { - this(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION); } private PreparedStatement prepareAllUidStatement(Session session) { @@ -146,7 +138,8 @@ public class CassandraDeletedMessageDAO { public Flux<MessageUid> retrieveDeletedMessage(CassandraId cassandraId, MessageRange range) { return retrieveResultSetOfDeletedMessage(cassandraId, range) - .flatMapMany(this::resultSetToFlux); + .flatMapIterable(Function.identity()) + .map(row -> MessageUid.of(row.getLong(UID))); } private Mono<ResultSet> retrieveResultSetOfDeletedMessage(CassandraId cassandraId, MessageRange range) { @@ -164,12 +157,6 @@ public class CassandraDeletedMessageDAO { throw new UnsupportedOperationException(); } - private Flux<MessageUid> resultSetToFlux(ResultSet resultSet) { - return cassandraUtils.convertToFlux(resultSet) - .map(row -> - MessageUid.of(row.getLong(UID))); - } - private Mono<ResultSet> retrieveAllDeleted(CassandraId cassandraId) { return cassandraAsyncExecutor.execute( selectAllUidStatement.bind() diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java index 21ccd66..f128d67 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java @@ -38,7 +38,6 @@ import javax.inject.Inject; import org.apache.james.backends.cassandra.init.CassandraTypesProvider; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.core.Username; import org.apache.james.mailbox.cassandra.ids.CassandraId; import org.apache.james.mailbox.cassandra.mail.utils.MailboxBaseTupleUtil; @@ -52,7 +51,6 @@ import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; import com.datastax.driver.core.querybuilder.QueryBuilder; -import com.google.common.annotations.VisibleForTesting; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -61,7 +59,6 @@ public class CassandraMailboxDAO { private final CassandraAsyncExecutor executor; private final MailboxBaseTupleUtil mailboxBaseTupleUtil; - private final CassandraUtils cassandraUtils; private final PreparedStatement readStatement; private final PreparedStatement listStatement; private final PreparedStatement deleteStatement; @@ -72,8 +69,7 @@ public class CassandraMailboxDAO { @Inject public CassandraMailboxDAO(Session session, CassandraTypesProvider typesProvider, - CassandraConsistenciesConfiguration consistenciesConfiguration, - CassandraUtils cassandraUtils) { + CassandraConsistenciesConfiguration consistenciesConfiguration) { this.executor = new CassandraAsyncExecutor(session); this.consistencyLevel = consistenciesConfiguration.getRegular(); this.mailboxBaseTupleUtil = new MailboxBaseTupleUtil(typesProvider); @@ -83,13 +79,6 @@ public class CassandraMailboxDAO { this.deleteStatement = prepareDelete(session); this.listStatement = prepareList(session); this.readStatement = prepareRead(session); - this.cassandraUtils = cassandraUtils; - } - - @VisibleForTesting - public CassandraMailboxDAO(Session session, CassandraTypesProvider typesProvider, - CassandraConsistenciesConfiguration consistenciesConfiguration) { - this(session, typesProvider, consistenciesConfiguration, CassandraUtils.WITH_DEFAULT_CONFIGURATION); } private PreparedStatement prepareInsert(Session session) { @@ -188,8 +177,7 @@ public class CassandraMailboxDAO { } public Flux<Mailbox> retrieveAllMailboxes() { - return executor.execute(listStatement.bind()) - .flatMapMany(cassandraUtils::convertToFlux) + return executor.executeRows(listStatement.bind()) .flatMap(this::toMailboxWithId, DEFAULT_CONCURRENCY); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAO.java index 3de61be..d8435d6 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAO.java @@ -37,7 +37,6 @@ import javax.inject.Inject; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration.ConsistencyChoice; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.core.Username; import org.apache.james.mailbox.cassandra.GhostMailbox; import org.apache.james.mailbox.cassandra.ids.CassandraId; @@ -58,7 +57,6 @@ import reactor.core.publisher.Mono; public class CassandraMailboxPathV3DAO { private final CassandraAsyncExecutor cassandraAsyncExecutor; - private final CassandraUtils cassandraUtils; private final PreparedStatement delete; private final PreparedStatement insert; private final PreparedStatement select; @@ -67,11 +65,9 @@ public class CassandraMailboxPathV3DAO { private final CassandraConsistenciesConfiguration consistenciesConfiguration; @Inject - public CassandraMailboxPathV3DAO(Session session, CassandraUtils cassandraUtils, - CassandraConsistenciesConfiguration consistenciesConfiguration) { + public CassandraMailboxPathV3DAO(Session session, CassandraConsistenciesConfiguration consistenciesConfiguration) { this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session); this.consistenciesConfiguration = consistenciesConfiguration; - this.cassandraUtils = cassandraUtils; this.insert = prepareInsert(session); this.delete = prepareDelete(session); this.select = prepareSelect(session); @@ -139,20 +135,17 @@ public class CassandraMailboxPathV3DAO { } public Flux<Mailbox> listUserMailboxes(String namespace, Username user, ConsistencyChoice consistencyChoice) { - return cassandraAsyncExecutor.execute( + return cassandraAsyncExecutor.executeRows( selectUser.bind() .setString(NAMESPACE, namespace) .setString(USER, sanitizeUser(user)) .setConsistencyLevel(consistencyChoice.choose(consistenciesConfiguration))) - .flatMapMany(cassandraUtils::convertToFlux) .map(this::fromRowToCassandraIdAndPath) .map(FunctionalUtils.toFunction(this::logReadSuccess)); } public Flux<Mailbox> listAll() { - return cassandraAsyncExecutor.execute( - selectAll.bind()) - .flatMapMany(cassandraUtils::convertToFlux) + return cassandraAsyncExecutor.executeRows(selectAll.bind()) .map(this::fromRowToCassandraIdAndPath) .map(FunctionalUtils.toFunction(this::logReadSuccess)); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentsDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentsDAO.java index ed96abd..d7d59bf 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentsDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentsDAO.java @@ -27,7 +27,6 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.select; import javax.inject.Inject; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.cassandra.ids.CassandraId; import org.apache.james.mailbox.cassandra.table.CassandraMailboxRecentsTable; @@ -36,33 +35,24 @@ import com.datastax.driver.core.BoundStatement; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Session; import com.datastax.driver.core.querybuilder.QueryBuilder; -import com.google.common.annotations.VisibleForTesting; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; public class CassandraMailboxRecentsDAO { - private final CassandraAsyncExecutor cassandraAsyncExecutor; private final PreparedStatement readStatement; private final PreparedStatement deleteStatement; private final PreparedStatement deleteAllStatement; private final PreparedStatement addStatement; - private CassandraUtils cassandraUtils; @Inject - public CassandraMailboxRecentsDAO(Session session, CassandraUtils cassandraUtils) { + public CassandraMailboxRecentsDAO(Session session) { cassandraAsyncExecutor = new CassandraAsyncExecutor(session); readStatement = createReadStatement(session); deleteStatement = createDeleteStatement(session); deleteAllStatement = createDeleteAllStatement(session); addStatement = createAddStatement(session); - this.cassandraUtils = cassandraUtils; - } - - @VisibleForTesting - public CassandraMailboxRecentsDAO(Session session) { - this(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION); } private PreparedStatement createReadStatement(Session session) { @@ -95,8 +85,7 @@ public class CassandraMailboxRecentsDAO { } public Flux<MessageUid> getRecentMessageUidsInMailbox(CassandraId mailboxId) { - return cassandraAsyncExecutor.execute(bindWithMailbox(mailboxId, readStatement)) - .flatMapMany(cassandraUtils::convertToFlux) + return cassandraAsyncExecutor.executeRows(bindWithMailbox(mailboxId, readStatement)) .map(row -> row.getLong(CassandraMailboxRecentsTable.RECENT_MESSAGE_UID)) .map(MessageUid::of); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java index 2a1f903..7bf43d1 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java @@ -394,7 +394,7 @@ public class CassandraMessageMapper implements MessageMapper { Flux<ComposedMessageIdWithMetaData> toBeUpdated = mailboxRecentDAO.getRecentMessageUidsInMailbox(mailboxId) .collectList() - .flatMapMany(uids -> Flux.fromIterable(MessageRange.toRanges(uids))) + .flatMapIterable(MessageRange::toRanges) .concatMap(range -> messageIdDAO.retrieveMessages(mailboxId, range, Limit.unlimited())) .filter(message -> message.getFlags().contains(Flag.RECENT)); FlagsUpdateCalculator calculator = new FlagsUpdateCalculator(new Flags(Flag.RECENT), FlagsUpdateMode.REMOVE); diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java index 33d6ec1..1c3028d 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java @@ -35,7 +35,6 @@ import javax.inject.Inject; import org.apache.commons.lang3.tuple.Pair; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.core.Username; import org.apache.james.mailbox.acl.ACLDiff; import org.apache.james.mailbox.acl.PositiveUserACLDiff; @@ -56,16 +55,14 @@ import reactor.core.publisher.Mono; public class CassandraUserMailboxRightsDAO { private final CassandraAsyncExecutor cassandraAsyncExecutor; - private final CassandraUtils cassandraUtils; private final PreparedStatement delete; private final PreparedStatement insert; private final PreparedStatement select; private final PreparedStatement selectUser; @Inject - public CassandraUserMailboxRightsDAO(Session session, CassandraUtils cassandraUtils) { + public CassandraUserMailboxRightsDAO(Session session) { this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session); - this.cassandraUtils = cassandraUtils; this.delete = prepareDelete(session); this.insert = prepareInsert(session); this.select = prepareSelect(session); @@ -137,10 +134,9 @@ public class CassandraUserMailboxRightsDAO { } public Flux<Pair<CassandraId, Rfc4314Rights>> listRightsForUser(Username userName) { - return cassandraAsyncExecutor.execute( + return cassandraAsyncExecutor.executeRows( selectUser.bind() .setString(USER_NAME, userName.asString())) - .flatMapMany(cassandraUtils::convertToFlux) .map(Throwing.function(this::toPair)); } diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java index 0acbb0c..41f29b9 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java @@ -33,7 +33,6 @@ import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.blob.api.BlobStore; @@ -805,7 +804,7 @@ public class CassandraMailboxManagerTest extends MailboxManagerTest<CassandraMai JsonEventSerializer jsonEventSerializer = JsonEventSerializer .forModules(ACLModule.ACL_UPDATE) .withoutNestedType(); - CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandraCluster.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandraCluster.getConf()); CassandraEventStore eventStore = new CassandraEventStore(new EventStoreDao(cassandraCluster.getConf(), jsonEventSerializer, CassandraConsistenciesConfiguration.DEFAULT)); return new CassandraACLMapper( new CassandraACLMapper.StoreV1(usersRightDAO, aclDAOV1), @@ -814,7 +813,7 @@ public class CassandraMailboxManagerTest extends MailboxManagerTest<CassandraMai } private CassandraUserMailboxRightsDAO rightsDAO(CassandraCluster cassandraCluster) { - return new CassandraUserMailboxRightsDAO(cassandraCluster.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + return new CassandraUserMailboxRightsDAO(cassandraCluster.getConf()); } private CassandraAttachmentMessageIdDAO attachmentMessageIdDAO(CassandraCluster cassandraCluster) { diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV1Test.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV1Test.java index e34e0b0..75f54ce 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV1Test.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV1Test.java @@ -34,7 +34,6 @@ import org.apache.james.backends.cassandra.Scenario.Barrier; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; @@ -69,7 +68,7 @@ class CassandraACLMapperV1Test extends CassandraACLMapperContract { JsonEventSerializer jsonEventSerializer = JsonEventSerializer .forModules(ACLModule.ACL_UPDATE) .withoutNestedType(); - CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf()); CassandraEventStore eventStore = new CassandraEventStore(new EventStoreDao(cassandra.getConf(), jsonEventSerializer, CassandraConsistenciesConfiguration.DEFAULT)); cassandraACLMapper = new CassandraACLMapper( new CassandraACLMapper.StoreV1(usersRightDAO, aclDAOV1), diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV2Test.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV2Test.java index c91319a..5beaede 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV2Test.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV2Test.java @@ -33,7 +33,6 @@ import org.apache.james.backends.cassandra.Scenario.Barrier; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; @@ -67,7 +66,7 @@ class CassandraACLMapperV2Test extends CassandraACLMapperContract { JsonEventSerializer jsonEventSerializer = JsonEventSerializer .forModules(ACLModule.ACL_UPDATE) .withoutNestedType(); - CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf()); CassandraEventStore eventStore = new CassandraEventStore(new EventStoreDao(cassandra.getConf(), jsonEventSerializer, CassandraConsistenciesConfiguration.DEFAULT)); cassandraACLMapper = new CassandraACLMapper( new CassandraACLMapper.StoreV1(usersRightDAO, aclDAOV1), diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java index 409132a..d4f377c 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java @@ -33,7 +33,6 @@ import org.apache.james.backends.cassandra.Scenario; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; @@ -103,7 +102,7 @@ class CassandraMailboxMapperTest { void setUp() { CassandraCluster cassandra = cassandraCluster.getCassandraCluster(); mailboxDAO = new CassandraMailboxDAO(cassandra.getConf(), cassandra.getTypesProvider(), cassandraCluster.getCassandraConsistenciesConfiguration()); - mailboxPathV3DAO = new CassandraMailboxPathV3DAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION, cassandraCluster.getCassandraConsistenciesConfiguration()); + mailboxPathV3DAO = new CassandraMailboxPathV3DAO(cassandra.getConf(), cassandraCluster.getCassandraConsistenciesConfiguration()); versionDAO = new CassandraSchemaVersionDAO(cassandra.getConf()); versionDAO.truncateVersion() @@ -121,7 +120,7 @@ class CassandraMailboxMapperTest { JsonEventSerializer jsonEventSerializer = JsonEventSerializer .forModules(ACLModule.ACL_UPDATE) .withoutNestedType(); - CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf()); CassandraEventStore eventStore = new CassandraEventStore(new EventStoreDao(cassandra.getConf(), jsonEventSerializer, CassandraConsistenciesConfiguration.DEFAULT)); CassandraACLMapper aclMapper = new CassandraACLMapper( new CassandraACLMapper.StoreV1(usersRightDAO, aclDAOV1), diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAOTest.java index a59c759..2085743 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAOTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAOTest.java @@ -31,7 +31,6 @@ import java.util.List; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule; import org.apache.james.mailbox.model.Mailbox; @@ -52,7 +51,6 @@ class CassandraMailboxPathV3DAOTest { void setUp(CassandraCluster cassandra) { testee = new CassandraMailboxPathV3DAO( cassandra.getConf(), - CassandraUtils.WITH_DEFAULT_CONFIGURATION, cassandraCluster.getCassandraConsistenciesConfiguration()); } diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java index 5e9c8b0..aa85c2c 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java @@ -22,7 +22,6 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.core.Username; import org.apache.james.mailbox.acl.ACLDiff; import org.apache.james.mailbox.cassandra.ids.CassandraId; @@ -50,7 +49,7 @@ class CassandraUserMailboxRightsDAOTest { @BeforeEach void setUp(CassandraCluster cassandra) { - testee = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + testee = new CassandraUserMailboxRightsDAO(cassandra.getConf()); } @Test diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/AclV2MigrationTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/AclV2MigrationTest.java index 1a22a87..896f5ee 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/AclV2MigrationTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/AclV2MigrationTest.java @@ -26,7 +26,6 @@ import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.backends.cassandra.init.configuration.CassandraConsistenciesConfiguration; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; import org.apache.james.core.Username; import org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStore; @@ -82,7 +81,7 @@ class AclV2MigrationTest { .forModules(ACLModule.ACL_UPDATE) .withoutNestedType(); CassandraEventStore eventStore = new CassandraEventStore(new EventStoreDao(cassandra.getConf(), jsonEventSerializer, CassandraConsistenciesConfiguration.DEFAULT)); - CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraUserMailboxRightsDAO usersRightDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf()); migration = new AclV2Migration(mailboxDAO, new CassandraACLMapper.StoreV1(usersRightDAO, daoV1), new CassandraACLMapper.StoreV2(usersRightDAO, daoV2, eventStore)); diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesServiceTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesServiceTest.java index 4fc7d76..91d8312 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesServiceTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesServiceTest.java @@ -26,7 +26,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; @@ -80,7 +79,6 @@ class SolveMailboxInconsistenciesServiceTest { cassandraCluster.getCassandraConsistenciesConfiguration()); mailboxPathV3DAO = new CassandraMailboxPathV3DAO( cassandra.getConf(), - CassandraUtils.WITH_DEFAULT_CONFIGURATION, cassandraCluster.getCassandraConsistenciesConfiguration()); versionDAO = new CassandraSchemaVersionDAO(cassandra.getConf()); testee = new SolveMailboxInconsistenciesService(mailboxDAO, mailboxPathV3DAO, new CassandraSchemaVersionManager(versionDAO)); diff --git a/mailbox/plugin/quota-search-elasticsearch-v7/src/main/java/org/apache/james/quota/search/elasticsearch/v7/ElasticSearchQuotaSearcher.java b/mailbox/plugin/quota-search-elasticsearch-v7/src/main/java/org/apache/james/quota/search/elasticsearch/v7/ElasticSearchQuotaSearcher.java index 6b54d02..113881f 100644 --- a/mailbox/plugin/quota-search-elasticsearch-v7/src/main/java/org/apache/james/quota/search/elasticsearch/v7/ElasticSearchQuotaSearcher.java +++ b/mailbox/plugin/quota-search-elasticsearch-v7/src/main/java/org/apache/james/quota/search/elasticsearch/v7/ElasticSearchQuotaSearcher.java @@ -39,6 +39,7 @@ import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import com.github.steveash.guavate.Guavate; +import com.google.common.collect.ImmutableList; import reactor.core.publisher.Flux; @@ -86,7 +87,7 @@ public class ElasticSearchQuotaSearcher implements QuotaSearcher { .source(searchSourceBuilder); return client.search(searchRequest, RequestOptions.DEFAULT) - .flatMapMany(searchResponse -> Flux.fromArray(searchResponse.getHits().getHits())); + .flatMapIterable(searchResponse -> ImmutableList.copyOf(searchResponse.getHits().getHits())); } private Flux<SearchHit> executeScrolledSearch(QuotaQuery query) { diff --git a/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepository.java b/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepository.java index 9636693..5296780 100644 --- a/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepository.java +++ b/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepository.java @@ -34,6 +34,7 @@ import org.apache.james.jmap.api.change.State; import org.apache.james.jmap.api.exception.ChangeNotFoundException; import org.apache.james.jmap.api.model.AccountId; +import com.github.steveash.guavate.Guavate; import com.google.common.base.Preconditions; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; @@ -107,9 +108,10 @@ public class MemoryEmailChangeRepository implements EmailChangeRepository { private Flux<EmailChange> allChangesSince(AccountId accountId, State state) { return findByState(accountId, state) - .flatMapMany(currentState -> Flux.fromIterable(emailChangeMap.get(accountId)) + .flatMapIterable(currentState -> emailChangeMap.get(accountId).stream() .filter(change -> change.getDate().isAfter(currentState.getDate())) - .sort(Comparator.comparing(EmailChange::getDate))); + .sorted(Comparator.comparing(EmailChange::getDate)) + .collect(Guavate.toImmutableList())); } private Flux<EmailChange> allChanges(AccountId accountId) { diff --git a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAO.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAO.java index 307c8e9..897e2a5 100644 --- a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAO.java +++ b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAO.java @@ -28,10 +28,11 @@ import static org.apache.james.mailrepository.cassandra.MailRepositoryTable.KEYS import static org.apache.james.mailrepository.cassandra.MailRepositoryTable.MAIL_KEY; import static org.apache.james.mailrepository.cassandra.MailRepositoryTable.REPOSITORY_NAME; +import java.util.function.Function; + import javax.inject.Inject; import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.mailrepository.api.MailKey; import org.apache.james.mailrepository.api.MailRepositoryUrl; @@ -44,15 +45,13 @@ import reactor.core.publisher.Mono; public class CassandraMailRepositoryKeysDAO { private final CassandraAsyncExecutor executor; - private final CassandraUtils cassandraUtils; private final PreparedStatement insertKey; private final PreparedStatement deleteKey; private final PreparedStatement listKeys; @Inject - public CassandraMailRepositoryKeysDAO(Session session, CassandraUtils cassandraUtils) { + public CassandraMailRepositoryKeysDAO(Session session) { this.executor = new CassandraAsyncExecutor(session); - this.cassandraUtils = cassandraUtils; this.insertKey = prepareInsert(session); this.deleteKey = prepareDelete(session); @@ -89,7 +88,7 @@ public class CassandraMailRepositoryKeysDAO { public Flux<MailKey> list(MailRepositoryUrl url) { return executor.execute(listKeys.bind() .setString(REPOSITORY_NAME, url.asString())) - .flatMapMany(cassandraUtils::convertToFlux) + .flatMapIterable(Function.identity()) .map(row -> new MailKey(row.getString(MAIL_KEY))); } diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAOTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAOTest.java index db7f98a..0a2d568 100644 --- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAOTest.java +++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAOTest.java @@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; import org.apache.james.mailrepository.api.MailKey; import org.apache.james.mailrepository.api.MailRepositoryUrl; @@ -48,7 +47,7 @@ class CassandraMailRepositoryKeysDAOTest { @BeforeEach void setUp(CassandraCluster cassandra) { - testee = new CassandraMailRepositoryKeysDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + testee = new CassandraMailRepositoryKeysDAO(cassandra.getConf()); } @Test diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryTest.java index 3f1d9b0..b0642e8 100644 --- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryTest.java +++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryTest.java @@ -26,7 +26,6 @@ import static org.assertj.core.api.Assertions.assertThatCode; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.HashBlobId; @@ -65,7 +64,7 @@ class CassandraMailRepositoryTest { CassandraMailRepositoryMailDAO v1 = new CassandraMailRepositoryMailDAO(cassandra.getConf(), BLOB_ID_FACTORY, cassandra.getTypesProvider()); CassandraMailRepositoryMailDaoV2 v2 = new CassandraMailRepositoryMailDaoV2(cassandra.getConf(), BLOB_ID_FACTORY); CassandraMailRepositoryMailDaoAPI mailDAO = new MergingCassandraMailRepositoryMailDao(v1, v2); - CassandraMailRepositoryKeysDAO keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraMailRepositoryKeysDAO keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf()); CassandraMailRepositoryCountDAO countDAO = new CassandraMailRepositoryCountDAO(cassandra.getConf()); BlobStore blobStore = CassandraBlobStoreFactory.forTesting(cassandra.getConf(), new RecordingMetricFactory()) .passthrough(); @@ -105,7 +104,7 @@ class CassandraMailRepositoryTest { CassandraMailRepositoryMailDAO v1 = new CassandraMailRepositoryMailDAO(cassandra.getConf(), BLOB_ID_FACTORY, cassandra.getTypesProvider()); CassandraMailRepositoryMailDaoV2 v2 = new CassandraMailRepositoryMailDaoV2(cassandra.getConf(), BLOB_ID_FACTORY); CassandraMailRepositoryMailDaoAPI mailDAO = new MergingCassandraMailRepositoryMailDao(v1, v2); - CassandraMailRepositoryKeysDAO keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + CassandraMailRepositoryKeysDAO keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf()); CassandraMailRepositoryCountDAO countDAO = new CassandraMailRepositoryCountDAO(cassandra.getConf()); BlobStore blobStore = CassandraBlobStoreFactory.forTesting(cassandra.getConf(), new RecordingMetricFactory()) .deduplication(); diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java index 73b24e0..01b81da 100644 --- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java +++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java @@ -27,7 +27,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; -import org.apache.james.backends.cassandra.utils.CassandraUtils; import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.HashBlobId; @@ -65,7 +64,7 @@ class CassandraMailRepositoryWithFakeImplementationsTest { @BeforeEach void setup(CassandraCluster cassandra) { CassandraMailRepositoryMailDaoAPI mailDAO = new CassandraMailRepositoryMailDAO(cassandra.getConf(), BLOB_ID_FACTORY, cassandra.getTypesProvider()); - keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION); + keysDAO = new CassandraMailRepositoryKeysDAO(cassandra.getConf()); countDAO = new CassandraMailRepositoryCountDAO(cassandra.getConf()); BlobStore blobStore = CassandraBlobStoreFactory.forTesting(cassandra.getConf(), new RecordingMetricFactory()) .passthrough(); diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/JMAPApiRoutes.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/JMAPApiRoutes.java index 4f2f110..1882121 100644 --- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/JMAPApiRoutes.java +++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/JMAPApiRoutes.java @@ -51,6 +51,7 @@ import com.fasterxml.jackson.core.JsonParser.Feature; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableList; import io.netty.handler.codec.http.HttpMethod; import reactor.core.publisher.Flux; @@ -141,6 +142,6 @@ public class JMAPApiRoutes implements JMAPRoutes { throw new BadRequestException("Error deserializing JSON", e); } }) - .flatMapMany(Flux::fromArray); + .flatMapIterable(ImmutableList::copyOf); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
