You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/03/28 03:21:58 UTC
[james-project] 14/23: MAILBOX-388 FunctionUtils: turn toPredicate
into identityPredicate
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 <bt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org