Skip to content
Snippets Groups Projects
Commit 288a5886 authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7609 flatten PropertySource

parent 586ad4e0
No related branches found
No related tags found
1 merge request!11OZG-7609 provide aggregation manager config endpoint without auhtantication
......@@ -55,6 +55,7 @@
<zufi-manager.version>1.6.0</zufi-manager.version>
<shedlock.version>5.16.0</shedlock.version>
<spring-vault-core.version>3.1.2</spring-vault-core.version>
</properties>
<dependencies>
......@@ -149,6 +150,11 @@
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.vault</groupId>
<artifactId>spring-vault-core</artifactId>
<version>${spring-vault-core.version}</version>
</dependency>
<!-- commons -->
<dependency>
......
......@@ -33,6 +33,7 @@ import org.springframework.cloud.config.environment.Environment;
import org.springframework.cloud.config.environment.PropertySource;
import org.springframework.cloud.config.server.environment.EnvironmentRepository;
import org.springframework.stereotype.Component;
import org.springframework.vault.support.JsonMapFlattener;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
......@@ -74,8 +75,9 @@ public class SettingEnvironmentRepository implements EnvironmentRepository {
}
PropertySource transformToPropertySource(ApplicationSettingDTO settingDTO) {
return new PropertySource(StringUtils.EMPTY, objectMapper.convertValue(settingDTO, new TypeReference<Map<String, Object>>() {
}));
return new PropertySource(StringUtils.EMPTY,
JsonMapFlattener.flatten(objectMapper.convertValue(settingDTO, new TypeReference<Map<String, Object>>() {
})));
}
}
......@@ -36,7 +36,7 @@ import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import de.ozgcloud.admin.setting.YamlTestFactory;
import de.ozgcloud.admin.setting.PropertiesTestFactory;
import de.ozgcloud.common.test.DataITCase;
import lombok.SneakyThrows;
......@@ -63,36 +63,36 @@ public class AggregationMappingEnvironmentSettingITCase {
var result = getAggregationSettings();
assertThat(result.andReturn().getResponse().getContentAsString())
.isEqualTo(YamlTestFactory.createAggregationYaml());
.isEqualTo(PropertiesTestFactory.createAggregationProperties());
}
private ResultActions getAggregationSettings() throws Exception {
return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager-any.yaml"))
return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager/default"))
.andExpect(status().isOk());
}
private void fillDbWithAggregationMappings() {
var aggregationMapping1 = AggregationMapping.builder()
.formIdentifier(AggregationMapping.FormIdentifier.builder()
.formEngineName(YamlTestFactory.FORM_ENGINE_NAME_1)
.formId(YamlTestFactory.FORM_ID_1)
.formEngineName(PropertiesTestFactory.FORM_ENGINE_NAME_1)
.formId(PropertiesTestFactory.FORM_ID_1)
.build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_1)
.targetPath(YamlTestFactory.TARGET_PATH_1_1).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_2)
.targetPath(YamlTestFactory.TARGET_PATH_1_2).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_3)
.targetPath(YamlTestFactory.TARGET_PATH_1_3).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_1)
.targetPath(PropertiesTestFactory.TARGET_PATH_1_1).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_2)
.targetPath(PropertiesTestFactory.TARGET_PATH_1_2).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_1_3)
.targetPath(PropertiesTestFactory.TARGET_PATH_1_3).build())
.build();
var aggregationMapping2 = AggregationMapping.builder()
.formIdentifier(AggregationMapping.FormIdentifier.builder()
.formEngineName(YamlTestFactory.FORM_ENGINE_NAME_2)
.formId(YamlTestFactory.FORM_ID_2)
.formEngineName(PropertiesTestFactory.FORM_ENGINE_NAME_2)
.formId(PropertiesTestFactory.FORM_ID_2)
.build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_1)
.targetPath(YamlTestFactory.TARGET_PATH_2_1).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_2)
.targetPath(YamlTestFactory.TARGET_PATH_2_2).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_2_1)
.targetPath(PropertiesTestFactory.TARGET_PATH_2_1).build())
.mapping(AggregationMapping.FieldMapping.builder().sourcePath(PropertiesTestFactory.SOURCE_PATH_2_2)
.targetPath(PropertiesTestFactory.TARGET_PATH_2_2).build())
.build();
mongoOperations.dropCollection(AggregationMapping.COLLECTION_NAME);
......
......@@ -31,7 +31,7 @@ import de.ozgcloud.admin.setting.postfach.PostfachSettingBody;
import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory;
import de.ozgcloud.common.test.TestUtils;
public class YamlTestFactory {
public class PropertiesTestFactory {
public static final PostfachSettingBody POSTFACH = PostfachSettingBodyTestFactory.create();
public static final String FORM_ENGINE_NAME_1 = LoremIpsum.getInstance().getWords(1);
......@@ -72,8 +72,8 @@ public class YamlTestFactory {
return TestUtils.loadTextFile("yamlTemplates/settings/initial.yaml.tmpl");
}
public static String createAggregationYaml() {
return TestUtils.loadTextFile("yamlTemplates/settings/aggregation.yaml.tmpl",
public static String createAggregationProperties() {
return TestUtils.loadTextFile("yamlTemplates/settings/aggregation.json.tmpl",
FORM_ENGINE_NAME_1,
FORM_ID_1,
SOURCE_PATH_1_1,
......
......@@ -80,7 +80,8 @@ class SettingEnvironmentITCase {
void shouldHandleEmptySetting() {
var result = getAlfaSettings();
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createInitialYaml());
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
.isEqualTo(PropertiesTestFactory.createInitialYaml());
}
}
......@@ -97,7 +98,7 @@ class SettingEnvironmentITCase {
void shouldReturnValuesForAlfa() {
var result = getAlfaSettings();
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createAlfaYaml());
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(PropertiesTestFactory.createAlfaYaml());
}
}
......@@ -122,7 +123,8 @@ class SettingEnvironmentITCase {
void shouldHandleEmptySetting() {
var result = getVorgangManagerSettings();
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString())).isEqualTo(YamlTestFactory.createInitialYaml());
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
.isEqualTo(PropertiesTestFactory.createInitialYaml());
}
}
......@@ -140,7 +142,7 @@ class SettingEnvironmentITCase {
var result = getVorgangManagerSettings();
assertThat(formatLineBreaks(result.andReturn().getResponse().getContentAsString()))
.isEqualTo(YamlTestFactory.createVorgangManagerYaml());
.isEqualTo(PropertiesTestFactory.createVorgangManagerYaml());
}
}
......
......@@ -198,10 +198,13 @@ class SettingEnvironmentRepositoryTest {
@JsonUnwrapped(prefix = "attribute.")
@Getter
private ApplicationSettingDTO attribute = new ApplicationSettingDTO() {
@Getter
private ApplicationSettingDTO nestedAttribute = new ApplicationSettingDTO() {
@Getter
private String nestedAttribute = "innerValue";
};
};
};
@Test
void shouldReturnPropertySourceOfFlatObject() {
......@@ -213,8 +216,8 @@ class SettingEnvironmentRepositoryTest {
}
@Test
void shouldReturnPropertySourceOfNestedObject() {
var expectedPropertySource = new PropertySource(StringUtils.EMPTY, Map.of("attribute.nestedAttribute", "innerValue"));
void shouldReturnPropertySourceOfFlattenedNestedObject() {
var expectedPropertySource = new PropertySource(StringUtils.EMPTY, Map.of("attribute.nestedAttribute.nestedAttribute", "innerValue"));
var resultPropertySource = repository.transformToPropertySource(nestedSettingDTO);
......
{"name":"OzgCloud_AggregationManager","profiles":["default"],"label":null,"version":null,"state":null,"propertySources":[{"name":"","source":{"ozgcloud.aggregation.aggregationMappings[0].formIdentifier.formEngineName":"%s","ozgcloud.aggregation.aggregationMappings[0].formIdentifier.formId":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[0].sourcePath":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[0].targetPath":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[1].sourcePath":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[1].targetPath":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[2].sourcePath":"%s","ozgcloud.aggregation.aggregationMappings[0].fieldMappings[2].targetPath":"%s","ozgcloud.aggregation.aggregationMappings[1].formIdentifier.formEngineName":"%s","ozgcloud.aggregation.aggregationMappings[1].formIdentifier.formId":"%s","ozgcloud.aggregation.aggregationMappings[1].fieldMappings[0].sourcePath":"%s","ozgcloud.aggregation.aggregationMappings[1].fieldMappings[0].targetPath":"%s","ozgcloud.aggregation.aggregationMappings[1].fieldMappings[1].sourcePath":"%s","ozgcloud.aggregation.aggregationMappings[1].fieldMappings[1].targetPath":"%s"}}]}
\ No newline at end of file
ozgcloud:
aggregation:
aggregationMappings:
- formIdentifier:
formEngineName: %s
formId: %s
fieldMappings:
- sourcePath: %s
targetPath: %s
- sourcePath: %s
targetPath: %s
- sourcePath: %s
targetPath: %s
- formIdentifier:
formEngineName: %s
formId: %s
fieldMappings:
- sourcePath: %s
targetPath: %s
- sourcePath: %s
targetPath: %s
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment