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