Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d988bc8
fixing IndexRequestBuilder and UpdateRequestBuilder
masseyke Jan 22, 2024
f82f9f8
Update docs/changelog/104636.yaml
masseyke Jan 23, 2024
787340e
fixing BulkRequestBuilder
masseyke Jan 23, 2024
699c15b
Merge branch 'fixing-request-builders' of github.com:masseyke/elastic…
masseyke Jan 23, 2024
81c6c09
bug fixes
masseyke Jan 23, 2024
e4794e1
bug fixes, and adding ReindexRequestBuilder support
masseyke Jan 23, 2024
101cdf1
fixing tests
masseyke Jan 23, 2024
18d9403
Merge branch 'main' into fixing-request-builders
masseyke Jan 23, 2024
5beaaf4
reverting change to ActionRequestBuilder
masseyke Jan 23, 2024
ecfb932
fixing NPEs
masseyke Jan 23, 2024
6b1dd5e
cleanup
masseyke Jan 23, 2024
cfd0a4f
Changing the base class of builders
masseyke Jan 24, 2024
d2d225d
cleaning up the hierarchy
masseyke Jan 24, 2024
9c92553
having the buildres implement a common interface
masseyke Jan 24, 2024
9b29a2c
bug fixes
masseyke Jan 25, 2024
8c7cf4a
adding RequestBuilder
masseyke Jan 25, 2024
267d0ad
replacing ActionRequestBuilder with RequestBuilder
masseyke Jan 25, 2024
080248a
bug fix
masseyke Jan 25, 2024
2d5c286
Replacing ActionRequestBuilder with RequestBuilder
masseyke Jan 25, 2024
5258750
fixing tests
masseyke Jan 25, 2024
d48b8ca
Merge branch 'main' into fixing-request-builders
masseyke Jan 29, 2024
755193d
validating that IndexRequestBuilder only has one source set
masseyke Jan 29, 2024
513677a
removing incorrect assertion
masseyke Jan 29, 2024
9dd491c
merging main
masseyke Jan 30, 2024
ac449a2
adding BulkRequestBuilder validation
masseyke Jan 30, 2024
902112d
removing ManagedActionRequestLazyBuilder
masseyke Jan 30, 2024
6b27d85
adding validation and tests
masseyke Jan 30, 2024
06821f7
adding DeleteRequestBuilderTests
masseyke Jan 30, 2024
c8f564b
merging main
masseyke Jan 30, 2024
61fc265
spotlessApply
masseyke Jan 30, 2024
882816a
code review feedback
masseyke Jan 31, 2024
98761b1
Merge branch 'main' into fixing-request-builders
masseyke Jan 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/changelog/104636.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 104636
summary: Modifying request builders
area: Ingest Node
type: enhancement
issues: []
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@

package org.elasticsearch.action.bulk;

