You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/05/24 09:18:11 UTC
[james-project] branch master updated: [REFACTORING] Avoid
Optional::orElse where it looks expensive
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
The following commit(s) were added to refs/heads/master by this push:
new 9a45669 [REFACTORING] Avoid Optional::orElse where it looks expensive
9a45669 is described below
commit 9a45669e4fa73b04a1b0c6c8f70884e1ad3830bc
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sat May 22 13:00:54 2021 +0700
[REFACTORING] Avoid Optional::orElse where it looks expensive
Favor orElseGet in such places.
Use constants where it makes sense.
---
.../src/main/java/org/apache/james/core/quota/QuotaCountLimit.java | 4 +++-
core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java | 4 ++--
.../src/main/java/org/apache/james/mailbox/model/FetchGroup.java | 2 +-
.../src/main/java/org/apache/james/mailbox/model/MailboxACL.java | 7 +++----
.../apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java | 6 +++---
.../james/imap/decode/parser/SetAnnotationCommandParser.java | 2 +-
.../java/org/apache/james/protocols/pop3/core/MDCConstants.java | 4 ++--
.../java/org/apache/james/util/mime/MessageContentExtractor.java | 4 ++--
.../util/src/main/java/org/apache/james/util/streams/Limit.java | 7 ++++---
.../util/src/main/java/org/apache/james/util/streams/Offset.java | 5 +++--
.../james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java | 2 +-
.../org/apache/james/transport/mailets/jsieve/VacationReply.java | 2 +-
.../src/main/java/org/apache/james/jmap/draft/model/Keyword.java | 2 +-
.../java/org/apache/james/jmap/draft/utils/FilterToCriteria.java | 2 +-
.../java/org/apache/james/jmap/mailet/filter/ContentMatcher.java | 2 +-
.../java/org/apache/james/imapserver/netty/IMAPMDCContext.java | 2 +-
16 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java b/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java
index 40add28..c8752ea 100644
--- a/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java
+++ b/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java
@@ -26,8 +26,10 @@ import com.google.common.base.Preconditions;
public class QuotaCountLimit implements QuotaLimitValue<QuotaCountLimit> {
+ private static final QuotaCountLimit UNLIMITED = new QuotaCountLimit(Optional.empty());
+
public static QuotaCountLimit unlimited() {
- return new QuotaCountLimit(Optional.empty());
+ return UNLIMITED;
}
public static QuotaCountLimit count(long value) {
diff --git a/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java b/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java
index 968a11b..fbbccc8 100644
--- a/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java
+++ b/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java
@@ -26,10 +26,10 @@ import com.google.common.base.Preconditions;
public class QuotaSizeLimit implements QuotaLimitValue<QuotaSizeLimit> {
- public static final QuotaSizeLimit QUOTA_SIZE = new QuotaSizeLimit(Optional.empty());
+ private static final QuotaSizeLimit UNLIMITED = new QuotaSizeLimit(Optional.empty());
public static QuotaSizeLimit unlimited() {
- return QUOTA_SIZE;
+ return UNLIMITED;
}
public static QuotaSizeLimit size(long value) {
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroup.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroup.java
index 395821a..834a3ea 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroup.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroup.java
@@ -108,7 +108,7 @@ public class FetchGroup extends Profiles<FetchGroup> {
return partContentDescriptors.stream()
.filter(descriptor -> path.equals(descriptor.path()))
.findFirst()
- .orElse(new PartContentDescriptor(profiles, path));
+ .orElseGet(() -> new PartContentDescriptor(profiles, path));
}
@Override
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
index fe0d66f..5fb6637 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
@@ -566,7 +566,7 @@ public class MailboxACL {
public Builder rights(Right... rights) throws UnsupportedRightException {
this.rights =
Optional.ofNullable(this.rights)
- .orElse(new Rfc4314Rights())
+ .orElseGet(Rfc4314Rights::new)
.union(new Rfc4314Rights(rights));
return this;
}
@@ -703,11 +703,10 @@ public class MailboxACL {
*/
@SafeVarargs
public MailboxACL(Map.Entry<EntryKey, Rfc4314Rights>... entries) {
- this(ImmutableMap.copyOf(
- Optional.ofNullable(entries)
+ this(Optional.ofNullable(entries)
.map(array -> Arrays.stream(array)
.collect(Guavate.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)))
- .orElse(ImmutableMap.of())));
+ .orElseGet(ImmutableMap::of));
}
/**
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
index d5ccb2c..b95a055 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
@@ -304,7 +304,7 @@ public class CassandraMessageIdDAO {
.map(limitAsInt -> selectAllLimited.bind()
.setUUID(MAILBOX_ID, mailboxId.asUuid())
.setInt(LIMIT, limitAsInt))
- .orElse(selectAll.bind()
+ .orElseGet(() -> selectAll.bind()
.setUUID(MAILBOX_ID, mailboxId.asUuid())));
}
@@ -314,7 +314,7 @@ public class CassandraMessageIdDAO {
.setUUID(MAILBOX_ID, mailboxId.asUuid())
.setLong(IMAP_UID, uid.asLong())
.setInt(LIMIT, limitAsInt))
- .orElse(selectUidGte.bind()
+ .orElseGet(() -> selectUidGte.bind()
.setUUID(MAILBOX_ID, mailboxId.asUuid())
.setLong(IMAP_UID, uid.asLong())));
}
@@ -326,7 +326,7 @@ public class CassandraMessageIdDAO {
.setLong(IMAP_UID_GTE, from.asLong())
.setLong(IMAP_UID_LTE, to.asLong())
.setInt(LIMIT, limitAsInt))
- .orElse(selectUidRange.bind()
+ .orElseGet(() -> selectUidRange.bind()
.setUUID(MAILBOX_ID, mailboxId.asUuid())
.setLong(IMAP_UID_GTE, from.asLong())
.setLong(IMAP_UID_LTE, to.asLong())));
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
index a3c7f2f..61b079df 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
@@ -69,7 +69,7 @@ public class SetAnnotationCommandParser extends AbstractImapCommandParser {
return Optional.ofNullable(value)
.map(transforMailboxAnnotation(key))
- .orElse(MailboxAnnotation.nil(createAnnotationKey(key)));
+ .orElseGet(() -> MailboxAnnotation.nil(createAnnotationKey(key)));
} catch (IllegalArgumentException e) {
throw new DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "The key is not valid: " + e.getMessage());
}
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MDCConstants.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MDCConstants.java
index de4f9af..f6a1c00 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MDCConstants.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MDCConstants.java
@@ -37,13 +37,13 @@ public interface MDCConstants {
return Optional.ofNullable(session.getUserMailbox())
.map(Throwing.function(Mailbox::getIdentifier).sneakyThrow())
.map(id -> MDCBuilder.create().addContext(MAILBOX, id))
- .orElse(MDCBuilder.create());
+ .orElseGet(MDCBuilder::create);
}
static MDCBuilder forRequest(Request request) {
return Optional.ofNullable(request.getArgument())
.map(argument -> MDCBuilder.create().addContext(ARGUMENT, argument))
- .orElse(MDCBuilder.create());
+ .orElseGet(MDCBuilder::create);
}
static MDCBuilder withSession(POP3Session session) {
diff --git a/server/container/util/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java b/server/container/util/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java
index 515c050..7685f54 100644
--- a/server/container/util/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java
+++ b/server/container/util/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java
@@ -218,8 +218,8 @@ public class MessageContentExtractor {
public MessageContent merge(MessageContent fromInnerMultipart) {
return new MessageContent(
- textBody.map(Optional::of).orElse(fromInnerMultipart.getTextBody()),
- htmlBody.map(Optional::of).orElse(fromInnerMultipart.getHtmlBody()));
+ textBody.or(fromInnerMultipart::getTextBody),
+ htmlBody.or(fromInnerMultipart::getHtmlBody));
}
public Optional<String> extractMainTextContent(HtmlTextExtractor htmlTextExtractor) {
diff --git a/server/container/util/src/main/java/org/apache/james/util/streams/Limit.java b/server/container/util/src/main/java/org/apache/james/util/streams/Limit.java
index 70ffbbd..7924539 100644
--- a/server/container/util/src/main/java/org/apache/james/util/streams/Limit.java
+++ b/server/container/util/src/main/java/org/apache/james/util/streams/Limit.java
@@ -28,22 +28,23 @@ import com.google.common.base.Preconditions;
import reactor.core.publisher.Flux;
public class Limit {
+ private static final Limit UNLIMITED = new Limit(Optional.empty());
public static Limit from(int limit) {
if (limit > 0) {
return new Limit(Optional.of(limit));
} else {
- return unlimited();
+ return UNLIMITED;
}
}
public static Limit from(Optional<Integer> limit) {
return limit.map(Limit::from)
- .orElse(unlimited());
+ .orElse(UNLIMITED);
}
public static Limit unlimited() {
- return new Limit(Optional.empty());
+ return UNLIMITED;
}
public static Limit limit(int limit) {
diff --git a/server/container/util/src/main/java/org/apache/james/util/streams/Offset.java b/server/container/util/src/main/java/org/apache/james/util/streams/Offset.java
index 109ecae..2230d50 100644
--- a/server/container/util/src/main/java/org/apache/james/util/streams/Offset.java
+++ b/server/container/util/src/main/java/org/apache/james/util/streams/Offset.java
@@ -25,14 +25,15 @@ import java.util.Optional;
import com.google.common.base.Preconditions;
public class Offset {
+ private static final Offset NONE = new Offset(0);
public static Offset from(Optional<Integer> offset) {
return offset.map(Offset::from)
- .orElse(none());
+ .orElse(NONE);
}
public static Offset none() {
- return new Offset(0);
+ return NONE;
}
public static Offset from(int offset) {
diff --git a/server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java b/server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java
index 8d2d572..99cd5ab 100644
--- a/server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java
+++ b/server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java
@@ -112,7 +112,7 @@ public class DLPDomainConfiguration {
return removedRulesEvent
.map(Event::eventId)
.map(EventId::next)
- .orElse(history.getNextEventId());
+ .orElseGet(history::getNextEventId);
}
private Optional<Event> generateRemovedRulesEvent(ImmutableSet<DLPConfigurationItem> existingRules, ImmutableSet<DLPConfigurationItem> updateRulesSet) {
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
index bbff1be..131be03 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
@@ -96,7 +96,7 @@ public class VacationReply {
private String generateNotificationSubject() {
return Optional.ofNullable(subject)
- .orElse(context.getRecipient() + " is currently in vacation");
+ .orElseGet(() -> context.getRecipient() + " is currently in vacation");
}
private Multipart generateNotificationContent() throws MessagingException {
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keyword.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keyword.java
index d3296c2..8251850 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keyword.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keyword.java
@@ -118,7 +118,7 @@ public class Keyword {
public Flags asFlags() {
return asSystemFlag()
.map(Flags::new)
- .orElse(new Flags(flagName));
+ .orElseGet(() -> new Flags(flagName));
}
@Override
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/FilterToCriteria.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/FilterToCriteria.java
index b3e4f32..c2adc96 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/FilterToCriteria.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/FilterToCriteria.java
@@ -99,7 +99,7 @@ public class FilterToCriteria {
private Criterion getFlagCriterion(Keyword keyword, boolean isSet) {
return keyword.asSystemFlag()
.map(flag -> SearchQuery.flagSet(flag, isSet))
- .orElse(SearchQuery.flagSet(keyword.getFlagName(), isSet));
+ .orElseGet(() -> SearchQuery.flagSet(keyword.getFlagName(), isSet));
}
private Criterion convertOperator(FilterOperator filter) {
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ContentMatcher.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ContentMatcher.java
index 2db7254..fcde255 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ContentMatcher.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ContentMatcher.java
@@ -82,7 +82,7 @@ public interface ContentMatcher {
AddressHeader addressHeaderToMatch = HeaderExtractor.toAddressContents(new String[] {valueToMatch})
.map(AddressHeader::new)
.findAny()
- .orElse(new AddressHeader(valueToMatch));
+ .orElseGet(() -> new AddressHeader(valueToMatch));
return contents.map(ContentMatcher::asAddressHeader)
.anyMatch(addressHeaderToMatch::matchesIgnoreCase);
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
index fe2c26a..b27242f 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
@@ -76,6 +76,6 @@ public class IMAPMDCContext {
return selectedMailbox
.map(value -> MDCBuilder.create()
.addContext("selectedMailbox", value.getMailboxId().serialize()))
- .orElse(MDCBuilder.create());
+ .orElseGet(MDCBuilder::create);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org