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 ma...@apache.org on 2018/05/21 09:38:51 UTC

[3/6] james-project git commit: JAMES-2398 Extract UpdatedRepresentation inner class

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 <ra...@linagora.com>
Authored: Wed May 16 15:20:17 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org