This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 9215920572977fff8f9614e6b495c4a3ff66dd70 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Fri May 8 06:21:14 2020 +0200 [Refactoring] Rely on publishIfPresent when mapping null values --- .../org/apache/james/backends/rabbitmq/SimpleConnectionPool.java | 5 +++-- .../mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java | 9 ++++++--- .../mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java | 9 ++++++--- .../mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java | 9 ++++++--- .../util/src/main/java/org/apache/james/util/ReactorUtils.java | 5 ----- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/SimpleConnectionPool.java b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/SimpleConnectionPool.java index 97ebfbe..d408666 100644 --- a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/SimpleConnectionPool.java +++ b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/SimpleConnectionPool.java @@ -19,7 +19,7 @@ package org.apache.james.backends.rabbitmq; -import static org.apache.james.util.ReactorUtils.transformAndPublishIfNotNull; +import static org.apache.james.util.ReactorUtils.publishIfPresent; import java.io.IOException; import java.time.Duration; @@ -91,7 +91,8 @@ public class SimpleConnectionPool implements AutoCloseable { public Mono<RabbitMQServerVersion> version() { return getOpenConnection() .map(Connection::getServerProperties) - .handle(transformAndPublishIfNotNull(serverProperties -> serverProperties.get("version"))) + .map(serverProperties -> Optional.ofNullable(serverProperties.get("version"))) + .handle(publishIfPresent()) .map(Object::toString) .map(RabbitMQServerVersion::of) .timeout(Duration.ofSeconds(1)) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java index 03d4e54..ae8684e 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java @@ -25,7 +25,8 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; import static com.datastax.driver.core.querybuilder.QueryBuilder.select; import static org.apache.james.util.ReactorUtils.publishIfPresent; -import static org.apache.james.util.ReactorUtils.transformAndPublishIfNotNull; + +import java.util.Optional; import javax.inject.Inject; @@ -94,7 +95,8 @@ public class CassandraGlobalMaxQuotaDao { Mono<QuotaSizeLimit> getGlobalMaxStorage() { return queryExecutor.executeSingleRow(getGlobalMaxStatement.bind() .setString(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.STORAGE)) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraGlobalMaxQuota.VALUE, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraGlobalMaxQuota.VALUE, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaSize) .handle(publishIfPresent()); } @@ -102,7 +104,8 @@ public class CassandraGlobalMaxQuotaDao { Mono<QuotaCountLimit> getGlobalMaxMessage() { return queryExecutor.executeSingleRow(getGlobalMaxStatement.bind() .setString(CassandraGlobalMaxQuota.TYPE, CassandraGlobalMaxQuota.MESSAGE)) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraGlobalMaxQuota.VALUE, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraGlobalMaxQuota.VALUE, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaCount) .handle(publishIfPresent()); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java index 102d793..bc88058 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java @@ -25,7 +25,8 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; import static com.datastax.driver.core.querybuilder.QueryBuilder.select; import static org.apache.james.util.ReactorUtils.publishIfPresent; -import static org.apache.james.util.ReactorUtils.transformAndPublishIfNotNull; + +import java.util.Optional; import javax.inject.Inject; @@ -110,14 +111,16 @@ public class CassandraPerDomainMaxQuotaDao { Mono<QuotaSizeLimit> getMaxStorage(Domain domain) { return queryExecutor.executeSingleRow(getMaxStorageStatement.bind(domain.asString())) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraDomainMaxQuota.STORAGE, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraDomainMaxQuota.STORAGE, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaSize) .handle(publishIfPresent()); } Mono<QuotaCountLimit> getMaxMessage(Domain domain) { return queryExecutor.executeSingleRow(getMaxMessageStatement.bind(domain.asString())) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraDomainMaxQuota.MESSAGE_COUNT, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraDomainMaxQuota.MESSAGE_COUNT, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaCount) .handle(publishIfPresent()); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java index 4abe876..9085623 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java @@ -25,7 +25,8 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; import static com.datastax.driver.core.querybuilder.QueryBuilder.select; import static org.apache.james.util.ReactorUtils.publishIfPresent; -import static org.apache.james.util.ReactorUtils.transformAndPublishIfNotNull; + +import java.util.Optional; import javax.inject.Inject; @@ -110,14 +111,16 @@ public class CassandraPerUserMaxQuotaDao { Mono<QuotaSizeLimit> getMaxStorage(QuotaRoot quotaRoot) { return queryExecutor.executeSingleRow(getMaxStorageStatement.bind(quotaRoot.getValue())) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraMaxQuota.STORAGE, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraMaxQuota.STORAGE, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaSize) .handle(publishIfPresent()); } Mono<QuotaCountLimit> getMaxMessage(QuotaRoot quotaRoot) { return queryExecutor.executeSingleRow(getMaxMessageStatement.bind(quotaRoot.getValue())) - .handle(transformAndPublishIfNotNull(row -> row.get(CassandraMaxQuota.MESSAGE_COUNT, Long.class))) + .map(row -> Optional.ofNullable(row.get(CassandraMaxQuota.MESSAGE_COUNT, Long.class))) + .handle(publishIfPresent()) .map(QuotaCodec::longToQuotaCount) .handle(publishIfPresent()); } diff --git a/server/container/util/src/main/java/org/apache/james/util/ReactorUtils.java b/server/container/util/src/main/java/org/apache/james/util/ReactorUtils.java index 7fb5d5a..a477355 100644 --- a/server/container/util/src/main/java/org/apache/james/util/ReactorUtils.java +++ b/server/container/util/src/main/java/org/apache/james/util/ReactorUtils.java @@ -26,7 +26,6 @@ import java.util.Iterator; import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Consumer; -import java.util.function.Function; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -46,10 +45,6 @@ public class ReactorUtils { return (element, sink) -> element.ifPresent(sink::next); } - public static <T, U> BiConsumer<U, SynchronousSink<T>> transformAndPublishIfNotNull(Function<U, T> mapper) { - return (element, sink) -> Optional.ofNullable(mapper.apply(element)).ifPresent(sink::next); - } - public static InputStream toInputStream(Flux<ByteBuffer> byteArrays) { return new StreamInputStream(byteArrays.toIterable(1).iterator()); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org