Fix component spec parsing (#1370)

* Fix component spec parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* Fix component spec parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* Fix component spec metadata parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* fix checkstyle-error

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

---------

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: artur-ciocanu <artur.ciocanu@gmail.com>
This commit is contained in:
iddeepak 2025-05-20 05:02:09 +05:30 committed by GitHub
parent c07e07b782
commit e4cc0303fa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 15 deletions

View File

@ -210,21 +210,19 @@ public class DaprContainer extends GenericContainer<DaprContainer> {
try {
Map<String, Object> component = YAML_MAPPER.loadAs(Files.newInputStream(path), Map.class);
String type = (String) component.get("type");
Map<String, Object> metadata = (Map<String, Object>) component.get("metadata");
String name = (String) metadata.get("name");
Map<String, Object> spec = (Map<String, Object>) component.get("spec");
String type = (String) spec.get("type");
String version = (String) spec.get("version");
List<Map<String, String>> specMetadata =
(List<Map<String, String>>) spec.getOrDefault("metadata", Collections.emptyMap());
(List<Map<String, String>>) spec.getOrDefault("metadata", Collections.emptyList());
ArrayList<MetadataEntry> metadataEntries = new ArrayList<>();
for (Map<String, String> specMetadataItem : specMetadata) {
for (Map.Entry<String, String> metadataItem : specMetadataItem.entrySet()) {
metadataEntries.add(new MetadataEntry(metadataItem.getKey(), metadataItem.getValue()));
}
metadataEntries.add(new MetadataEntry(specMetadataItem.get("name"), specMetadataItem.get("value")));
}
return withComponent(new Component(name, type, version, metadataEntries));

View File

@ -69,20 +69,14 @@ public class DaprComponentTest {
+ "metadata:\n"
+ " name: statestore\n"
+ "spec:\n"
+ " type: null\n"
+ " type: state.redis\n"
+ " version: v1\n"
+ " metadata:\n"
+ " - name: name\n"
+ " value: keyPrefix\n"
+ " - name: value\n"
+ " - name: keyPrefix\n"
+ " value: name\n"
+ " - name: name\n"
+ " value: redisHost\n"
+ " - name: value\n"
+ " - name: redisHost\n"
+ " value: redis:6379\n"
+ " - name: name\n"
+ " value: redisPassword\n"
+ " - name: value\n"
+ " - name: redisPassword\n"
+ " value: ''\n";
assertEquals(expectedComponentYaml, componentYaml);