JAMES-2398 Extract UpdatedRepresentation inner class
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/570d1ea5 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/570d1ea5 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/570d1ea5 Branch: refs/heads/master Commit: 570d1ea5cedd424819fcf6d4ee0d1d544051f642 Parents: 0e1f12b Author: Raphael Ouazana <[email protected]> Authored: Wed May 16 15:20:17 2018 +0200 Committer: Matthieu Baechler <[email protected]> Committed: Mon May 21 11:37:43 2018 +0200 ---------------------------------------------------------------------- .../james/backends/es/ElasticSearchIndexer.java | 46 ------------- .../backends/es/UpdatedRepresentation.java | 69 ++++++++++++++++++++ .../backends/es/ElasticSearchIndexerTest.java | 10 +-- ...lasticSearchListeningMessageSearchIndex.java | 5 +- ...icSearchListeningMessageSearchIndexTest.java | 2 +- 5 files changed, 78 insertions(+), 54 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/570d1ea5/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java ---------------------------------------------------------------------- diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java index 57dbc9e..5b59b20 100644 --- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java +++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java @@ -19,7 +19,6 @@ package org.apache.james.backends.es; import java.util.List; -import java.util.Objects; import java.util.Optional; import javax.inject.Inject; @@ -30,61 +29,16 @@ import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.Client; -import org.elasticsearch.common.Strings; import org.elasticsearch.common.ValidationException; import org.elasticsearch.index.query.QueryBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; public class ElasticSearchIndexer { private static int DEBUG_MAX_LENGTH_CONTENT = 1000; - public static class UpdatedRepresentation { - private final String id; - private final String updatedDocumentPart; - - public UpdatedRepresentation(String id, String updatedDocumentPart) { - Preconditions.checkArgument(!Strings.isNullOrEmpty(id), "Updated id must be specified " + id); - Preconditions.checkArgument(!Strings.isNullOrEmpty(updatedDocumentPart), "Updated document must be specified"); - this.id = id; - this.updatedDocumentPart = updatedDocumentPart; - } - - public String getId() { - return id; - } - - public String getUpdatedDocumentPart() { - return updatedDocumentPart; - } - - @Override - public final boolean equals(Object o) { - if (o instanceof UpdatedRepresentation) { - UpdatedRepresentation other = (UpdatedRepresentation) o; - return Objects.equals(id, other.id) - && Objects.equals(updatedDocumentPart, other.updatedDocumentPart); - } - return false; - } - - @Override - public final int hashCode() { - return Objects.hash(id, updatedDocumentPart); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("id", id) - .add("updatedDocumentPart", updatedDocumentPart) - .toString(); - } - } - private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchIndexer.class); private final Client client; http://git-wip-us.apache.org/repos/asf/james-project/blob/570d1ea5/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/UpdatedRepresentation.java ---------------------------------------------------------------------- diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/UpdatedRepresentation.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/UpdatedRepresentation.java new file mode 100644 index 0000000..92ce8c8 --- /dev/null +++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/UpdatedRepresentation.java @@ -0,0 +1,69 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ +package org.apache.james.backends.es; + +import java.util.Objects; + +import org.elasticsearch.common.Strings; + +import com.google.common.base.MoreObjects; +import com.google.common.base.Preconditions; + +public class UpdatedRepresentation { + private final String id; + private final String updatedDocumentPart; + + public UpdatedRepresentation(String id, String updatedDocumentPart) { + Preconditions.checkArgument(!Strings.isNullOrEmpty(id), "Updated id must be specified " + id); + Preconditions.checkArgument(!Strings.isNullOrEmpty(updatedDocumentPart), "Updated document must be specified"); + this.id = id; + this.updatedDocumentPart = updatedDocumentPart; + } + + public String getId() { + return id; + } + + public String getUpdatedDocumentPart() { + return updatedDocumentPart; + } + + @Override + public final boolean equals(Object o) { + if (o instanceof UpdatedRepresentation) { + UpdatedRepresentation other = (UpdatedRepresentation) o; + return Objects.equals(id, other.id) + && Objects.equals(updatedDocumentPart, other.updatedDocumentPart); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(id, updatedDocumentPart); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("updatedDocumentPart", updatedDocumentPart) + .toString(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/570d1ea5/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java ---------------------------------------------------------------------- diff --git a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java index db53ccd..c2ab50d 100644 --- a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java +++ b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java @@ -105,7 +105,7 @@ public class ElasticSearchIndexerTest { testee.indexMessage(messageId, content); embeddedElasticSearch.awaitForElasticSearch(); - testee.updateMessages(Lists.newArrayList(new ElasticSearchIndexer.UpdatedRepresentation(messageId, "{\"message\": \"mastering out Elasticsearch\"}"))); + testee.updateMessages(Lists.newArrayList(new UpdatedRepresentation(messageId, "{\"message\": \"mastering out Elasticsearch\"}"))); embeddedElasticSearch.awaitForElasticSearch(); try (Client client = node.client()) { @@ -127,22 +127,22 @@ public class ElasticSearchIndexerTest { @Test(expected = IllegalArgumentException.class) public void updateMessageShouldThrowWhenJsonIsNull() throws InterruptedException { - testee.updateMessages(Lists.newArrayList(new ElasticSearchIndexer.UpdatedRepresentation("1", null))); + testee.updateMessages(Lists.newArrayList(new UpdatedRepresentation("1", null))); } @Test(expected = IllegalArgumentException.class) public void updateMessageShouldThrowWhenIdIsNull() throws InterruptedException { - testee.updateMessages(Lists.newArrayList(new ElasticSearchIndexer.UpdatedRepresentation(null, "{\"message\": \"mastering out Elasticsearch\"}"))); + testee.updateMessages(Lists.newArrayList(new UpdatedRepresentation(null, "{\"message\": \"mastering out Elasticsearch\"}"))); } @Test(expected = IllegalArgumentException.class) public void updateMessageShouldThrowWhenJsonIsEmpty() throws InterruptedException { - testee.updateMessages(Lists.newArrayList(new ElasticSearchIndexer.UpdatedRepresentation("1", ""))); + testee.updateMessages(Lists.newArrayList(new UpdatedRepresentation("1", ""))); } @Test(expected = IllegalArgumentException.class) public void updateMessageShouldThrowWhenIdIsEmpty() throws InterruptedException { - testee.updateMessages(Lists.newArrayList(new ElasticSearchIndexer.UpdatedRepresentation("", "{\"message\": \"mastering out Elasticsearch\"}"))); + testee.updateMessages(Lists.newArrayList(new UpdatedRepresentation("", "{\"message\": \"mastering out Elasticsearch\"}"))); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/570d1ea5/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java index eaced67..eda8f7b 100644 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java +++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java @@ -30,6 +30,7 @@ import java.util.stream.Collectors; import javax.inject.Inject; import org.apache.james.backends.es.ElasticSearchIndexer; +import org.apache.james.backends.es.UpdatedRepresentation; import org.apache.james.mailbox.MailboxManager.MessageCapabilities; import org.apache.james.mailbox.MailboxManager.SearchCapabilities; import org.apache.james.mailbox.MailboxSession; @@ -181,9 +182,9 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe } } - private ElasticSearchIndexer.UpdatedRepresentation createUpdatedDocumentPartFromUpdatedFlags(Mailbox mailbox, UpdatedFlags updatedFlags) { + private UpdatedRepresentation createUpdatedDocumentPartFromUpdatedFlags(Mailbox mailbox, UpdatedFlags updatedFlags) { try { - return new ElasticSearchIndexer.UpdatedRepresentation( + return new UpdatedRepresentation( indexIdFor(mailbox, updatedFlags.getUid()), messageToElasticSearchJson.getUpdatedJsonMessagePart( updatedFlags.getNewFlags(), http://git-wip-us.apache.org/repos/asf/james-project/blob/570d1ea5/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java index c8fb778..30e600f 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java @@ -33,7 +33,7 @@ import java.util.Optional; import javax.mail.Flags; import org.apache.james.backends.es.ElasticSearchIndexer; -import org.apache.james.backends.es.ElasticSearchIndexer.UpdatedRepresentation; +import org.apache.james.backends.es.UpdatedRepresentation; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MailboxSession.User; import org.apache.james.mailbox.MessageUid; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
