In our configuration metadata json file, we have this old property defined
{
"name": "oldProp",
"defaultValue": "${newProp}",
"deprecation": {
"replacement": "newProp"
}
}
We have a separate properties file that defines oldProp=${newProp} to keep backward compatibility (the reason for defaultValue), and we still want IntelliJ (and other tools that read the metadata file) to replace oldProp to newProp (the reason for replacement).
Spring Boot properties migrator automatically creates a migrate-* property source with newProp=${newProp}, which is causing a circular placeholder reference issue when we try to get the property.
Comment From: philwebb
I think we could detect these direct cycles and not add the migration property entry.