org.cloudfoundry.multiapps.controller.process.util.ConfigurationEntryDynamicParameterResolver Maven / Gradle / Ivy
package org.cloudfoundry.multiapps.controller.process.util;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import jakarta.inject.Named;
import org.cloudfoundry.multiapps.common.util.JsonUtil;
import org.cloudfoundry.multiapps.common.util.MiscUtil;
import org.cloudfoundry.multiapps.controller.core.helpers.DynamicResolvableParametersHelper;
import org.cloudfoundry.multiapps.controller.core.model.DynamicResolvableParameter;
import org.cloudfoundry.multiapps.controller.core.resolvers.v3.DynamicParametersResolver;
import org.cloudfoundry.multiapps.controller.core.util.ConfigurationEntriesUtil;
import org.cloudfoundry.multiapps.controller.persistence.model.ConfigurationEntry;
import org.cloudfoundry.multiapps.mta.helpers.VisitableObject;
@Named
public class ConfigurationEntryDynamicParameterResolver {
public List
resolveDynamicParametersOfConfigurationEntries(List entriesToPublish,
Set dynamicResolvableParameters) {
return entriesToPublish.stream()
.map(entry -> resolveDynamicParametersOfConfigurationEntry(entry, dynamicResolvableParameters))
.collect(Collectors.toList());
}
private ConfigurationEntry resolveDynamicParametersOfConfigurationEntry(ConfigurationEntry entry,
Set dynamicResolvableParameters) {
DynamicParametersResolver resolver = new DynamicParametersResolver(entry.getConfigurationName(),
new DynamicResolvableParametersHelper(dynamicResolvableParameters));
Map map = JsonUtil.convertJsonToMap(entry.getContent());
Map resolvedServiceParameters = MiscUtil.cast(new VisitableObject(map).accept(resolver));
if (!resolvedServiceParameters.isEmpty()) {
return ConfigurationEntriesUtil.setContent(entry, JsonUtil.toJson(resolvedServiceParameters));
}
return entry;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy