Author: btellier
Date: Mon Jun 29 08:41:10 2015
New Revision: 1688142
URL: http://svn.apache.org/r1688142
Log:
MAILBOX-155 Replace NodeProvider by a ClientProvider - patch contributed by
Antoine Duprat
Added:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProvider.java
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProviderImpl.java
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/TestingClientProvider.java
Removed:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeProvider.java
Modified:
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/IndexCreationFactory.java
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeMappingFactory.java
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
james/mailbox/trunk/elasticsearch/src/main/resources/META-INF/spring/mailbox-elasticsearch.xml
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexerTest.java
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
Modified:
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
(original)
+++
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
Mon Jun 29 08:41:10 2015
@@ -30,6 +30,7 @@
<constructor-arg index="0" ref="cassandra-sessionMapperFactory"/>
<constructor-arg index="1" ref="authenticator"/>
<constructor-arg index="2" ref="cassandra-locker"/>
+ <property name="messageSearchIndex" ref="indexer"/>
</bean>
<bean id ="cassandra-subscriptionManager"
class="org.apache.james.mailbox.cassandra.CassandraSubscriptionManager">
Added:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProvider.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProvider.java?rev=1688142&view=auto
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProvider.java
(added)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProvider.java
Mon Jun 29 08:41:10 2015
@@ -0,0 +1,26 @@
+/****************************************************************
+ * 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.mailbox.elasticsearch;
+
+import org.elasticsearch.client.Client;
+
+public interface ClientProvider {
+
+ Client get();
+}
Added:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProviderImpl.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProviderImpl.java?rev=1688142&view=auto
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProviderImpl.java
(added)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ClientProviderImpl.java
Mon Jun 29 08:41:10 2015
@@ -0,0 +1,40 @@
+/****************************************************************
+ * 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.mailbox.elasticsearch;
+
+import org.elasticsearch.client.Client;
+import org.elasticsearch.client.transport.TransportClient;
+import org.elasticsearch.common.transport.InetSocketTransportAddress;
+
+public class ClientProviderImpl implements ClientProvider {
+
+ private final String host;
+ private final int port;
+
+ public ClientProviderImpl(String host, int port) {
+ this.host = host;
+ this.port = port;
+ }
+
+ @SuppressWarnings("resource")
+ public Client get() {
+ return new TransportClient()
+ .addTransportAddress(new InetSocketTransportAddress(host, port));
+ }
+}
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexer.java
Mon Jun 29 08:41:10 2015
@@ -24,7 +24,6 @@ import org.elasticsearch.action.index.In
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.node.Node;
import com.google.common.base.Preconditions;
@@ -33,15 +32,15 @@ public class ElasticSearchIndexer {
public static final String MAILBOX_INDEX = "mailbox";
public static final String MESSAGE_TYPE = "message";
- private final Node node;
+ private final ClientProvider clientProvider;
- public ElasticSearchIndexer(Node node) {
- this.node = node;
+ public ElasticSearchIndexer(ClientProvider clientProvider) {
+ this.clientProvider = clientProvider;
}
public IndexResponse indexMessage(String id, String content) {
checkArgument(content);
- try (Client client = node.client()) {
+ try (Client client = clientProvider.get()) {
return client.prepareIndex(MAILBOX_INDEX, MESSAGE_TYPE, id)
.setSource(content)
.get();
@@ -50,7 +49,7 @@ public class ElasticSearchIndexer {
public UpdateResponse updateMessage(String id, String docUpdated) {
checkArgument(docUpdated);
- try (Client client = node.client()) {
+ try (Client client = clientProvider.get()) {
return client.prepareUpdate(MAILBOX_INDEX, MESSAGE_TYPE, id)
.setDoc(docUpdated)
.get();
@@ -58,14 +57,14 @@ public class ElasticSearchIndexer {
}
public DeleteResponse deleteMessage(String id) {
- try (Client client = node.client()) {
+ try (Client client = clientProvider.get()) {
return client.prepareDelete(MAILBOX_INDEX, MESSAGE_TYPE, id)
.get();
}
}
public DeleteByQueryResponse deleteAllWithIdStarting(String idStart) {
- try (Client client = node.client()) {
+ try (Client client = clientProvider.get()) {
return client.prepareDeleteByQuery(MAILBOX_INDEX)
.setTypes(MESSAGE_TYPE)
.setQuery(QueryBuilders.prefixQuery("_id", idStart))
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/IndexCreationFactory.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/IndexCreationFactory.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/IndexCreationFactory.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/IndexCreationFactory.java
Mon Jun 29 08:41:10 2015
@@ -19,43 +19,43 @@
package org.apache.james.mailbox.elasticsearch;
+import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
+
+import java.io.IOException;
+
import org.elasticsearch.client.Client;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.indices.IndexAlreadyExistsException;
-import org.elasticsearch.node.Node;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
import java.util.Optional;
-import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
-
public class IndexCreationFactory {
private static Logger LOGGER =
LoggerFactory.getLogger(IndexCreationFactory.class);
- public static Node createIndex(Node node, int nbShards, int nbReplica) {
+ public static ClientProvider createIndex(ClientProvider clientProvider,
int nbShards, int nbReplica) {
try {
- return createIndex(node, normalSettings(nbShards, nbReplica));
+ return createIndex(clientProvider, normalSettings(nbShards,
nbReplica));
} catch (IOException e) {
LOGGER.error("Error while creating index : ", e);
- return node;
+ return clientProvider;
}
}
- public static Node createIndex(Node node) {
+ public static ClientProvider createIndex(ClientProvider clientProvider) {
try {
- return createIndex(node, settingForInMemory());
+ return createIndex(clientProvider, settingForInMemory());
} catch (IOException e) {
LOGGER.error("Error while creating index : ", e);
- return node;
+ return clientProvider;
}
}
- private static Node createIndex(Node node, XContentBuilder settings) {
+ private static ClientProvider createIndex(ClientProvider clientProvider,
XContentBuilder settings) {
try {
- try (Client client = node.client()) {
+ try (Client client = clientProvider.get()) {
client.admin()
.indices()
.prepareCreate(ElasticSearchIndexer.MAILBOX_INDEX)
@@ -66,7 +66,7 @@ public class IndexCreationFactory {
} catch (IndexAlreadyExistsException exception) {
LOGGER.info("Index [" + ElasticSearchIndexer.MAILBOX_INDEX + "]
already exist");
}
- return node;
+ return clientProvider;
}
public static XContentBuilder settingForInMemory() throws IOException {
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeMappingFactory.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeMappingFactory.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeMappingFactory.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/NodeMappingFactory.java
Mon Jun 29 08:41:10 2015
@@ -26,7 +26,6 @@ import java.io.IOException;
import org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.xcontent.XContentBuilder;
-import org.elasticsearch.node.Node;
import com.google.common.base.Throwables;
@@ -43,8 +42,8 @@ public class NodeMappingFactory {
public static final String FORMAT = "format";
public static final String NESTED = "nested";
- public static Node applyMapping(Node node) {
- try (Client client = node.client()) {
+ public static ClientProvider applyMapping(ClientProvider clientProvider) {
+ try (Client client = clientProvider.get()) {
client.admin()
.indices()
.preparePutMapping(ElasticSearchIndexer.MAILBOX_INDEX)
@@ -53,7 +52,7 @@ public class NodeMappingFactory {
.execute()
.actionGet();
}
- return node;
+ return clientProvider;
}
private static XContentBuilder getMappingContent() {
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
Mon Jun 29 08:41:10 2015
@@ -23,6 +23,7 @@ import java.util.Iterator;
import java.util.Optional;
import java.util.stream.StreamSupport;
+import org.apache.james.mailbox.elasticsearch.ClientProvider;
import org.apache.james.mailbox.elasticsearch.ElasticSearchIndexer;
import org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants;
import org.apache.james.mailbox.elasticsearch.query.QueryConverter;
@@ -35,7 +36,6 @@ import org.elasticsearch.action.search.S
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.unit.TimeValue;
-import org.elasticsearch.node.Node;
import org.elasticsearch.search.SearchHit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,18 +44,19 @@ public class ElasticSearchSearcher<Id ex
private static final Logger LOGGER =
LoggerFactory.getLogger(ElasticSearchSearcher.class);
- private final Node node;
+ private final ClientProvider clientProvider;
private final QueryConverter queryConverter;
- public ElasticSearchSearcher(Node node, QueryConverter queryConverter) {
- this.node = node;
+ public ElasticSearchSearcher(ClientProvider clientProvider, QueryConverter
queryConverter) {
+ this.clientProvider = clientProvider;
this.queryConverter = queryConverter;
}
public Iterator<Long> search(Mailbox<Id> mailbox, SearchQuery searchQuery)
throws MailboxException {
- try (Client client = node.client()) {
- return transformResponseToUidIterator(
- getSearchRequestBuilder(client, mailbox, searchQuery).get());
+ try (Client client = clientProvider.get()) {
+ return
transformResponseToUidIterator(getSearchRequestBuilder(client, mailbox,
searchQuery)
+ .get()
+ );
}
}
Modified:
james/mailbox/trunk/elasticsearch/src/main/resources/META-INF/spring/mailbox-elasticsearch.xml
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/resources/META-INF/spring/mailbox-elasticsearch.xml?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/resources/META-INF/spring/mailbox-elasticsearch.xml
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/resources/META-INF/spring/mailbox-elasticsearch.xml
Mon Jun 29 08:41:10 2015
@@ -29,36 +29,34 @@
</bean>
<bean id="elasticsearch-listener"
class="org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex">
- <constructor-arg index="0" ref="elasticsearch-node"/>
+ <constructor-arg index="0" ref="messageMapperFactory"/>
<constructor-arg index="1" ref="elasticsearch-indexer"/>
<constructor-arg index="2" ref="elasticsearch-searcher"/>
<constructor-arg index="3" ref="elasticsearch-json"/>
</bean>
<bean id="elasticsearch-indexer"
class="org.apache.james.mailbox.elasticsearch.ElasticSearchIndexer">
- <constructor-arg index="0" ref="elasticsearch-node"/>
+ <constructor-arg index="0" ref="elasticsearch-clientprovider-2"/>
</bean>
<bean id="elasticsearch-json"
class="org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson"/>
<bean id="elasticsearch-searcher"
class="org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher">
- <constructor-arg index="0" ref="elasticsearch-node"/>
+ <constructor-arg index="0" ref="elasticsearch-clientprovider-2"/>
<constructor-arg index="1" ref="query-converter"/>
</bean>
- <bean id="elasticsearch-node-no-index"
class="org.apache.james.mailbox.cassandra.elasticsearch.NodeProvider"
factory-method="createNodeForClusterName">
- <constructor-arg index="0" ref="${elasticsearch.clusterName}"/>
- <constructor-arg index="1" ref="${elasticsearch.masterHost}"/>
+ <bean id="elasticsearch-clientprovider-0"
class="org.apache.james.mailbox.elasticsearch.ClientProviderImpl">
+ <constructor-arg index="0" value="${elasticsearch.masterHost}"/>
+ <constructor-arg index="1" value="${elasticsearch.port}"/>
</bean>
- <bean id="elasticsearch-node-index"
class="org.apache.james.mailbox.elasticsearch"
factory-method="createNodeForClusterName">
- <constructor-arg index="0" ref="elasticsearch-node-no-index"/>
- <constructor-arg index="1" value="${elasticsearch.shards}"/>
- <constructor-arg index="2" value="${elasticsearch.replicas}"/>
+ <bean id="elasticsearch-clientprovider-2"
class="org.apache.james.mailbox.elasticsearch.NodeMappingFactory"
factory-method="applyMapping">
+ <constructor-arg index="0" ref="elasticsearch-clientprovider-1"/>
</bean>
- <bean id="elasticsearch-node"
class="org.apache.james.mailbox.elasticsearch.NodeProvider"
factory-method="createNodeForClusterName">
- <constructor-arg index="0" ref="elasticsearch-node-index"/>
+ <bean id="elasticsearch-clientprovider-1"
class="org.apache.james.mailbox.elasticsearch.IndexCreationFactory"
factory-method="createIndex">
+ <constructor-arg index="0" ref="elasticsearch-clientprovider-0"/>
</bean>
<bean id="query-converter"
class="org.apache.james.mailbox.elasticsearch.query.QueryConverter">
Modified:
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexerTest.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexerTest.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexerTest.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIndexerTest.java
Mon Jun 29 08:41:10 2015
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Asser
import java.io.IOException;
+import org.apache.james.mailbox.elasticsearch.utils.TestingClientProvider;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.index.query.QueryBuilders;
@@ -33,6 +34,7 @@ import org.junit.Test;
import org.junit.rules.RuleChain;
import org.junit.rules.TemporaryFolder;
+
public class ElasticSearchIndexerTest {
private TemporaryFolder temporaryFolder = new TemporaryFolder();
@@ -47,7 +49,7 @@ public class ElasticSearchIndexerTest {
@Before
public void setup() throws IOException {
node = embeddedElasticSearch.getNode();
- testee = new ElasticSearchIndexer(node);
+ testee = new ElasticSearchIndexer(new TestingClientProvider(node));
}
@Test
Modified:
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java?rev=1688142&r1=1688141&r2=1688142&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
Mon Jun 29 08:41:10 2015
@@ -33,6 +33,7 @@ import org.apache.james.mailbox.elastics
import org.apache.james.mailbox.elasticsearch.query.CriterionConverter;
import org.apache.james.mailbox.elasticsearch.query.QueryConverter;
import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher;
+import org.apache.james.mailbox.elasticsearch.utils.TestingClientProvider;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
@@ -44,7 +45,6 @@ import org.apache.james.mailbox.store.Mo
import org.apache.james.mailbox.store.StoreMailboxManager;
import org.apache.james.mailbox.store.StoreMessageManager;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.elasticsearch.node.Node;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
@@ -56,6 +56,7 @@ import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
+
public class ElasticSearchIntegrationTest {
private static final Logger LOGGER =
LoggerFactory.getLogger(ElasticSearchIntegrationTest.class);
@@ -153,15 +154,13 @@ public class ElasticSearchIntegrationTes
}
private void initializeMailboxManager() throws Exception {
- Node node = NodeMappingFactory.applyMapping(
- IndexCreationFactory.createIndex(
- embeddedElasticSearch.getNode()
- )
+ ClientProvider clientProvider = NodeMappingFactory.applyMapping(
+ IndexCreationFactory.createIndex(new
TestingClientProvider(embeddedElasticSearch.getNode()))
);
MailboxSessionMapperFactory<InMemoryId> mapperFactory = new
InMemoryMailboxSessionMapperFactory();
elasticSearchListeningMessageSearchIndex = new
ElasticSearchListeningMessageSearchIndex<InMemoryId>(mapperFactory,
- new ElasticSearchIndexer(node),
- new ElasticSearchSearcher<InMemoryId>(node, new QueryConverter(new
CriterionConverter())),
+ new ElasticSearchIndexer(clientProvider),
+ new ElasticSearchSearcher<InMemoryId>(clientProvider, new
QueryConverter(new CriterionConverter())),
new MessageToElasticSearchJson());
storeMailboxManager = new StoreMailboxManager<>(
mapperFactory,
Added:
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/TestingClientProvider.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/TestingClientProvider.java?rev=1688142&view=auto
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/TestingClientProvider.java
(added)
+++
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/utils/TestingClientProvider.java
Mon Jun 29 08:41:10 2015
@@ -0,0 +1,37 @@
+/****************************************************************
+ * 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.mailbox.elasticsearch.utils;
+
+import org.apache.james.mailbox.elasticsearch.ClientProvider;
+import org.elasticsearch.client.Client;
+import org.elasticsearch.node.Node;
+
+public class TestingClientProvider implements ClientProvider {
+
+ private final Node node;
+
+ public TestingClientProvider(Node node) {
+ this.node = node;
+ }
+
+ @Override
+ public Client get() {
+ return node.client();
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]