hiero-ledger / hiero-ledger/hiero-consensus-node
Refactor all ConfigSources to support lists
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
With https://github.com/hashgraph/hedera-services/pull/17088 we introduced lists.
Before this was not supported by the `ConfigSource` still it was possible by convention to get comma separated values as lists.
Now we have some "hack" in the `ConfigurationImpl.java` to support both methods:
```
if (!propertiesService.isListProperty(propertyName)) {
final String value = getValue(propertyName);
values = ConfigListUtils.createList(value);
} else {
values = getValues(propertyName);
}
```
This should be refactored and in the same way the `AbstractConfigSource` can be refactored to support list properties in a generic way
Contributor guide
Research direction
Start by reading ConfigurationImpl.java and AbstractConfigSource, then compare their current scalar and list handling with the list support introduced in pull request 17088. Trace the other ConfigSource implementations to identify duplicated behavior. Done means list properties are handled generically without the special-case logic in ConfigurationImpl, with the existing configuration tests still passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100