Tarun4201 commented on PR #13406:
URL: https://github.com/apache/maven/pull/13406#issuecomment-6107786868
Thanks for the thorough review and guidance, @gnodet!
I have addressed all the feedback in the latest commit:
1. **Reverted changes to `@Deprecated` `compat` module**:
- Completely reverted `compat/maven-model-builder` changes and removed
the compat test. All profile-scoped property resolution logic is now isolated
strictly within `impl`.
2. **Collapsed to a single resolution path & prevented inactive profile
leakage**:
- Reverted `DefaultModelInterpolator` back to its original implementation.
- Profile-scoped properties (`profile.<id>.<key>` and
`profiles.<id>.<key>`) are now populated solely via
`DefaultProfileInjector.injectProfiles()`, which only receives active profiles.
This ensures inactive profiles cannot bleed into interpolation, removes the
redundant dual-resolution path, and leaves `${project.X}` accessors and
existing resolution semantics unchanged.
3. **Guarded dot-separator ambiguity**:
- Since scoped properties are registered directly into the model's
properties map with their full namespaced keys (`"profile." + profileId + "." +
key` and `"profiles." + profileId + "." + key`), interpolation uses exact map
lookups, eliminating any prefix-matching collision between profiles (e.g.,
`foo` vs. `foo.bar`).
4. **Added `InputLocation` tracking in `impl`**:
- Updated `DefaultProfileInjector` to record `InputLocation` on both
singular and plural scoped entries (`builder.location(prefix + key, loc)`),
matching the source location of the original property.
5. **Updated test suite**:
- Updated `ProfileScopePropertiesTest` to verify collision-free
resolution across active profiles, accurate `InputLocation` tracking, and that
inactive profiles are not injected into model properties.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]