Skip to content

Commit 86c2b1d

Browse files
committed
DATAES-6 : Instead of storing data in "fs" it should store "in memory" for unit tests
1 parent db5d9b8 commit 86c2b1d

File tree

19 files changed

+49
-32
lines changed

19 files changed

+49
-32
lines changed

src/main/java/org/springframework/data/elasticsearch/annotations/Document.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@
3535

3636
String indexName();
3737
String type() default "";
38+
String indexStoreType() default "fs";
3839
}

src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import org.elasticsearch.client.Client;
1919
import org.elasticsearch.client.node.NodeClient;
20+
import org.elasticsearch.common.settings.ImmutableSettings;
2021
import org.slf4j.Logger;
2122
import org.slf4j.LoggerFactory;
2223
import org.springframework.beans.factory.DisposableBean;
@@ -36,7 +37,8 @@ public class NodeClientFactoryBean implements FactoryBean<NodeClient>, Initializ
3637

3738
private static final Logger logger = LoggerFactory.getLogger(NodeClientFactoryBean.class);
3839
private boolean local;
39-
private boolean purgeDataOnShutdown;
40+
private boolean enableHttp;
41+
private String clusterName;
4042
private NodeClient nodeClient;
4143

4244
NodeClientFactoryBean() {
@@ -63,15 +65,23 @@ public boolean isSingleton() {
6365

6466
@Override
6567
public void afterPropertiesSet() throws Exception {
66-
nodeClient = (NodeClient) nodeBuilder().local(this.local).data(!this.purgeDataOnShutdown).node().client();
68+
ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder()
69+
.put("http.enabled", String.valueOf(this.enableHttp));
70+
71+
nodeClient = (NodeClient) nodeBuilder().settings(settings)
72+
.clusterName(this.clusterName).local(this.local).node().client();
6773
}
6874

6975
public void setLocal(boolean local) {
7076
this.local = local;
7177
}
7278

73-
public void setPurgeDataOnShutdown(boolean purgeDataOnShutdown) {
74-
this.purgeDataOnShutdown = purgeDataOnShutdown;
79+
public void setEnableHttp(boolean enableHttp) {
80+
this.enableHttp = enableHttp;
81+
}
82+
83+
public void setClusterName(String clusterName) {
84+
this.clusterName = clusterName;
7585
}
7686

7787
@Override

src/main/java/org/springframework/data/elasticsearch/config/NodeClientBeanDefinitionParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ protected AbstractBeanDefinition parseInternal(Element element, ParserContext pa
4141

4242
private void setLocalSettings(Element element, BeanDefinitionBuilder builder) {
4343
builder.addPropertyValue("local", Boolean.valueOf(element.getAttribute("local")));
44-
builder.addPropertyValue("purgeDataOnShutdown", Boolean.valueOf(element.getAttribute("purge-data-on-shutdown")));
44+
builder.addPropertyValue("clusterName", element.getAttribute("cluster-name"));
45+
builder.addPropertyValue("enableHttp",Boolean.valueOf(element.getAttribute("http-enabled")));
4546
}
4647

4748

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public ElasticsearchTemplate(Client client, ElasticsearchConverter elasticsearch
9696
@Override
9797
public <T> boolean createIndex(Class<T> clazz) {
9898
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
99-
return createIndexIfNotCreated(persistentEntity.getIndexName());
99+
return createIndexIfNotCreated(clazz);
100100
}
101101

102102
@Override
@@ -369,8 +369,8 @@ private SearchResponse doSearch(SearchRequestBuilder searchRequest, QueryBuilder
369369
return searchRequest.setQuery(query).execute().actionGet();
370370
}
371371

372-
private boolean createIndexIfNotCreated(String indexName) {
373-
return indexExists(indexName) || createIndex(indexName);
372+
private <T> boolean createIndexIfNotCreated(Class<T> clazz) {
373+
return indexExists(getPersistentEntityFor(clazz).getIndexName()) || createIndexWithSettings(clazz);
374374
}
375375

376376
private boolean indexExists(String indexName) {
@@ -379,9 +379,12 @@ private boolean indexExists(String indexName) {
379379
.exists(indicesExistsRequest(indexName)).actionGet().exists();
380380
}
381381

382-
private boolean createIndex(String indexName) {
383-
return client.admin().indices().create(Requests.createIndexRequest(indexName).
384-
settings(new MapBuilder<String, String>().put("index.refresh_interval", "-1").map())).actionGet().acknowledged();
382+
private <T> boolean createIndexWithSettings(Class<T> clazz) {
383+
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
384+
return client.admin().indices().create(Requests.createIndexRequest(persistentEntity.getIndexName()).
385+
settings(new MapBuilder<String, String>()
386+
.put("index.store.type", persistentEntity.getIndexStoreType())
387+
.map())).actionGet().acknowledged();
385388
}
386389

387390
private <T> SearchRequestBuilder prepareSearch(Query query, Class<T> clazz){

src/main/java/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ public interface ElasticsearchPersistentEntity<T> extends PersistentEntity<T, El
2727

2828
String getIndexName();
2929
String getIndexType();
30+
String getIndexStoreType();
3031
ElasticsearchPersistentProperty getVersionProperty();
3132
}

src/main/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public class SimpleElasticsearchPersistentEntity<T> extends BasicPersistentEntit
4545
private final StandardEvaluationContext context;
4646
private String indexName;
4747
private String indexType;
48+
private String indexStoreType;
4849

4950
public SimpleElasticsearchPersistentEntity(TypeInformation<T> typeInformation) {
5051
super(typeInformation);
@@ -55,6 +56,7 @@ public SimpleElasticsearchPersistentEntity(TypeInformation<T> typeInformation) {
5556
Assert.hasText(document.indexName(), " Unknown indexName. Make sure the indexName is defined. e.g @Document(indexName=\"foo\")");
5657
this.indexName = typeInformation.getType().getAnnotation(Document.class).indexName();
5758
this.indexType = hasText(document.type())? document.type() : clazz.getSimpleName().toLowerCase(Locale.ENGLISH);
59+
this.indexStoreType = typeInformation.getType().getAnnotation(Document.class).indexStoreType();
5860
}
5961
}
6062

@@ -75,6 +77,10 @@ public String getIndexType() {
7577
return indexType;
7678
}
7779

80+
public String getIndexStoreType() {
81+
return indexStoreType;
82+
}
83+
7884
@Override
7985
public void addPersistentProperty(ElasticsearchPersistentProperty property) {
8086
super.addPersistentProperty(property);

src/main/resources/org/springframework/data/elasticsearch/config/spring-elasticsearch-1.0.xsd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@
4545
<xsd:complexContent>
4646
<xsd:extension base="beans:identifiedType">
4747
<xsd:attribute name="local" type="xsd:boolean" default="false"/>
48-
<xsd:attribute name="purge-data-on-shutdown" type="xsd:boolean" default="true"/>
48+
<xsd:attribute name="cluster-name" type="xsd:string" default="elasticsearch"/>
49+
<xsd:attribute name="http-enabled" type="xsd:boolean" default="true"/>
4950
</xsd:extension>
5051
</xsd:complexContent>
5152
</xsd:complexType>

src/test/java/org/springframework/data/elasticsearch/Book.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* @author Rizwan Idrees
2222
* @author Mohsin Husen
2323
*/
24-
@Document(indexName = "book",type = "book")
24+
@Document(indexName = "book",type = "book", indexStoreType = "memory")
2525
public class Book {
2626

2727
@Id

src/test/java/org/springframework/data/elasticsearch/DoubleIDEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.data.elasticsearch.annotations.Document;
2121

2222

23-
@Document(indexName = "double-keyed-entity", type = "double-keyed-entity")
23+
@Document(indexName = "double-keyed-entity", type = "double-keyed-entity", indexStoreType = "memory")
2424
public class DoubleIDEntity {
2525

2626

src/test/java/org/springframework/data/elasticsearch/IntegerIDEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.springframework.data.elasticsearch.annotations.Document;
2323

2424

25-
@Document(indexName = "integer-keyed-entity", type = "integer-keyed-entity")
25+
@Document(indexName = "integer-keyed-entity", type = "integer-keyed-entity", indexStoreType = "memory")
2626
public class IntegerIDEntity {
2727

2828

src/test/java/org/springframework/data/elasticsearch/SampleEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* @author Rizwan Idrees
2626
* @author Mohsin Husen
2727
*/
28-
@Document(indexName = "test-index", type = "test-type")
28+
@Document(indexName = "test-index", type = "test-type", indexStoreType = "memory")
2929
public class SampleEntity {
3030

3131
@Id

src/test/java/org/springframework/data/elasticsearch/SampleMappingEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* @author Rizwan Idrees
2525
* @author Mohsin Husen
2626
*/
27-
@Document(indexName = "test-mapping", type = "mapping")
27+
@Document(indexName = "test-mapping", type = "mapping", indexStoreType = "memory")
2828
public class SampleMappingEntity {
2929

3030
@Id

src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,13 @@
2525
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2626

2727
import javax.annotation.Resource;
28-
2928
import java.util.ArrayList;
3029
import java.util.List;
3130

3231
import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
3332
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
3433
import static org.hamcrest.Matchers.*;
35-
import static org.hamcrest.Matchers.is;
36-
import static org.junit.Assert.assertFalse;
37-
import static org.junit.Assert.assertThat;
38-
import static org.junit.Assert.assertTrue;
34+
import static org.junit.Assert.*;
3935
/**
4036
* @author Rizwan Idrees
4137
* @author Mohsin Husen
@@ -56,7 +52,6 @@ public void before(){
5652
elasticsearchTemplate.refresh(SampleEntity.class, true);
5753
}
5854

59-
6055
@Test
6156
public void shouldPerformAndOperation(){
6257
//given

src/test/java/org/springframework/data/elasticsearch/repositories/IntegerIDRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.springframework.data.elasticsearch.repositories;
1717

1818
import org.springframework.data.elasticsearch.IntegerIDEntity;
19-
import org.springframework.data.elasticsearch.SampleEntity;
2019
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
2120

2221
public interface IntegerIDRepository extends ElasticsearchRepository<IntegerIDEntity,Integer> {

src/test/java/org/springframework/data/elasticsearch/repository/support/DoubleIDRepositoryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,13 +377,13 @@ public void shouldSortByGivenField(){
377377
Double documentId = RandomUtils.nextDouble();
378378
DoubleIDEntity sampleEntity = new DoubleIDEntity();
379379
sampleEntity.setId(documentId);
380-
sampleEntity.setMessage("A. hello world.");
380+
sampleEntity.setMessage("abc");
381381
repository.save(sampleEntity);
382382

383383
Double documentId2 = RandomUtils.nextDouble();
384384
DoubleIDEntity sampleEntity2 = new DoubleIDEntity();
385385
sampleEntity2.setId(documentId2);
386-
sampleEntity2.setMessage("B.hello world.");
386+
sampleEntity2.setMessage("xyz");
387387
repository.save(sampleEntity2);
388388
//when
389389
Iterable<DoubleIDEntity> sampleEntities=repository.findAll(new Sort(new Sort.Order(Sort.Direction.ASC,"message")));

src/test/java/org/springframework/data/elasticsearch/repository/support/IntegerIDRepositoryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,13 +377,13 @@ public void shouldSortByGivenField(){
377377
Integer documentId = RandomUtils.nextInt();
378378
IntegerIDEntity sampleEntity = new IntegerIDEntity();
379379
sampleEntity.setId(documentId);
380-
sampleEntity.setMessage("A. hello world.");
380+
sampleEntity.setMessage("hello");
381381
repository.save(sampleEntity);
382382

383383
Integer documentId2 = RandomUtils.nextInt();
384384
IntegerIDEntity sampleEntity2 = new IntegerIDEntity();
385385
sampleEntity2.setId(documentId2);
386-
sampleEntity2.setMessage("B.hello world.");
386+
sampleEntity2.setMessage("world");
387387
repository.save(sampleEntity2);
388388
//when
389389
Iterable<IntegerIDEntity> sampleEntities=repository.findAll(new Sort(new Sort.Order(Sort.Direction.ASC,"message")));

src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,13 +373,13 @@ public void shouldSortByGivenField(){
373373
String documentId = randomNumeric(5);
374374
SampleEntity sampleEntity = new SampleEntity();
375375
sampleEntity.setId(documentId);
376-
sampleEntity.setMessage("A. hello world.");
376+
sampleEntity.setMessage("world");
377377
repository.save(sampleEntity);
378378

379379
String documentId2 = randomNumeric(5);
380380
SampleEntity sampleEntity2 = new SampleEntity();
381381
sampleEntity2.setId(documentId2);
382-
sampleEntity2.setMessage("B.hello world.");
382+
sampleEntity2.setMessage("hello");
383383
repository.save(sampleEntity2);
384384
//when
385385
Iterable<SampleEntity> sampleEntities=repository.findAll(new Sort(new Sort.Order(Sort.Direction.ASC,"message")));

src/test/resources/infrastructure.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch.xsd
66
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
77

8-
<elasticsearch:node-client id="client" local="true" purge-data-on-shutdown="true" />
8+
<elasticsearch:node-client id="client" local="true" cluster-name="testCluster" http-enabled="false" />
99

1010
</beans>

src/test/resources/org/springframework/data/elasticsearch/config/namespace.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd
66
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
77

8-
<elasticsearch:node-client id="client" local="true"/>
8+
<elasticsearch:node-client id="client" local="true" cluster-name="testCluster" http-enabled="false"/>
99

1010
<bean name="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
1111
<constructor-arg name="client" ref="client"/>

0 commit comments

Comments
 (0)