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 85d3b926cceafa1789ec9cb50e547903b2e84a0f Author: Benoit Tellier <[email protected]> AuthorDate: Thu Mar 21 13:49:24 2019 +0700 MAILBOX-388 FunctionUtils: turn toPredicate into identityPredicate This is the only use case. Such an API change thus makes the API simpler to use and more explicit. --- .../james/mailbox/cassandra/mail/CassandraACLMapper.java | 5 +++-- .../mailbox/cassandra/mail/CassandraMessageIdMapper.java | 3 +-- .../mailbox/cassandra/mail/CassandraModSeqProvider.java | 4 ++-- .../apache/james/transport/matchers/SMTPIsAuthNetwork.java | 3 +-- .../main/java/org/apache/james/util/FunctionalUtils.java | 5 ++--- .../java/org/apache/james/util/FunctionalUtilsTest.java | 14 +++++++------- .../james/sieve/cassandra/CassandraSieveRepository.java | 3 ++- 7 files changed, 18 insertions(+), 19 deletions(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java index 9fb8bbb..2698c4c 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java @@ -49,6 +49,7 @@ import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; import com.fasterxml.jackson.core.JsonProcessingException; + import reactor.core.publisher.Mono; public class CassandraACLMapper { @@ -162,7 +163,7 @@ public class CassandraACLMapper { .setString(CassandraACLTable.ACL, convertAclToJson(aclWithVersion.mailboxACL)) .setLong(CassandraACLTable.VERSION, aclWithVersion.version + 1) .setLong(OLD_VERSION, aclWithVersion.version)) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .map(any -> aclWithVersion.mailboxACL); } @@ -171,7 +172,7 @@ public class CassandraACLMapper { conditionalInsertStatement.bind() .setUUID(CassandraACLTable.ID, cassandraId.asUuid()) .setString(CassandraACLTable.ACL, convertAclToJson(acl)))) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .map(any -> acl); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java index f74b2ca..830ae98 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java @@ -23,7 +23,6 @@ import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Function; import javax.mail.Flags; @@ -289,7 +288,7 @@ public class CassandraMessageIdMapper implements MessageIdMapper { private Mono<Pair<Flags, ComposedMessageIdWithMetaData>> updateFlags(ComposedMessageIdWithMetaData oldComposedId, ComposedMessageIdWithMetaData newComposedId) { return imapUidDAO.updateMetadata(newComposedId, oldComposedId.getModSeq()) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .flatMap(any -> messageIdDAO.updateMetadata(newComposedId) .thenReturn(Pair.of(oldComposedId.getFlags(), newComposedId))); } diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java index 25347bb..1d2780f 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java @@ -32,7 +32,6 @@ import static org.apache.james.mailbox.cassandra.table.CassandraMessageModseqTab import java.time.Duration; import java.util.Optional; import java.util.concurrent.CompletionException; -import java.util.function.Function; import java.util.function.Supplier; import javax.inject.Inject; @@ -50,6 +49,7 @@ import org.apache.james.util.FunctionalUtils; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Session; import com.google.common.base.MoreObjects; + import reactor.core.publisher.Mono; public class CassandraModSeqProvider implements ModSeqProvider { @@ -172,7 +172,7 @@ public class CassandraModSeqProvider implements ModSeqProvider { private Mono<ModSeq> successToModSeq(ModSeq modSeq, Boolean success) { return Mono.just(success) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .map(any -> modSeq); } diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPIsAuthNetwork.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPIsAuthNetwork.java index 7ea745f..107c6cb 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPIsAuthNetwork.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPIsAuthNetwork.java @@ -20,7 +20,6 @@ package org.apache.james.transport.matchers; import java.util.Collection; -import java.util.function.Function; import org.apache.james.core.MailAddress; import org.apache.james.util.FunctionalUtils; @@ -53,7 +52,7 @@ public class SMTPIsAuthNetwork extends GenericMatcher { public Collection<MailAddress> match(Mail mail) { return AttributeUtils .getValueAndCastFromMail(mail, SMTP_AUTH_NETWORK_NAME, Boolean.class) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .map(any -> mail.getRecipients()) .orElse(ImmutableList.of()); } diff --git a/server/container/util/src/main/java/org/apache/james/util/FunctionalUtils.java b/server/container/util/src/main/java/org/apache/james/util/FunctionalUtils.java index 651f8ba..30c0b63 100644 --- a/server/container/util/src/main/java/org/apache/james/util/FunctionalUtils.java +++ b/server/container/util/src/main/java/org/apache/james/util/FunctionalUtils.java @@ -19,7 +19,6 @@ package org.apache.james.util; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Predicate; import java.util.function.UnaryOperator; @@ -38,7 +37,7 @@ public class FunctionalUtils { }; } - public static <T> Predicate<T> toPredicate(Function<T, Boolean> function) { - return value -> function.apply(value); + public static Predicate<Boolean> identityPredicate() { + return b -> b; } } diff --git a/server/container/util/src/test/java/org/apache/james/util/FunctionalUtilsTest.java b/server/container/util/src/test/java/org/apache/james/util/FunctionalUtilsTest.java index 6c736b0..c62653f 100644 --- a/server/container/util/src/test/java/org/apache/james/util/FunctionalUtilsTest.java +++ b/server/container/util/src/test/java/org/apache/james/util/FunctionalUtilsTest.java @@ -22,7 +22,6 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.function.Consumer; import java.util.function.Function; -import java.util.function.Predicate; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -85,14 +84,15 @@ class FunctionalUtilsTest { } @Nested - class ToPredicate { + class IdentityPredicate { @Test - void shouldKeepProperty() { - Function<Integer, Boolean> function = value -> value % 42 == 0; - Predicate<Integer> predicate = FunctionalUtils.toPredicate(function); + void shouldKeepTrue() { + assertThat(FunctionalUtils.identityPredicate().test(true)).isTrue(); + } - assertThat(predicate.test(5)).isFalse(); - assertThat(predicate.test(42)).isTrue(); + @Test + void shouldDiscardFalse() { + assertThat(FunctionalUtils.identityPredicate().test(false)).isFalse(); } } } \ No newline at end of file diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java index c01f9d3..2c866ba 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java @@ -46,6 +46,7 @@ import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; import org.apache.james.util.FunctionalUtils; import com.github.steveash.guavate.Guavate; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -167,7 +168,7 @@ public class CassandraSieveRepository implements SieveRepository { Mono<Boolean> activateNewScript = unactivateOldScript(user) .then(updateScriptActivation(user, name, true)) - .filter(FunctionalUtils.toPredicate(Function.identity())) + .filter(FunctionalUtils.identityPredicate()) .flatMap(any -> cassandraActiveScriptDAO.activate(user, name).thenReturn(any)); if (!activateNewScript.blockOptional().isPresent()) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
