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 2017/02/03 09:44:40 UTC
[12/12] james-project git commit: JAMES-1901 Strong typing for Index
and Types
JAMES-1901 Strong typing for Index and Types
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b54f9604
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b54f9604
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b54f9604
Branch: refs/heads/master
Commit: b54f9604d69be4fb268e9c98e25fd115f7cd0112
Parents: 263976a
Author: Benoit Tellier <bt...@linagora.com>
Authored: Thu Feb 2 11:51:55 2017 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Feb 3 16:43:43 2017 +0700
----------------------------------------------------------------------
.../backends/es/DeleteByQueryPerformer.java | 16 ++++-----
.../james/backends/es/ElasticSearchIndexer.java | 20 +++++++----
.../james/backends/es/IndexCreationFactory.java | 8 ++---
.../org/apache/james/backends/es/IndexName.java | 32 +++++++++++++++++
.../james/backends/es/NodeMappingFactory.java | 6 ++--
.../org/apache/james/backends/es/TypeName.java | 32 +++++++++++++++++
.../backends/es/ElasticSearchIndexerTest.java | 32 ++++++++---------
.../backends/es/EmbeddedElasticSearch.java | 10 +++---
.../backends/es/search/ScrollIterableTest.java | 38 ++++++++++----------
.../MailboxElasticsearchConstants.java | 7 ++--
.../elasticsearch/MailboxMappingFactory.java | 2 +-
.../search/ElasticSearchSearcher.java | 4 +--
.../mailbox/ElasticSearchMailboxModule.java | 4 +++
13 files changed, 146 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/DeleteByQueryPerformer.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/DeleteByQueryPerformer.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/DeleteByQueryPerformer.java
index 065fe19..6a44754 100644
--- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/DeleteByQueryPerformer.java
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/DeleteByQueryPerformer.java
@@ -43,16 +43,16 @@ public class DeleteByQueryPerformer {
private final Client client;
private final ExecutorService executor;
private final int batchSize;
- private final String indexName;
- private final String typeName;
+ private final IndexName indexName;
+ private final TypeName typeName;
@Inject
- public DeleteByQueryPerformer(Client client, @Named("AsyncExecutor") ExecutorService executor, String indexName, String typeName) {
+ public DeleteByQueryPerformer(Client client, @Named("AsyncExecutor") ExecutorService executor, IndexName indexName, TypeName typeName) {
this(client, executor, DEFAULT_BATCH_SIZE, indexName, typeName);
}
@VisibleForTesting
- public DeleteByQueryPerformer(Client client, @Named("AsyncExecutor") ExecutorService executor, int batchSize, String indexName, String typeName) {
+ public DeleteByQueryPerformer(Client client, @Named("AsyncExecutor") ExecutorService executor, int batchSize, IndexName indexName, TypeName typeName) {
this.client = client;
this.executor = executor;
this.batchSize = batchSize;
@@ -66,8 +66,8 @@ public class DeleteByQueryPerformer {
protected void doDeleteByQuery(QueryBuilder queryBuilder) {
new ScrollIterable(client,
- client.prepareSearch(indexName)
- .setTypes(typeName)
+ client.prepareSearch(indexName.getValue())
+ .setTypes(typeName.getValue())
.setScroll(TIMEOUT)
.setNoFields()
.setQuery(queryBuilder)
@@ -80,8 +80,8 @@ public class DeleteByQueryPerformer {
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
for (SearchHit hit : searchResponse.getHits()) {
bulkRequestBuilder.add(client.prepareDelete()
- .setIndex(indexName)
- .setType(typeName)
+ .setIndex(indexName.getValue())
+ .setType(typeName.getValue())
.setId(hit.getId()));
}
return bulkRequestBuilder.execute();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/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 5cbf1f4..f1df1d7 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
@@ -59,11 +59,11 @@ public class ElasticSearchIndexer {
private final Client client;
private final DeleteByQueryPerformer deleteByQueryPerformer;
- private final String indexName;
- private final String typeName;
+ private final IndexName indexName;
+ private final TypeName typeName;
@Inject
- public ElasticSearchIndexer(Client client, DeleteByQueryPerformer deleteByQueryPerformer, String indexName, String typeName) {
+ public ElasticSearchIndexer(Client client, DeleteByQueryPerformer deleteByQueryPerformer, IndexName indexName, TypeName typeName) {
this.client = client;
this.deleteByQueryPerformer = deleteByQueryPerformer;
this.indexName = indexName;
@@ -73,7 +73,7 @@ public class ElasticSearchIndexer {
public IndexResponse indexMessage(String id, String content) {
checkArgument(content);
LOGGER.debug(String.format("Indexing %s: %s", id, content));
- return client.prepareIndex(indexName, typeName, id)
+ return client.prepareIndex(indexName.getValue(), typeName.getValue(), id)
.setSource(content)
.get();
}
@@ -81,14 +81,22 @@ public class ElasticSearchIndexer {
public BulkResponse updateMessages(List<UpdatedRepresentation> updatedDocumentParts) {
Preconditions.checkNotNull(updatedDocumentParts);
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
- updatedDocumentParts.forEach(updatedDocumentPart -> bulkRequestBuilder.add(client.prepareUpdate(indexName, typeName, updatedDocumentPart.getId())
+ updatedDocumentParts.forEach(updatedDocumentPart -> bulkRequestBuilder.add(
+ client.prepareUpdate(
+ indexName.getValue(),
+ typeName.getValue(),
+ updatedDocumentPart.getId())
.setDoc(updatedDocumentPart.getUpdatedDocumentPart())));
return bulkRequestBuilder.get();
}
public BulkResponse deleteMessages(List<String> ids) {
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
- ids.forEach(id -> bulkRequestBuilder.add(client.prepareDelete(indexName, typeName, id)));
+ ids.forEach(id -> bulkRequestBuilder.add(
+ client.prepareDelete(
+ indexName.getValue(),
+ typeName.getValue(),
+ id)));
return bulkRequestBuilder.get();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexCreationFactory.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexCreationFactory.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexCreationFactory.java
index cab6021..eb6771a 100644
--- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexCreationFactory.java
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexCreationFactory.java
@@ -36,7 +36,7 @@ public class IndexCreationFactory {
private static final int DEFAULT_NB_REPLICA = 0;
public static final String CASE_INSENSITIVE = "case_insensitive";
- public static Client createIndex(Client client, String name, int nbShards, int nbReplica) {
+ public static Client createIndex(Client client, IndexName name, int nbShards, int nbReplica) {
try {
return createIndex(client, name, generateSetting(nbShards, nbReplica));
} catch (IOException e) {
@@ -45,15 +45,15 @@ public class IndexCreationFactory {
}
}
- public static Client createIndex(Client client, String name) {
+ public static Client createIndex(Client client, IndexName name) {
return createIndex(client, name, DEFAULT_NB_SHARDS, DEFAULT_NB_REPLICA);
}
- private static Client createIndex(Client client, String name, XContentBuilder settings) {
+ private static Client createIndex(Client client, IndexName name, XContentBuilder settings) {
try {
client.admin()
.indices()
- .prepareCreate(name)
+ .prepareCreate(name.getValue())
.setSettings(settings)
.execute()
.actionGet();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexName.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexName.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexName.java
new file mode 100644
index 0000000..8936bb2
--- /dev/null
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/IndexName.java
@@ -0,0 +1,32 @@
+/****************************************************************
+ * 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;
+
+public class IndexName {
+ private final String value;
+
+ public IndexName(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/NodeMappingFactory.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/NodeMappingFactory.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/NodeMappingFactory.java
index 876c741..f60bcd2 100644
--- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/NodeMappingFactory.java
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/NodeMappingFactory.java
@@ -41,11 +41,11 @@ public class NodeMappingFactory {
public static final String IGNORE_ABOVE = "ignore_above";
public static final int LUCENE_LIMIT = 32766;
- public static Client applyMapping(Client client, String indexName, String typeName, XContentBuilder mappingsSources) {
+ public static Client applyMapping(Client client, IndexName indexName, TypeName typeName, XContentBuilder mappingsSources) {
client.admin()
.indices()
- .preparePutMapping(indexName)
- .setType(typeName)
+ .preparePutMapping(indexName.getValue())
+ .setType(typeName.getValue())
.setSource(mappingsSources)
.execute()
.actionGet();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/TypeName.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/TypeName.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/TypeName.java
new file mode 100644
index 0000000..e6c638b
--- /dev/null
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/TypeName.java
@@ -0,0 +1,32 @@
+/****************************************************************
+ * 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;
+
+public class TypeName {
+ private final String value;
+
+ public TypeName(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/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 cb42956..60ce997 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
@@ -43,8 +43,8 @@ public class ElasticSearchIndexerTest {
private static final int MINIMUM_BATCH_SIZE = 1;
private static final String CONTENT = "content";
- private static final String INDEX_NAME = "index_name";
- private static final String TYPE_NAME = "type_name";
+ private static final IndexName INDEX_NAME = new IndexName("index_name");
+ private static final TypeName TYPE_NAME = new TypeName("type_name");
private TemporaryFolder temporaryFolder = new TemporaryFolder();
private EmbeddedElasticSearch embeddedElasticSearch= new EmbeddedElasticSearch(temporaryFolder, INDEX_NAME);
@@ -80,8 +80,8 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchQuery("message", "trying"))
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
@@ -105,16 +105,16 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchQuery("message", "mastering"))
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
}
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchQuery("field", "unchanged"))
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
@@ -153,8 +153,8 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchAllQuery())
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(0);
@@ -183,8 +183,8 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchAllQuery())
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
@@ -203,8 +203,8 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchAllQuery())
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(0);
@@ -233,8 +233,8 @@ public class ElasticSearchIndexerTest {
embeddedElasticSearch.awaitForElasticSearch();
try (Client client = node.client()) {
- SearchResponse searchResponse = client.prepareSearch(INDEX_NAME)
- .setTypes(TYPE_NAME)
+ SearchResponse searchResponse = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setQuery(QueryBuilders.matchAllQuery())
.get();
assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/EmbeddedElasticSearch.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/EmbeddedElasticSearch.java b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/EmbeddedElasticSearch.java
index 2902cde..5f37189 100644
--- a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/EmbeddedElasticSearch.java
+++ b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/EmbeddedElasticSearch.java
@@ -45,7 +45,7 @@ public class EmbeddedElasticSearch extends ExternalResource {
private static final Logger LOGGER = LoggerFactory.getLogger(EmbeddedElasticSearch.class);
private final Supplier<Path> folder;
- private final String indexName;
+ private final IndexName indexName;
private Node node;
private static Path createTempDir(TemporaryFolder temporaryFolder) {
@@ -56,15 +56,15 @@ public class EmbeddedElasticSearch extends ExternalResource {
}
}
- public EmbeddedElasticSearch(TemporaryFolder temporaryFolder, String indexName) {
+ public EmbeddedElasticSearch(TemporaryFolder temporaryFolder, IndexName indexName) {
this(() -> EmbeddedElasticSearch.createTempDir(temporaryFolder), indexName);
}
- public EmbeddedElasticSearch(Path folder, String indexName) {
+ public EmbeddedElasticSearch(Path folder, IndexName indexName) {
this(() -> folder, indexName);
}
- private EmbeddedElasticSearch(Supplier<Path> folder, String indexName) {
+ private EmbeddedElasticSearch(Supplier<Path> folder, IndexName indexName) {
this.folder = folder;
this.indexName = indexName;
}
@@ -86,7 +86,7 @@ public class EmbeddedElasticSearch extends ExternalResource {
try (Client client = node.client()) {
client.admin()
.indices()
- .delete(new DeleteIndexRequest(indexName))
+ .delete(new DeleteIndexRequest(indexName.getValue()))
.actionGet();
} catch (Exception e) {
LOGGER.warn("Error while closing ES connection", e);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/search/ScrollIterableTest.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/search/ScrollIterableTest.java b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/search/ScrollIterableTest.java
index 5b53a76..121b8b7 100644
--- a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/search/ScrollIterableTest.java
+++ b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/search/ScrollIterableTest.java
@@ -31,7 +31,9 @@ import java.util.stream.Collectors;
import org.apache.james.backends.es.ClientProvider;
import org.apache.james.backends.es.EmbeddedElasticSearch;
import org.apache.james.backends.es.IndexCreationFactory;
+import org.apache.james.backends.es.IndexName;
import org.apache.james.backends.es.NodeMappingFactory;
+import org.apache.james.backends.es.TypeName;
import org.apache.james.backends.es.utils.TestingClientProvider;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.client.Client;
@@ -49,8 +51,8 @@ public class ScrollIterableTest {
public static final TimeValue TIMEOUT = new TimeValue(6000);
public static final int SIZE = 2;
public static final String MESSAGE = "message";
- public static final String INDEX_NAME = "index";
- public static final String MESSAGES = "messages";
+ public static final IndexName INDEX_NAME = new IndexName("index");
+ public static final TypeName TYPE_NAME = new TypeName("messages");
private TemporaryFolder temporaryFolder = new TemporaryFolder();
private EmbeddedElasticSearch embeddedElasticSearch= new EmbeddedElasticSearch(temporaryFolder, INDEX_NAME);
@@ -65,13 +67,13 @@ public class ScrollIterableTest {
clientProvider = new TestingClientProvider(embeddedElasticSearch.getNode());
IndexCreationFactory.createIndex(clientProvider.get(), INDEX_NAME);
embeddedElasticSearch.awaitForElasticSearch();
- NodeMappingFactory.applyMapping(clientProvider.get(), INDEX_NAME, MESSAGES, getMappingsSources());
+ NodeMappingFactory.applyMapping(clientProvider.get(), INDEX_NAME, TYPE_NAME, getMappingsSources());
}
private XContentBuilder getMappingsSources() throws IOException {
return jsonBuilder()
.startObject()
- .startObject(MESSAGES)
+ .startObject(TYPE_NAME.getValue())
.startObject(NodeMappingFactory.PROPERTIES)
.startObject(MESSAGE)
.field(NodeMappingFactory.TYPE, NodeMappingFactory.STRING)
@@ -84,8 +86,8 @@ public class ScrollIterableTest {
@Test
public void scrollIterableShouldWorkWhenEmpty() {
try (Client client = clientProvider.get()) {
- SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
- .setTypes(MESSAGES)
+ SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setScroll(TIMEOUT)
.setQuery(matchAllQuery())
.setSize(SIZE);
@@ -97,14 +99,14 @@ public class ScrollIterableTest {
public void scrollIterableShouldWorkWhenOneElement() {
try (Client client = clientProvider.get()) {
String id = "1";
- client.prepareIndex(INDEX_NAME, MESSAGES, id)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id)
.setSource(MESSAGE, "Sample message")
.execute();
embeddedElasticSearch.awaitForElasticSearch();
- SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
- .setTypes(MESSAGES)
+ SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setScroll(TIMEOUT)
.setQuery(matchAllQuery())
.setSize(SIZE);
@@ -116,19 +118,19 @@ public class ScrollIterableTest {
public void scrollIterableShouldWorkWhenSizeElement() {
try (Client client = clientProvider.get()) {
String id1 = "1";
- client.prepareIndex(INDEX_NAME, MESSAGES, id1)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id1)
.setSource(MESSAGE, "Sample message")
.execute();
String id2 = "2";
- client.prepareIndex(INDEX_NAME, MESSAGES, id2)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id2)
.setSource(MESSAGE, "Sample message")
.execute();
embeddedElasticSearch.awaitForElasticSearch();
- SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
- .setTypes(MESSAGES)
+ SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setScroll(TIMEOUT)
.setQuery(matchAllQuery())
.setSize(SIZE);
@@ -140,24 +142,24 @@ public class ScrollIterableTest {
public void scrollIterableShouldWorkWhenMoreThanSizeElement() {
try (Client client = clientProvider.get()) {
String id1 = "1";
- client.prepareIndex(INDEX_NAME, MESSAGES, id1)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id1)
.setSource(MESSAGE, "Sample message")
.execute();
String id2 = "2";
- client.prepareIndex(INDEX_NAME, MESSAGES, id2)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id2)
.setSource(MESSAGE, "Sample message")
.execute();
String id3 = "3";
- client.prepareIndex(INDEX_NAME, MESSAGES, id3)
+ client.prepareIndex(INDEX_NAME.getValue(), TYPE_NAME.getValue(), id3)
.setSource(MESSAGE, "Sample message")
.execute();
embeddedElasticSearch.awaitForElasticSearch();
- SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
- .setTypes(MESSAGES)
+ SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME.getValue())
+ .setTypes(TYPE_NAME.getValue())
.setScroll(TIMEOUT)
.setQuery(matchAllQuery())
.setSize(SIZE);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxElasticsearchConstants.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxElasticsearchConstants.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxElasticsearchConstants.java
index 4977950..4cf9bd1 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxElasticsearchConstants.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxElasticsearchConstants.java
@@ -19,7 +19,10 @@
package org.apache.james.mailbox.elasticsearch;
+import org.apache.james.backends.es.IndexName;
+import org.apache.james.backends.es.TypeName;
+
public interface MailboxElasticsearchConstants {
- String MAILBOX_INDEX = "mailbox";
- String MESSAGE_TYPE = "message";
+ IndexName MAILBOX_INDEX = new IndexName("mailbox");
+ TypeName MESSAGE_TYPE = new TypeName("message");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
index 1cfce9b..ad2d16b 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
@@ -38,7 +38,7 @@ public class MailboxMappingFactory {
return jsonBuilder()
.startObject()
- .startObject(MailboxElasticsearchConstants.MESSAGE_TYPE)
+ .startObject(MailboxElasticsearchConstants.MESSAGE_TYPE.getValue())
.startObject(NodeMappingFactory.PROPERTIES)
.startObject(JsonMessageConstants.MESSAGE_ID)
.field(NodeMappingFactory.TYPE, NodeMappingFactory.STRING)
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
index d8339f7..1599559 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
@@ -83,8 +83,8 @@ public class ElasticSearchSearcher {
return query.getSearchQuery().getSorts()
.stream()
.reduce(
- client.prepareSearch(MailboxElasticsearchConstants.MAILBOX_INDEX)
- .setTypes(MailboxElasticsearchConstants.MESSAGE_TYPE)
+ client.prepareSearch(MailboxElasticsearchConstants.MAILBOX_INDEX.getValue())
+ .setTypes(MailboxElasticsearchConstants.MESSAGE_TYPE.getValue())
.setScroll(TIMEOUT)
.addFields(JsonMessageConstants.UID, JsonMessageConstants.MAILBOX_ID, JsonMessageConstants.MESSAGE_ID)
.setQuery(queryConverter.from(users, query))
http://git-wip-us.apache.org/repos/asf/james-project/blob/b54f9604/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
index 8d79af2..bbea50a 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
@@ -29,7 +29,9 @@ import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.james.backends.es.ClientProvider;
import org.apache.james.backends.es.ClientProviderImpl;
import org.apache.james.backends.es.IndexCreationFactory;
+import org.apache.james.backends.es.IndexName;
import org.apache.james.backends.es.NodeMappingFactory;
+import org.apache.james.backends.es.TypeName;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.mailbox.elasticsearch.IndexAttachments;
import org.apache.james.mailbox.elasticsearch.MailboxElasticsearchConstants;
@@ -58,6 +60,8 @@ public class ElasticSearchMailboxModule extends AbstractModule {
@Override
protected void configure() {
+ bind(IndexName.class).toInstance(MailboxElasticsearchConstants.MAILBOX_INDEX);
+ bind(TypeName.class).toInstance(MailboxElasticsearchConstants.MESSAGE_TYPE);
bind(ElasticSearchListeningMessageSearchIndex.class).in(Scopes.SINGLETON);
bind(MessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
bind(ListeningMessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org