import org.elasticsearch.action.ActionRequest;
import org.elasticsearch.action.ActionRequestLazyBuilder;
import org.elasticsearch.action.ActionResponse;
import org.elasticsearch.action.DocWriteRequest;
import org.elasticsearch.action.RequestBuilder;
import org.elasticsearch.action.DocWriteResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.index.IndexRequest;
Expand Down Expand Up @@ -46,7 +44,8 @@ public class BulkRequestBuilder extends ActionRequestLazyBuilder<BulkRequest, Bu
*/
private final List<DocWriteRequest<?>> requests = new ArrayList<>();
private final List<FramedData> framedData = new ArrayList<>();
private final List<RequestBuilder<? extends ActionRequest, ? extends ActionResponse>> requestBuilders = new ArrayList<>();
private final List<ActionRequestLazyBuilder<? extends DocWriteRequest<?>, ? extends DocWriteResponse>> requestBuilders =
new ArrayList<>();
private ActiveShardCount waitForActiveShards;
private TimeValue timeout;
private String timeoutString;
Expand Down Expand Up @@ -204,9 +203,9 @@ public BulkRequestBuilder setRefreshPolicy(String refreshPolicy) {
public BulkRequest request() {
validate();
BulkRequest request = new BulkRequest(globalIndex);
for (RequestBuilder<? extends ActionRequest, ? extends ActionResponse> requestBuilder : requestBuilders) {
ActionRequest childRequest = requestBuilder.request();
request.add((DocWriteRequest<?>) childRequest);
for (ActionRequestLazyBuilder<? extends DocWriteRequest<?>, ? extends DocWriteResponse> requestBuilder : requestBuilders) {
DocWriteRequest<?> childRequest = requestBuilder.request();
request.add(childRequest);
}
for (DocWriteRequest<?> childRequest : requests) {
request.add(childRequest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package org.elasticsearch.action.delete;

import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.action.support.WriteRequestBuilder;
import org.elasticsearch.action.support.replication.ReplicationRequestBuilder;
import org.elasticsearch.client.internal.ElasticsearchClient;
Expand All @@ -21,15 +22,25 @@ public class DeleteRequestBuilder extends ReplicationRequestBuilder<DeleteReques
implements
WriteRequestBuilder<DeleteRequestBuilder> {

private String id;
private String routing;
private Long version;
private VersionType versionType;
private Long seqNo;
private Long term;
private WriteRequest.RefreshPolicy refreshPolicy;
private String refreshPolicyString;

public DeleteRequestBuilder(ElasticsearchClient client, @Nullable String index) {
super(client, TransportDeleteAction.TYPE, new DeleteRequest(index));
super(client, TransportDeleteAction.TYPE);
setIndex(index);
}

/**
* Sets the id of the document to delete.
*/
public DeleteRequestBuilder setId(String id) {
request.id(id);
this.id = id;
return this;
}

Expand All @@ -38,7 +49,7 @@ public DeleteRequestBuilder setId(String id) {
* and not the id.
*/
public DeleteRequestBuilder setRouting(String routing) {
request.routing(routing);
this.routing = routing;
return this;
}

Expand All @@ -47,15 +58,15 @@ public DeleteRequestBuilder setRouting(String routing) {
* version exists and no changes happened on the doc since then.
*/
public DeleteRequestBuilder setVersion(long version) {
request.version(version);
this.version = version;
return this;
}

/**
* Sets the type of versioning to use. Defaults to {@link VersionType#INTERNAL}.
*/
public DeleteRequestBuilder setVersionType(VersionType versionType) {
request.versionType(versionType);
this.versionType = versionType;
return this;
}

Expand All @@ -67,7 +78,7 @@ public DeleteRequestBuilder setVersionType(VersionType versionType) {
* {@link org.elasticsearch.index.engine.VersionConflictEngineException} will be thrown.
*/
public DeleteRequestBuilder setIfSeqNo(long seqNo) {
request.setIfSeqNo(seqNo);
this.seqNo = seqNo;
return this;
}

Expand All @@ -79,8 +90,59 @@ public DeleteRequestBuilder setIfSeqNo(long seqNo) {
* {@link org.elasticsearch.index.engine.VersionConflictEngineException} will be thrown.
*/
public DeleteRequestBuilder setIfPrimaryTerm(long term) {
request.setIfPrimaryTerm(term);
this.term = term;
return this;
}

@Override
public DeleteRequestBuilder setRefreshPolicy(WriteRequest.RefreshPolicy refreshPolicy) {
this.refreshPolicy = refreshPolicy;
return this;
}

@Override
public DeleteRequestBuilder setRefreshPolicy(String refreshPolicy) {
this.refreshPolicyString = refreshPolicy;
return this;
}

@Override
public DeleteRequest request() {
validate();
DeleteRequest request = new DeleteRequest();
super.apply(request);
if (id != null) {
request.id(id);
}
if (routing != null) {
request.routing(routing);
}
if (version != null) {
request.version(version);
}
if (versionType != null) {
request.versionType(versionType);
}
if (seqNo != null) {
request.setIfSeqNo(seqNo);
}
if (term != null) {
request.setIfPrimaryTerm(term);
}
if (refreshPolicy != null) {
request.setRefreshPolicy(refreshPolicy);
}
if (refreshPolicyString != null) {
request.setRefreshPolicy(refreshPolicyString);
}
return request;
}

@Override
protected void validate() throws IllegalStateException {
super.validate();
if (refreshPolicy != null && refreshPolicyString != null) {
throw new IllegalStateException("Must use only one setRefreshPolicy method");
}
}
}
Loading