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 6e866b85db NIFI-15317 Fixed Script Engine property name migration
6e866b85db is described below
commit 6e866b85db640cea63887ef016134ee2340998d6
Author: exceptionfactory <[email protected]>
AuthorDate: Tue Dec 9 21:15:12 2025 -0600
NIFI-15317 Fixed Script Engine property name migration
- Reverted Script Language property name to Script Engine
- Added migrate properties method to scripting components to cover released
versions
- Added unit tests for migrate properties in representative components
Signed-off-by: Pierre Villard <[email protected]>
This closes #10623.
---
.../nifi/processors/script/ExecuteScript.java | 5 ++++
.../processors/script/InvokeScriptedProcessor.java | 6 ++++
.../processors/script/ScriptedRecordProcessor.java | 9 ++----
.../reporting/script/ScriptedReportingTask.java | 6 ++++
.../script/AbstractScriptedControllerService.java | 6 ++++
.../nifi/script/ScriptingComponentHelper.java | 33 ++++++++++++++++------
.../processors/script/ExecuteScriptGroovyTest.java | 20 ++++++++++++-
.../script/TestScriptingComponentHelper.java | 32 +++++++++++++++++++--
.../nifi/record/script/ScriptedReaderTest.java | 20 +++++++++++++
.../script/ScriptedReportingTaskTest.java | 33 ++++++++++++++++++++--
10 files changed, 149 insertions(+), 21 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
index 277a79e507..865e255949 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
@@ -37,6 +37,7 @@ import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.components.state.Scope;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.AbstractSessionFactoryProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -100,6 +101,10 @@ public class ExecuteScript extends
AbstractSessionFactoryProcessor implements Se
private volatile String scriptToRun = null;
volatile ScriptingComponentHelper scriptingComponentHelper = new
ScriptingComponentHelper();
+ @Override
+ public void migrateProperties(final PropertyConfiguration config) {
+ ScriptingComponentHelper.migrateProperties(config);
+ }
/**
* Returns the valid relationships for this processor.
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
index afb9308f13..f96e5d5594 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
@@ -42,6 +42,7 @@ import org.apache.nifi.controller.ControllerServiceLookup;
import org.apache.nifi.controller.NodeTypeProvider;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.AbstractSessionFactoryProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSessionFactory;
@@ -106,6 +107,11 @@ public class InvokeScriptedProcessor extends
AbstractSessionFactoryProcessor {
private volatile File kerberosServiceKeytab = null;
volatile ScriptingComponentHelper scriptingComponentHelper = new
ScriptingComponentHelper();
+ @Override
+ public void migrateProperties(final PropertyConfiguration config) {
+ ScriptingComponentHelper.migrateProperties(config);
+ }
+
/**
* Returns the valid relationships for this processor as supplied by the
* script itself.
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
index 6272ac9087..88bb16b276 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
@@ -70,12 +70,9 @@ abstract class ScriptedRecordProcessor extends
AbstractProcessor implements Sear
.identifiesControllerService(RecordSetWriterFactory.class)
.build();
- static final PropertyDescriptor LANGUAGE = new PropertyDescriptor.Builder()
- .name(ScriptingComponentHelper.SCRIPT_ENGINE_PROPERTY)
- .description("The Language to use for the script")
+ static final PropertyDescriptor LANGUAGE =
ScriptingComponentHelper.getScriptEnginePropertyBuilder()
.allowableValues(SCRIPT_OPTIONS)
.defaultValue("Groovy")
- .required(true)
.build();
protected static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
@@ -140,8 +137,8 @@ abstract class ScriptedRecordProcessor extends
AbstractProcessor implements Sear
}
@Override
- public void migrateProperties(PropertyConfiguration config) {
- config.renameProperty("Script Engine", LANGUAGE.getName());
+ public void migrateProperties(final PropertyConfiguration config) {
+ ScriptingComponentHelper.migrateProperties(config);
}
protected static Bindings setupBindings(final ScriptEngine scriptEngine) {
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/reporting/script/ScriptedReportingTask.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/reporting/script/ScriptedReportingTask.java
index c90099da36..dc48a37c8a 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/reporting/script/ScriptedReportingTask.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/reporting/script/ScriptedReportingTask.java
@@ -32,6 +32,7 @@ import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.script.ScriptRunner;
@@ -79,6 +80,11 @@ public class ScriptedReportingTask extends
AbstractReportingTask {
private volatile String scriptToRun = null;
private volatile JmxJvmMetrics vmMetrics;
+ @Override
+ public void migrateProperties(final PropertyConfiguration config) {
+ ScriptingComponentHelper.migrateProperties(config);
+ }
+
/**
* Returns a list of property descriptors supported by this processor. The
list always includes properties such as
* script engine name, script file name, script body name, script
arguments, and an external module path. If the
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/AbstractScriptedControllerService.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/AbstractScriptedControllerService.java
index 174f3dcd65..8931039ab6 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/AbstractScriptedControllerService.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/AbstractScriptedControllerService.java
@@ -25,6 +25,7 @@ import org.apache.nifi.controller.AbstractControllerService;
import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processors.script.ScriptRunner;
import org.apache.nifi.util.StringUtils;
@@ -52,6 +53,11 @@ public abstract class AbstractScriptedControllerService
extends AbstractControll
protected volatile ScriptingComponentHelper scriptingComponentHelper = new
ScriptingComponentHelper();
protected volatile ConfigurationContext configurationContext = null;
+ @Override
+ public void migrateProperties(final PropertyConfiguration config) {
+ ScriptingComponentHelper.migrateProperties(config);
+ }
+
/**
* Returns a list of property descriptors supported by this record reader.
The
* list always includes properties such as script engine name, script file
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
index f6d23c6517..21f255a2fc 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
@@ -24,6 +24,7 @@ import org.apache.nifi.components.resource.ResourceReferences;
import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.processors.script.ScriptRunner;
import org.apache.nifi.util.StringUtils;
@@ -43,6 +44,7 @@ import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
@@ -54,9 +56,11 @@ import static
org.apache.commons.lang3.StringUtils.defaultIfBlank;
* This class contains variables and methods common to scripting processors,
reporting tasks, etc.
*/
public class ScriptingComponentHelper {
- public static final String SCRIPT_ENGINE_PROPERTY = "Script Language";
private static final String UNKNOWN_VERSION = "UNKNOWN";
+ private static final String SCRIPT_ENGINE_PROPERTY_NAME = "Script Engine";
+ private static final String SCRIPT_LANGUAGE_PROPERTY_NAME = "Script
Language";
+
public PropertyDescriptor SCRIPT_ENGINE;
public final AtomicBoolean isInitialized = new AtomicBoolean(false);
@@ -71,6 +75,25 @@ public class ScriptingComponentHelper {
public BlockingQueue<ScriptRunner> scriptRunnerQ = null;
+ /**
+ * Get Property Descriptor Builder for Script Engine with standard
settings and no default value configured
+ *
+ * @return Property Descriptor Builder
+ */
+ public static PropertyDescriptor.Builder getScriptEnginePropertyBuilder() {
+ return new PropertyDescriptor.Builder()
+ .name("Script Engine")
+ .required(true)
+ .description("Language Engine for executing scripts")
+ .expressionLanguageSupported(ExpressionLanguageScope.NONE);
+ }
+
+ public static void migrateProperties(final PropertyConfiguration
configuration) {
+ Objects.requireNonNull(configuration, "Property Configuration
required");
+ // Revert name changes from NIFI-15108
+ configuration.renameProperty(SCRIPT_LANGUAGE_PROPERTY_NAME,
SCRIPT_ENGINE_PROPERTY_NAME);
+ }
+
public String getScriptEngineName() {
return scriptEngineName;
}
@@ -175,13 +198,7 @@ public class ScriptingComponentHelper {
engineAllowableValues = engineList;
AllowableValue[] engines = engineList.toArray(new
AllowableValue[0]);
- final PropertyDescriptor.Builder enginePropertyBuilder = new
PropertyDescriptor.Builder()
- .name(SCRIPT_ENGINE_PROPERTY)
- .required(true)
- .description("Language Engine for executing scripts")
- .required(true)
- .expressionLanguageSupported(ExpressionLanguageScope.NONE);
-
+ final PropertyDescriptor.Builder enginePropertyBuilder =
getScriptEnginePropertyBuilder();
if (engineList.isEmpty()) {
enginePropertyBuilder.description("No Script Engines found");
} else {
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/ExecuteScriptGroovyTest.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/ExecuteScriptGroovyTest.java
index 0febf5c18f..eebdd7d20a 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/ExecuteScriptGroovyTest.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/ExecuteScriptGroovyTest.java
@@ -16,15 +16,19 @@
*/
package org.apache.nifi.processors.script;
+import org.apache.nifi.script.ScriptingComponentHelper;
import org.apache.nifi.script.ScriptingComponentUtils;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.MockProcessContext;
+import org.apache.nifi.util.PropertyMigrationResult;
import org.apache.nifi.util.TestRunners;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import java.util.Map;
import java.util.regex.Pattern;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -32,7 +36,7 @@ class ExecuteScriptGroovyTest extends BaseScriptTest {
private static final Pattern SINGLE_POOL_THREAD_PATTERN =
Pattern.compile("pool-\\d+-thread-1");
@BeforeEach
- public void setUp() throws Exception {
+ public void setUp() {
super.setupExecuteScript();
runner.setValidateExpressionUsage(false);
runner.setProperty(scriptingComponent.getScriptingComponentHelper().SCRIPT_ENGINE,
"Groovy");
@@ -40,6 +44,20 @@ class ExecuteScriptGroovyTest extends BaseScriptTest {
runner.setProperty(ScriptingComponentUtils.MODULES,
TEST_RESOURCE_LOCATION + "groovy");
}
+ @Test
+ void testMigrateProperties() {
+ runner.clearProperties();
+
+ final String scriptLanguage = "Script Language";
+ runner.setProperty(scriptLanguage, "Groovy");
+
+ final PropertyMigrationResult result = runner.migrateProperties();
+
+ final Map<String, String> propertiesRenamed =
result.getPropertiesRenamed();
+ final String scriptLanguageRenamed =
propertiesRenamed.get(scriptLanguage);
+
assertEquals(ScriptingComponentHelper.getScriptEnginePropertyBuilder().build().getName(),
scriptLanguageRenamed);
+ }
+
@Test
void testShouldExecuteScript() {
runner.assertValid();
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
index 8cf55d79ff..79f733f96a 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
@@ -19,25 +19,35 @@ package org.apache.nifi.processors.script;
import org.apache.nifi.components.AllowableValue;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.script.ScriptingComponentHelper;
+import org.apache.nifi.util.MockPropertyConfiguration;
+import org.apache.nifi.util.PropertyMigrationResult;
import org.junit.jupiter.api.Test;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class TestScriptingComponentHelper {
+class TestScriptingComponentHelper {
+
+ private static final String SCRIPT_LANGUAGE = "Script Language";
+ private static final String SCRIPT_ENGINE = "Script Engine";
+ private static final String CONFIGURED_SCRIPT_ENGINE = "AWK";
@Test
- public void testScriptEngineAllowableValuesWithDescriptions() {
+ void testScriptEngineAllowableValuesWithDescriptions() {
final ScriptingComponentHelper helper = new ScriptingComponentHelper();
helper.createResources();
final List<PropertyDescriptor> descriptors = helper.getDescriptors();
final Optional<PropertyDescriptor> optionalScriptEngine =
descriptors.stream().filter(
- descriptor ->
descriptor.getName().equals(ScriptingComponentHelper.SCRIPT_ENGINE_PROPERTY)
+ descriptor -> descriptor.getName().equals(
+
ScriptingComponentHelper.getScriptEnginePropertyBuilder().build().getName()
+ )
).findFirst();
assertTrue(optionalScriptEngine.isPresent());
@@ -50,4 +60,20 @@ public class TestScriptingComponentHelper {
assertNotNull(allowableValue.getDescription());
}
}
+
+ @Test
+ void testMigrateProperties() {
+ final Map<String, String> propertyValues = Map.of(
+ SCRIPT_LANGUAGE, CONFIGURED_SCRIPT_ENGINE
+ );
+ final MockPropertyConfiguration configuration = new
MockPropertyConfiguration(propertyValues);
+
+ ScriptingComponentHelper.migrateProperties(configuration);
+
+ final PropertyMigrationResult result =
configuration.toPropertyMigrationResult();
+ final Map<String, String> propertiesRenamed =
result.getPropertiesRenamed();
+
+ final String scriptLanguageRenamed =
propertiesRenamed.get(SCRIPT_LANGUAGE);
+ assertEquals(SCRIPT_ENGINE, scriptLanguageRenamed);
+ }
}
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/record/script/ScriptedReaderTest.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/record/script/ScriptedReaderTest.java
index af2a044ed4..1e683cba15 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/record/script/ScriptedReaderTest.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/record/script/ScriptedReaderTest.java
@@ -22,7 +22,9 @@ import org.apache.nifi.script.ScriptingComponentUtils;
import org.apache.nifi.serialization.RecordReader;
import org.apache.nifi.serialization.record.Record;
import org.apache.nifi.util.MockComponentLog;
+import org.apache.nifi.util.MockPropertyConfiguration;
import org.apache.nifi.util.NoOpProcessor;
+import org.apache.nifi.util.PropertyMigrationResult;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
import org.junit.jupiter.api.AfterAll;
@@ -80,6 +82,24 @@ class ScriptedReaderTest {
runner.setProperty(recordReaderFactory,
ScriptingComponentUtils.MODULES, (String) null);
}
+ @Test
+ void testMigrateProperties() {
+ final String scriptLanguage = "Script Language";
+ final Map<String, String> propertyValues = Map.of(
+ scriptLanguage, "Groovy"
+ );
+ final MockPropertyConfiguration configuration = new
MockPropertyConfiguration(propertyValues);
+
+ final ScriptedReader scriptedReader = new ScriptedReader();
+ scriptedReader.migrateProperties(configuration);
+
+ final PropertyMigrationResult result =
configuration.toPropertyMigrationResult();
+
+ final Map<String, String> propertiesRenamed =
result.getPropertiesRenamed();
+ final String scriptLanguageRenamed =
propertiesRenamed.get(scriptLanguage);
+
assertEquals(ScriptingComponentHelper.getScriptEnginePropertyBuilder().build().getName(),
scriptLanguageRenamed);
+ }
+
@Test
void testRecordReaderGroovyScript() throws Exception {
Files.copy(Paths.get(SOURCE_DIR, GROOVY_DIR,
"test_record_reader_inline.groovy"), targetScriptFile,
StandardCopyOption.REPLACE_EXISTING);
diff --git
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/reporting/script/ScriptedReportingTaskTest.java
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/reporting/script/ScriptedReportingTaskTest.java
index 51d8033a40..6efab579d7 100644
---
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/reporting/script/ScriptedReportingTaskTest.java
+++
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/reporting/script/ScriptedReportingTaskTest.java
@@ -27,7 +27,9 @@ import org.apache.nifi.script.ScriptingComponentHelper;
import org.apache.nifi.script.ScriptingComponentUtils;
import org.apache.nifi.util.MockConfigurationContext;
import org.apache.nifi.util.MockEventAccess;
+import org.apache.nifi.util.MockPropertyConfiguration;
import org.apache.nifi.util.MockReportingContext;
+import org.apache.nifi.util.PropertyMigrationResult;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -69,17 +71,35 @@ class ScriptedReportingTaskTest {
private MockReportingContext reportingContext;
@BeforeEach
- public void setUp(@Mock ComponentLog logger) {
+ public void setUp() {
task = new MockScriptedReportingTask();
properties = new HashMap<>();
configurationContext = new MockConfigurationContext(properties, null,
null);
reportingContext = new MockReportingContext(new LinkedHashMap<>(),
null);
-
when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
- when(initContext.getLogger()).thenReturn(logger);
+ }
+
+ @Test
+ void testMigrateProperties() {
+ final String scriptLanguage = "Script Language";
+ final Map<String, String> propertyValues = Map.of(
+ scriptLanguage, "Groovy"
+ );
+ final MockPropertyConfiguration configuration = new
MockPropertyConfiguration(propertyValues);
+
+ final ScriptedReportingTask scriptedReportingTask = new
ScriptedReportingTask();
+ scriptedReportingTask.migrateProperties(configuration);
+
+ final PropertyMigrationResult result =
configuration.toPropertyMigrationResult();
+
+ final Map<String, String> propertiesRenamed =
result.getPropertiesRenamed();
+ final String scriptLanguageRenamed =
propertiesRenamed.get(scriptLanguage);
+
assertEquals(ScriptingComponentHelper.getScriptEnginePropertyBuilder().build().getName(),
scriptLanguageRenamed);
}
@Test
void testProvenanceGroovyScript() throws Exception {
+ setInitializationContext();
+
properties.put(SCRIPT_ENGINE_PROPERTY_DESCRIPTOR, GROOVY);
Files.copy(Paths.get("src/test/resources/groovy/test_log_provenance_events.groovy"),
targetPath, StandardCopyOption.REPLACE_EXISTING);
properties.put(ScriptingComponentUtils.SCRIPT_FILE,
targetPath.toString());
@@ -111,6 +131,8 @@ class ScriptedReportingTaskTest {
@Test
void testVMEventsGroovyScript() throws Exception {
+ setInitializationContext();
+
properties.put(SCRIPT_ENGINE_PROPERTY_DESCRIPTOR, GROOVY);
Files.copy(Paths.get("src/test/resources/groovy/test_log_vm_stats.groovy"),
targetPath, StandardCopyOption.REPLACE_EXISTING);
properties.put(ScriptingComponentUtils.SCRIPT_FILE,
targetPath.toString());
@@ -126,6 +148,11 @@ class ScriptedReportingTaskTest {
assertTrue(x.get("uptime") >= 0);
}
+ private void setInitializationContext() {
+
when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
+ when(initContext.getLogger()).thenReturn(mock(ComponentLog.class));
+ }
+
private void run() throws Exception {
task.initialize(initContext);
task.getSupportedPropertyDescriptors();