[ 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)