This is an automated email from the ASF dual-hosted git repository.
pvillard 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 c11291213af NIFI-15332 Replaced print to console with a log statement
when the configured additional classpath in ExecuteGroovyScript does not exist.
c11291213af is described below
commit c11291213afe7d0878c0de740931e96164825400
Author: dan-s1 <[email protected]>
AuthorDate: Thu Dec 11 19:37:38 2025 +0000
NIFI-15332 Replaced print to console with a log statement when the
configured additional classpath in ExecuteGroovyScript does not exist.
Signed-off-by: Pierre Villard <[email protected]>
This closes #10636.
---
.../apache/nifi/processors/groovyx/ExecuteGroovyScript.java | 2 +-
.../java/org/apache/nifi/processors/groovyx/util/Files.java | 13 +++++++------
.../nifi/processors/groovyx/ExecuteGroovyScriptTest.java | 13 +++++++++++++
3 files changed, 21 insertions(+), 7 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
index 227b5cf03b1..124394101f4 100644
---
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
+++
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScript.java
@@ -318,7 +318,7 @@ public class ExecuteGroovyScript extends AbstractProcessor {
conf.setDebug(true);
shell = new GroovyShell(conf);
if (addClasspath != null && !addClasspath.isEmpty()) {
- for (File fcp : Files.listPathsFiles(addClasspath)) {
+ for (File fcp : Files.listPathsFiles(addClasspath,
getLogger())) {
if (!fcp.exists()) {
throw new ProcessException("Path not found `" + fcp +
"` for `" + ADD_CLASSPATH.getDisplayName() + "`");
}
diff --git
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
index ea0ec5ecac9..6a27f63c88b 100644
---
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
+++
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Files.java
@@ -16,6 +16,7 @@
*/
package org.apache.nifi.processors.groovyx.util;
+import org.apache.nifi.logging.ComponentLog;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
@@ -34,13 +35,13 @@ public class Files {
*
* @return file list defined by classpath parameter
*/
- public static Set<File> listPathsFiles(String classpath) {
- if (classpath == null || classpath.length() == 0) {
+ public static Set<File> listPathsFiles(String classpath, ComponentLog
logger) {
+ if (classpath == null || classpath.isEmpty()) {
return Collections.emptySet();
}
Set<File> files = new HashSet<>();
for (String cp : classpath.split("\\s*[;,]\\s*")) {
- files.addAll(listPathFiles(cp));
+ files.addAll(listPathFiles(cp, logger));
}
return files;
}
@@ -49,7 +50,7 @@ public class Files {
* returns file list from one path. the path could be exact filename (one
file returned), exact directory (all files from dir returned)
* or exact dir with masked file names like ./dir/*.jar (all jars returned)
*/
- public static List<File> listPathFiles(String path) {
+ public static List<File> listPathFiles(String path, ComponentLog logger) {
File f = new File(path);
String fname = f.getName();
if (fname.contains("?") || fname.contains("*")) {
@@ -58,8 +59,8 @@ public class Files {
return list == null ? Collections.emptyList() :
Arrays.asList(list);
}
if (!f.exists()) {
- System.err.println("WARN: path not found for: " + f);
+ logger.warn("path not found for {}", f);
}
- return Arrays.asList(f);
+ return List.of(f);
}
}
diff --git
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
index 8b79373868e..914c0cb7c86 100644
---
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
+++
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/test/java/org/apache/nifi/processors/groovyx/ExecuteGroovyScriptTest.java
@@ -30,6 +30,7 @@ import org.apache.nifi.serialization.record.MockRecordParser;
import org.apache.nifi.serialization.record.MockRecordWriter;
import org.apache.nifi.serialization.record.RecordField;
import org.apache.nifi.serialization.record.RecordFieldType;
+import org.apache.nifi.util.MockComponentLog;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.MockProcessContext;
import org.apache.nifi.util.MockProcessorInitializationContext;
@@ -64,6 +65,7 @@ import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
@DisabledOnOs(OS.WINDOWS)
public class ExecuteGroovyScriptTest {
@@ -188,6 +190,17 @@ public class ExecuteGroovyScriptTest {
assertEquals(expectedClasspathURLs, new
HashSet<>(Arrays.asList(classpathURLs)));
}
+ @Test
+ void testNonExistingAdditionalClasspath() {
+ runner.setProperty(ExecuteGroovyScript.SCRIPT_BODY, ";");
+ runner.setProperty(ExecuteGroovyScript.ADD_CLASSPATH, "someOtherPath");
+ runner.assertNotValid();
+
+ final MockComponentLog logger = runner.getLogger();
+ assertEquals(1, logger.getWarnMessages().size());
+ assertTrue(logger.getWarnMessages().getFirst().getMsg().contains("not
found"));
+ }
+
@Test
public void test_onTrigger_groovy() {
runner.setProperty(ExecuteGroovyScript.SCRIPT_FILE,
TEST_RESOURCE_LOCATION + "test_onTrigger.groovy");