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 aa7655a7064 NIFI-15773 Cleaned ValidateJson and TestValidateJson
aa7655a7064 is described below

commit aa7655a70645c8be5fa1e48b5b2b2a87901d05ce
Author: dan-s1 <[email protected]>
AuthorDate: Tue Mar 31 15:23:09 2026 +0000

    NIFI-15773 Cleaned ValidateJson and TestValidateJson
    
    This closes #11083
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../nifi/processors/standard/ValidateJson.java     |  9 +--
 .../nifi/processors/standard/TestValidateJson.java | 76 ++++++----------------
 2 files changed, 22 insertions(+), 63 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateJson.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateJson.java
index 2dd5225b1b9..3a194a7696f 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateJson.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateJson.java
@@ -258,6 +258,7 @@ public class ValidateJson extends AbstractProcessor {
                             schemaDraftVersion -> 
SchemaRegistry.withDefaultDialect(mapToSpecification(schemaDraftVersion))
                     )
             );
+
     private volatile Schema schema;
     private volatile JsonSchemaRegistry jsonSchemaRegistry;
 
@@ -311,6 +312,7 @@ public class ValidateJson extends AbstractProcessor {
                 }
             }
         }
+
         final int maxStringLength = 
context.getProperty(MAX_STRING_LENGTH).asDataSize(DataUnit.B).intValue();
         final StreamReadConstraints streamReadConstraints = 
StreamReadConstraints.builder().maxStringLength(maxStringLength).build();
         mapper = new 
ObjectMapper().configure(JsonParser.Feature.ALLOW_COMMENTS, true);
@@ -339,13 +341,6 @@ public class ValidateJson extends AbstractProcessor {
             }
         }
 
-        if (schema == null) {
-            getLogger().error("JSON schema not configured for {}", flowFile);
-            session.getProvenanceReporter().route(flowFile, REL_FAILURE);
-            session.transfer(flowFile, REL_FAILURE);
-            return;
-        }
-
         final InputFormat inputFormat = 
context.getProperty(INPUT_FORMAT).asAllowableValue(InputFormat.class);
         if (inputFormat == InputFormat.FLOW_FILE) {
             validateFlowFile(session, flowFile);
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateJson.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateJson.java
index 4cd772620db..9ee0450c7c3 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateJson.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateJson.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.standard;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.nifi.controller.AbstractControllerService;
 import org.apache.nifi.json.schema.JsonSchema;
 import org.apache.nifi.json.schema.SchemaVersion;
@@ -36,13 +35,12 @@ import org.junit.jupiter.params.provider.MethodSource;
 import org.opentest4j.AssertionFailedError;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.UncheckedIOException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Objects;
 import java.util.stream.Stream;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -52,6 +50,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class TestValidateJson {
+    private static final Path RESOURCE_DIR = 
Paths.get("src/test/resources/TestValidateJson");
     private static final String JSON = getFileContent("simple-example.json");
     private static final String SIMPLE_SCHEMA = 
getFileContent("schema-simple-example.json");
     private static final String NON_JSON = "Not JSON";
@@ -82,10 +81,7 @@ class TestValidateJson {
 
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         assertValidationErrors(ValidateJson.REL_VALID, false);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -100,10 +96,7 @@ class TestValidateJson {
 
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         assertValidationErrors(ValidateJson.REL_VALID, false);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -117,10 +110,7 @@ class TestValidateJson {
         runner.enqueue(JSON);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         assertValidationErrors(ValidateJson.REL_VALID, false);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -135,10 +125,7 @@ class TestValidateJson {
         runner.enqueue(JSON);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         assertValidationErrors(ValidateJson.REL_VALID, false);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -153,10 +140,7 @@ class TestValidateJson {
         runner.enqueue(JSON);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 1);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 0);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_INVALID);
         assertValidationErrors(ValidateJson.REL_INVALID, true);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -171,10 +155,7 @@ class TestValidateJson {
         runner.enqueue(JSON);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 1);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 0);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_INVALID);
         assertValidationErrors(ValidateJson.REL_INVALID, true);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -188,10 +169,7 @@ class TestValidateJson {
         runner.enqueue(NON_JSON);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 1);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 0);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_FAILURE);
         assertValidationErrors(ValidateJson.REL_FAILURE, false);
         assertEquals(1, runner.getProvenanceEvents().size());
         assertEquals(ProvenanceEventType.ROUTE, 
runner.getProvenanceEvents().getFirst().getEventType());
@@ -225,10 +203,7 @@ class TestValidateJson {
 
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
-
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         assertValidationErrors(ValidateJson.REL_VALID, false);
     }
 
@@ -248,9 +223,7 @@ class TestValidateJson {
         runner.enqueue(JSON, attributes);
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
-        runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-        runner.assertTransferCount(ValidateJson.REL_VALID, 1);
+        runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
     }
 
     @ParameterizedTest
@@ -267,13 +240,10 @@ class TestValidateJson {
 
         runner.run();
 
-        runner.assertTransferCount(ValidateJson.REL_FAILURE, 0);
         if (expectedValid) {
-            runner.assertTransferCount(ValidateJson.REL_INVALID, 0);
-            runner.assertTransferCount(ValidateJson.REL_VALID, 1);
+            runner.assertAllFlowFilesTransferred(ValidateJson.REL_VALID);
         } else {
-            runner.assertTransferCount(ValidateJson.REL_INVALID, 1);
-            runner.assertTransferCount(ValidateJson.REL_VALID, 0);
+            runner.assertAllFlowFilesTransferred(ValidateJson.REL_INVALID);
 
             assertTrue(runner.getLogger().getWarnMessages().stream()
                     .anyMatch(logMessage -> logMessage.getMsg().contains("JSON 
at line 2") && logMessage.getMsg().contains("is invalid")));
@@ -308,25 +278,19 @@ class TestValidateJson {
     }
 
     private static String getFilePath(final String filename) {
-        final String path = getRelativeResourcePath(filename);
-        final URL url = 
Objects.requireNonNull(TestValidateJson.class.getResource(path), "Resource not 
found");
-        return url.getPath();
+        final Path path = RESOURCE_DIR.resolve(filename);
+        return path.toString();
     }
 
     private static String getFileContent(final String filename) {
-        final String path = getRelativeResourcePath(filename);
-        try (final InputStream inputStream = 
TestValidateJson.class.getResourceAsStream(path)) {
-            Objects.requireNonNull(inputStream, "Resource not found");
-            return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
+        final Path path = RESOURCE_DIR.resolve(filename);
+        try {
+            return Files.readString(path);
         } catch (final IOException e) {
             throw new UncheckedIOException(e);
         }
     }
 
-    private static String getRelativeResourcePath(final String filename) {
-        return String.format("/%s/%s", TestValidateJson.class.getSimpleName(), 
filename);
-    }
-
     private static class SampleJsonSchemaRegistry extends 
AbstractControllerService implements JsonSchemaRegistry {
         private final String identifier;
         private final String schemaName;

Reply via email to