gnodet opened a new pull request, #13555:
URL: https://github.com/apache/maven/pull/13555
Backport of the `DefaultProfileActivationContext` fix from #13545
(maven-4.0.x) to master.
## Problem
The `start(Map<String,String>)` method, introduced by #10375 to let parent
file profiles resolve path placeholders (e.g. `${message.file}`), passed the
parent's properties via `model.withProperties()`. This made them accessible
through `getModelProperty()` and thus able to self-activate property-based and
condition-based profiles — exactly the regression that #13390 aimed to fix.
On master, the two fixes were applied independently:
- #10375 fix (via `ce26838`): added `start(Map)` using
`model.withProperties()`
- #13390 fix (PR #13450, merged today): removed the model-property merge
from the external sandbox
This leaves a gap: parent file profiles using property placeholders (#10375)
are broken again on master because the properties are no longer available at
all.
## Fix
Introduce a dedicated `interpolationProperties` field that is checked only
inside `interpolate()`, before the model's own properties. This correctly
handles both concerns:
- Path interpolation in parent file profiles still works (`${message.file}`
resolves via `interpolationProperties`)
- Those same properties are NOT exposed via `getModelProperty()`, so they
cannot self-activate property-based or condition-based profiles
The call site in `DefaultModelBuilder`
(`recording.start(model.getProperties())`) is unchanged — it now correctly
provides those properties for interpolation-only use.
Fixes #10375 (regression on master after #13390 fix).
--
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]