This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 99b2412ad4 NIFI-11483 Correctly use DescribedValue for
JsonQueryElasticsearch
99b2412ad4 is described below
commit 99b2412ad4ad3af72bff189404f6d817417660b8
Author: Chris Sampson <[email protected]>
AuthorDate: Tue Apr 25 21:18:02 2023 +0100
NIFI-11483 Correctly use DescribedValue for JsonQueryElasticsearch
This closes #7195
Signed-off-by: David Handermann <[email protected]>
---
.../elasticsearch/AbstractJsonQueryElasticsearch.java | 4 ++--
.../processors/elasticsearch/api/ResultOutputStrategy.java | 5 +++++
.../elasticsearch/AbstractJsonQueryElasticsearchTest.groovy | 11 ++++++++---
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearch.java
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearch.java
index a0d32779b0..1000779143 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearch.java
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearch.java
@@ -65,7 +65,7 @@ public abstract class AbstractJsonQueryElasticsearch<Q
extends JsonQueryParamete
.name("el-rest-split-up-hits")
.displayName("Search Results Split")
.description("Output a flowfile containing all hits or one
flowfile for each individual hit.")
- .allowableValues(ResultOutputStrategy.PER_RESPONSE.getValue(),
ResultOutputStrategy.PER_HIT.getValue())
+
.allowableValues(ResultOutputStrategy.getNonPaginatedResponseOutputStrategies())
.defaultValue(ResultOutputStrategy.PER_RESPONSE.getValue())
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
@@ -84,7 +84,7 @@ public abstract class AbstractJsonQueryElasticsearch<Q
extends JsonQueryParamete
.name("el-rest-split-up-aggregations")
.displayName("Aggregation Results Split")
.description("Output a flowfile containing all aggregations or one
flowfile for each individual aggregation.")
- .allowableValues(ResultOutputStrategy.PER_RESPONSE.getValue(),
ResultOutputStrategy.PER_HIT.getValue())
+
.allowableValues(ResultOutputStrategy.getNonPaginatedResponseOutputStrategies())
.defaultValue(ResultOutputStrategy.PER_RESPONSE.getValue())
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/api/ResultOutputStrategy.java
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/api/ResultOutputStrategy.java
index 01c84cbdc1..5ee50f7369 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/api/ResultOutputStrategy.java
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/api/ResultOutputStrategy.java
@@ -20,6 +20,7 @@ package org.apache.nifi.processors.elasticsearch.api;
import org.apache.nifi.components.DescribedValue;
import java.util.Arrays;
+import java.util.EnumSet;
public enum ResultOutputStrategy implements DescribedValue {
PER_HIT("splitUp-yes", "Flowfile per hit."),
@@ -52,6 +53,10 @@ public enum ResultOutputStrategy implements DescribedValue {
return description;
}
+ public static EnumSet<ResultOutputStrategy>
getNonPaginatedResponseOutputStrategies() {
+ return EnumSet.of(PER_RESPONSE, PER_HIT);
+ }
+
public static ResultOutputStrategy fromValue(final String value) {
return Arrays.stream(ResultOutputStrategy.values()).filter(v ->
v.getValue().equals(value)).findFirst()
.orElseThrow(() -> new
IllegalArgumentException(String.format("Unknown value %s", value)));
diff --git
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/test/groovy/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearchTest.groovy
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/test/groovy/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearchTest.groovy
index 25707cd300..670b9599b0 100644
---
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/test/groovy/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearchTest.groovy
+++
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/test/groovy/org/apache/nifi/processors/elasticsearch/AbstractJsonQueryElasticsearchTest.groovy
@@ -21,14 +21,16 @@ import com.fasterxml.jackson.databind.ObjectMapper
import org.apache.nifi.components.state.Scope
import org.apache.nifi.flowfile.FlowFile
import org.apache.nifi.processors.elasticsearch.api.AggregationResultsFormat
-import org.apache.nifi.processors.elasticsearch.api.SearchResultsFormat
import org.apache.nifi.processors.elasticsearch.api.ResultOutputStrategy
+import org.apache.nifi.processors.elasticsearch.api.SearchResultsFormat
import org.apache.nifi.provenance.ProvenanceEventType
import org.apache.nifi.util.MockFlowFile
import org.apache.nifi.util.TestRunner
import org.apache.nifi.util.TestRunners
import org.junit.jupiter.api.Test
+import java.util.stream.Collectors
+
import static groovy.json.JsonOutput.prettyPrint
import static groovy.json.JsonOutput.toJson
import static org.hamcrest.CoreMatchers.equalTo
@@ -95,9 +97,12 @@ abstract class AbstractJsonQueryElasticsearchTest<P extends
AbstractJsonQueryEla
runner.setProperty(AbstractJsonQueryElasticsearch.SEARCH_RESULTS_SPLIT,
"not-enum2")
runner.setProperty(AbstractJsonQueryElasticsearch.OUTPUT_NO_HITS,
"not-boolean")
+ final String nonPaginatedResultOutputStrategies =
ResultOutputStrategy.getNonPaginatedResponseOutputStrategies()
+ .stream().map(r -> r.getValue())
+ .collect(Collectors.joining(", "))
final String expectedAllowedSplitHits = processor instanceof
AbstractPaginatedJsonQueryElasticsearch
? ResultOutputStrategy.values().collect {r ->
r.getValue()}.join(", ")
- : [ResultOutputStrategy.PER_RESPONSE.getValue(),
ResultOutputStrategy.PER_HIT.getValue()].join(", ")
+ : nonPaginatedResultOutputStrategies
final AssertionError assertionError =
assertThrows(AssertionError.class, runner.&run)
assertThat(assertionError.getMessage(),
equalTo(String.format("Processor has 8 validation failures:\n" +
@@ -115,7 +120,7 @@ abstract class AbstractJsonQueryElasticsearchTest<P extends
AbstractJsonQueryEla
AbstractJsonQueryElasticsearch.TYPE.getName(),
AbstractJsonQueryElasticsearch.TYPE.getName(),
AbstractJsonQueryElasticsearch.CLIENT_SERVICE.getDisplayName(),
AbstractJsonQueryElasticsearch.SEARCH_RESULTS_SPLIT.getName(),
expectedAllowedSplitHits,
-
AbstractJsonQueryElasticsearch.AGGREGATION_RESULTS_SPLIT.getName(),
[ResultOutputStrategy.PER_RESPONSE.getValue(),
ResultOutputStrategy.PER_HIT.getValue()].join(", "),
+
AbstractJsonQueryElasticsearch.AGGREGATION_RESULTS_SPLIT.getName(),
nonPaginatedResultOutputStrategies,
AbstractJsonQueryElasticsearch.OUTPUT_NO_HITS.getName(),
AbstractJsonQueryElasticsearch.CLIENT_SERVICE.getDisplayName()
)))