Skip to content

Commit 1391928

Browse files
authored
NIFI-15039 Use List of Enum Values in InvokeHTTP and Elasticsearch Indexing (#10372)
- Optimization for iteration over all Enum values on every FlowFile processed Signed-off-by: David Handermann <[email protected]>
1 parent 37d3aa4 commit 1391928

File tree

2 files changed

+13
-5
lines changed
  • nifi-extension-bundles
    • nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch
    • nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard

2 files changed

+13
-5
lines changed

nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service-api/src/main/java/org/apache/nifi/elasticsearch/IndexOperationRequest.java

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

1818
package org.apache.nifi.elasticsearch;
1919

20-
import java.util.Arrays;
20+
import java.util.List;
2121
import java.util.Map;
2222

2323
/**
@@ -93,6 +93,9 @@ public enum Operation {
9393
Index("index"),
9494
Update("update"),
9595
Upsert("upsert");
96+
97+
private static final List<Operation> VALUES = List.of(Operation.values());
98+
9699
private final String value;
97100

98101
Operation(final String value) {
@@ -104,9 +107,12 @@ public String getValue() {
104107
}
105108

106109
public static Operation forValue(final String value) {
107-
return Arrays.stream(Operation.values())
108-
.filter(o -> o.getValue().equalsIgnoreCase(value)).findFirst()
109-
.orElseThrow(() -> new IllegalArgumentException(String.format("Unknown Index Operation %s", value)));
110+
for (final Operation operation : VALUES) {
111+
if (operation.value.equalsIgnoreCase(value)) {
112+
return operation;
113+
}
114+
}
115+
throw new IllegalArgumentException(String.format("Unknown Index Operation %s", value));
110116
}
111117
}
112118

nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ public class InvokeHTTP extends AbstractProcessor {
175175
private static final Pattern FORM_DATA_NAME_PARAMETER_PATTERN = Pattern.compile("post:form:(?<formDataName>.*)$");
176176
private static final String FORM_DATA_NAME_GROUP = "formDataName";
177177

178+
private static final List<HttpMethod> HTTP_METHOD_VALUES = List.of(HttpMethod.values());
179+
178180
private static final Set<String> IGNORED_REQUEST_ATTRIBUTES = Set.of(
179181
STATUS_CODE,
180182
STATUS_MESSAGE,
@@ -1319,7 +1321,7 @@ private String getFileNameFromUrl(URL url) {
13191321
}
13201322

13211323
private Optional<HttpMethod> findRequestMethod(String method) {
1322-
return Arrays.stream(HttpMethod.values())
1324+
return HTTP_METHOD_VALUES.stream()
13231325
.filter(httpMethod -> httpMethod.name().equals(method))
13241326
.findFirst();
13251327
}

0 commit comments

Comments
 (0)