This is an automated email from the ASF dual-hosted git repository. SvenO3 pushed a commit to branch fix-adapter-script-migration-for-file-stream-adapter in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit aede3ef64957eeac4f33973eac24c701696740e0 Author: Sven Oehler <[email protected]> AuthorDate: Wed Jul 22 11:56:02 2026 +0200 Update migration to handle existing transformation configs --- .../v099/connect/MigrateAdaptersToUseScript.java | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v099/connect/MigrateAdaptersToUseScript.java b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v099/connect/MigrateAdaptersToUseScript.java index 3cad25f3b2..6803d36856 100644 --- a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v099/connect/MigrateAdaptersToUseScript.java +++ b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/migrations/v099/connect/MigrateAdaptersToUseScript.java @@ -36,11 +36,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; public class MigrateAdaptersToUseScript implements Migration { private static final Logger LOG = LoggerFactory.getLogger(MigrateAdaptersToUseScript.class); + private static final String SCRIPT_LANGUAGE = "javascript"; private final IAdapterStorage adapterStorage; @@ -86,7 +88,7 @@ public class MigrateAdaptersToUseScript implements Migration { removeAdditionalMetadata(adapter); // migration logic for a single adapter - var config = initializeTransformationConfig(); + var config = initializeTransformationConfig(adapter.getTransformationConfig()); var scriptBuilder = TransformationScriptBuilder.create(); @@ -121,14 +123,26 @@ public class MigrateAdaptersToUseScript implements Migration { } - private TransformationConfig initializeTransformationConfig() { + private TransformationConfig initializeTransformationConfig(TransformationConfig oldConfig) { var config = new TransformationConfig(); - config.setLanguage("javascript"); - config.setInputs(new ArrayList<>()); - config.setOutputs(new ArrayList<>()); + config.setLanguage(SCRIPT_LANGUAGE); + + if (oldConfig == null) { + return config; + } + + config.setInputs(copyOrEmpty(oldConfig.getInputs())); + config.setOutputs(copyOrEmpty(oldConfig.getOutputs())); + config.setReduceEventRateRule(oldConfig.getReduceEventRateRule()); + config.setRemoveDuplicateRule(oldConfig.getRemoveDuplicateRule()); + return config; } + private List<Map<String, Object>> copyOrEmpty(List<Map<String, Object>> values) { + return values == null ? new ArrayList<>() : new ArrayList<>(values); + } + /** * Removes deprecated parser configuration options from the adapter's "format" -> "Json" configuration. * <p>
