From c5a249ef03969d4141eee81740cd8560d45cfca6 Mon Sep 17 00:00:00 2001 From: Vijay N Date: Fri, 21 Nov 2025 15:34:07 +0530 Subject: [PATCH] Serialized collection configs as comma separated strings in RuntimeConfigRegistryRetry. --- .../config/AugmentedConfigurationObjectFactory.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java b/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java index 63d5dc05..8734489d 100644 --- a/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java +++ b/config-magic/src/main/java/org/skife/config/AugmentedConfigurationObjectFactory.java @@ -19,8 +19,11 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Collection; import java.util.Map; +import java.util.Objects; import java.util.Properties; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +80,13 @@ private void collectConfigValues(final Class configClass, key = applyReplacements(key, mappedReplacements); } - RuntimeConfigRegistry.putWithSource(configSource, key, value); + RuntimeConfigRegistry.putWithSource(configSource, key, + value instanceof Collection + ? ((Collection) value).stream() + .filter(Objects::nonNull) + .map(String::valueOf) + .collect(Collectors.joining(",")) + : value); } } catch (final IllegalAccessException | InvocationTargetException e) { log.warn("Failed to resolve config method: {}", method.getName(), e);