All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cloudfoundry.multiapps.controller.process.util.ConfigurationEntryDynamicParameterResolver Maven / Gradle / Ivy

There is a newer version: 1.183.0
Show newest version
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