[
https://issues.apache.org/jira/browse/MNG-7417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17527099#comment-17527099
]
Hudson commented on MNG-7417:
-----------------------------
Build failed in Jenkins: Maven » Maven TLP » maven » MNG-7457 #2
See
https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven/job/MNG-7457/2/
> Several classes do not set properties properly for building requests
> --------------------------------------------------------------------
>
> Key: MNG-7417
> URL: https://issues.apache.org/jira/browse/MNG-7417
> Project: Maven
> Issue Type: Bug
> Components: Artifacts and Repositories, Inheritance and Interpolation
> Affects Versions: 3.8.4
> Reporter: Michael Osipov
> Assignee: Sylwester Lachiewicz
> Priority: Major
> Fix For: 3.8.5, 4.0.0-alpha-1, 4.0.0
>
> Attachments: log.txt
>
>
> A sample case for this bug is {{DefaultArtifactDescriptorReader}}:
> When Resolver needs to resolve a transitive dependency it consults Maven
> Resolver Provider to create data. Here the properties of the repository
> system session are not properly passed with their respective scopes down to
> the model building request. When a POM now needs needs to be interpolated,
> the interpolation can fail.
> For long time Maven, unfortunately, promoted user properties to system
> properties making the available everywhere (expect this to be cleaned up in
> Maven 4). A prime example where this is broken:
> {{DefaultModelVersionProcessor}} uses for some strange reason system
> properties although CI Friendly Versions are user properties only. Fixing
> this component with:
> {noformat}
> ---
> a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
> +++
> b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
> @@ -52,17 +52,17 @@ public boolean isValidProperty( String property )
> @Override
> public void overwriteModelProperties( Properties modelProperties,
> ModelBuildingRequest request )
> {
> - if ( request.getSystemProperties().containsKey( REVISION_PROPERTY ) )
> + if ( request.getUserProperties().containsKey( REVISION_PROPERTY ) )
> {
> - modelProperties.put( REVISION_PROPERTY,
> request.getSystemProperties().get( REVISION_PROPERTY ) );
> + modelProperties.put( REVISION_PROPERTY,
> request.getUserProperties().get( REVISION_PROPERTY ) );
> }
> - if ( request.getSystemProperties().containsKey( CHANGELIST_PROPERTY
> ) )
> + if ( request.getUserProperties().containsKey( CHANGELIST_PROPERTY ) )
> {
> - modelProperties.put( CHANGELIST_PROPERTY,
> request.getSystemProperties().get( CHANGELIST_PROPERTY ) );
> + modelProperties.put( CHANGELIST_PROPERTY,
> request.getUserProperties().get( CHANGELIST_PROPERTY ) );
> }
> - if ( request.getSystemProperties().containsKey( SHA1_PROPERTY ) )
> + if ( request.getUserProperties().containsKey( SHA1_PROPERTY ) )
> {
> - modelProperties.put( SHA1_PROPERTY,
> request.getSystemProperties().get( SHA1_PROPERTY ) );
> + modelProperties.put( SHA1_PROPERTY,
> request.getUserProperties().get( SHA1_PROPERTY ) );
> }
> }
> {noformat}
> and running ITs makes several of them fail:
> {noformat}
> ...
> mng6090 CIFriendly.itShouldResolveTheDependenciesWithBuildConsumer() FAILURE
> (10.4 s)
> mng6090 CIFriendly.itShouldResolveTheDependenciesWithoutBuildConsumer()
> FAILURE (1.2 s)
> ...
> mng5895
> CIFriendlyUsageWithProperty.itShouldResolveTheDependenciesWithBuildConsumer()
> FAILURE (0.5 s)
> mng5895
> CIFriendlyUsageWithProperty.itShouldResolveTheDependenciesWithoutBuildConsumer()
> FAILURE (0.5 s)
> ...
> {noformat}
> The reason is simple:
> {code:java}
> modelRequest.setSystemProperties( toProperties(
> session.getUserProperties(),
>
> session.getSystemProperties() ) );
> {code}
> Properties from user are not available. The are likely other usecases
> affected by this bug.
> Yet another problem is that plugins which resolve dependencies, e.g.,
> MASSEMBLY will also fail even if this bug is fixed since they rely on an old
> version of the Maven Resolver Provider and don't use provided scope to use
> the fixed one from Maven Core. This is a separate problem to be solved.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)