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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to