diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java index 70b6f115..9c99ddbf 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java @@ -44,9 +44,9 @@ import org.apache.bigtop.manager.server.model.vo.ServiceVO; import org.apache.bigtop.manager.server.service.ServiceService; import org.apache.bigtop.manager.server.utils.PageUtils; - import org.apache.bigtop.manager.server.utils.StackConfigUtils; import org.apache.bigtop.manager.server.utils.StackUtils; + import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -57,7 +57,6 @@ import lombok.extern.slf4j.Slf4j; import jakarta.annotation.Resource; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java index 16e061c6..430172e4 100644 --- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java +++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackConfigUtils.java @@ -18,8 +18,6 @@ */ package org.apache.bigtop.manager.server.utils; -import dev.langchain4j.agent.tool.P; -import org.apache.bigtop.manager.dao.repository.ServiceConfigDao; import org.apache.bigtop.manager.server.model.dto.AttrsDTO; import org.apache.bigtop.manager.server.model.dto.PropertyDTO; import org.apache.bigtop.manager.server.model.dto.ServiceConfigDTO; @@ -30,6 +28,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; + import org.springframework.beans.BeanUtils; import java.util.ArrayList; @@ -74,7 +73,8 @@ private static PropertyDTO getPropertyDTO(PropertyModel propertyModel) { return propertyDTO; } - public static List mergeServiceConfigs(List oriConfigs, List overrideConfigs) { + public static List mergeServiceConfigs( + List oriConfigs, List overrideConfigs) { // To avoid to change the original configs, we use cloned object List mergedConfigs = new ArrayList<>(); for (ServiceConfigDTO oriConfig : oriConfigs) { @@ -87,6 +87,15 @@ public static List mergeServiceConfigs(List return mergedConfigs; } + // Assign id for each service config + for (ServiceConfigDTO config : mergedConfigs) { + config.setId(overrideConfigs.stream() + .filter(x -> x.getName().equals(config.getName())) + .findFirst() + .map(ServiceConfigDTO::getId) + .orElse(null)); + } + Map> overrideConfigsMap = serviceConfig2Map(overrideConfigs); for (ServiceConfigDTO mergedConfig : mergedConfigs) { String configName = mergedConfig.getName(); @@ -104,7 +113,7 @@ public static List mergeServiceConfigs(List } } - // We still have some properties, maybe added by user manually + // We may still have some properties added by user manually if (MapUtils.isNotEmpty(overridePropertiesMap)) { for (Map.Entry entry : overridePropertiesMap.entrySet()) { PropertyDTO property = new PropertyDTO();