Skip to content

Commit 652a7df

Browse files
committed
add copy() method to templates
1 parent f09312a commit 652a7df

File tree

5 files changed

+39
-5
lines changed

5 files changed

+39
-5
lines changed

Diff for: src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java

+15
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,21 @@ protected void initialize(ElasticsearchConverter elasticsearchConverter) {
9595
VersionInfo.logVersions(getClusterVersion());
9696
}
9797

98+
/**
99+
* @return copy of this instance.
100+
*/
101+
private ElasticsearchOperations copy() {
102+
AbstractElasticsearchTemplate copy = doCopy();
103+
104+
if (entityCallbacks != null) {
105+
copy.setEntityCallbacks(entityCallbacks);
106+
}
107+
108+
return copy;
109+
}
110+
111+
protected abstract AbstractElasticsearchTemplate doCopy();
112+
98113
protected ElasticsearchConverter createElasticsearchConverter() {
99114
MappingElasticsearchConverter mappingElasticsearchConverter = new MappingElasticsearchConverter(
100115
new SimpleElasticsearchMappingContext());

Diff for: src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,14 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
9393
private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchRestTemplate.class);
9494

9595
private final RestHighLevelClient client;
96-
private final ElasticsearchExceptionTranslator exceptionTranslator;
96+
private final ElasticsearchExceptionTranslator exceptionTranslator = new ElasticsearchExceptionTranslator();
9797

9898
// region Initialization
9999
public ElasticsearchRestTemplate(RestHighLevelClient client) {
100100

101101
Assert.notNull(client, "Client must not be null!");
102102

103103
this.client = client;
104-
this.exceptionTranslator = new ElasticsearchExceptionTranslator();
105104

106105
initialize(createElasticsearchConverter());
107106
}
@@ -111,11 +110,15 @@ public ElasticsearchRestTemplate(RestHighLevelClient client, ElasticsearchConver
111110
Assert.notNull(client, "Client must not be null!");
112111

113112
this.client = client;
114-
this.exceptionTranslator = new ElasticsearchExceptionTranslator();
115113

116114
initialize(elasticsearchConverter);
117115
}
118116

117+
@Override
118+
protected AbstractElasticsearchTemplate doCopy() {
119+
return new ElasticsearchRestTemplate(client, elasticsearchConverter);
120+
}
121+
119122
// endregion
120123

121124
// region IndexOperations

Diff for: src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

+8
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ private void initialize(Client client, ElasticsearchConverter elasticsearchConve
112112
this.client = client;
113113
initialize(elasticsearchConverter);
114114
}
115+
116+
@Override
117+
protected AbstractElasticsearchTemplate doCopy() {
118+
ElasticsearchTemplate elasticsearchTemplate = new ElasticsearchTemplate(client, elasticsearchConverter);
119+
elasticsearchTemplate.setSearchTimeout(searchTimeout);
120+
return elasticsearchTemplate;
121+
}
122+
115123
// endregion
116124

117125
// region IndexOperations

Diff for: src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java

+10
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public ReactiveElasticsearchTemplate(ReactiveElasticsearchClient client) {
121121
}
122122

123123
public ReactiveElasticsearchTemplate(ReactiveElasticsearchClient client, ElasticsearchConverter converter) {
124+
124125
Assert.notNull(client, "client must not be null");
125126
Assert.notNull(converter, "converter must not be null");
126127

@@ -135,6 +136,15 @@ public ReactiveElasticsearchTemplate(ReactiveElasticsearchClient client, Elastic
135136
logVersions();
136137
}
137138

139+
private ReactiveElasticsearchTemplate copy() {
140+
141+
ReactiveElasticsearchTemplate copy = new ReactiveElasticsearchTemplate(client, converter);
142+
copy.setRefreshPolicy(refreshPolicy);
143+
copy.setIndicesOptions(indicesOptions);
144+
copy.setEntityCallbacks(entityCallbacks);
145+
return copy;
146+
}
147+
138148
private void logVersions() {
139149
getClusterVersion() //
140150
.doOnSuccess(VersionInfo::logVersions) //

Diff for: src/test/java/org/springframework/data/elasticsearch/core/StreamQueriesTest.java

-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import java.util.List;
2525
import java.util.concurrent.atomic.AtomicBoolean;
2626

27-
import org.jetbrains.annotations.NotNull;
2827
import org.junit.jupiter.api.Test;
2928
import org.springframework.data.util.StreamUtils;
3029

@@ -62,7 +61,6 @@ public void shouldCallClearScrollOnIteratorClose() {
6261

6362
}
6463

65-
@NotNull
6664
private SearchHit<String> getOneSearchHit() {
6765
return new SearchHit<String>(null, null, null, 0, null, null, "one");
6866
}

0 commit comments

Comments
 (0)