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]

Reply via email to