You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2022/10/09 17:39:00 UTC

[jira] [Updated] (MNG-6801) MavenXpp3Writer doesn't retain structure of properties

     [ https://issues.apache.org/jira/browse/MNG-6801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Osipov updated MNG-6801:
--------------------------------
    Summary: MavenXpp3Writer doesn't retain structure of properties  (was: MavenXpp3Writer doesn't retain structure)

> MavenXpp3Writer doesn't retain structure of properties
> ------------------------------------------------------
>
>                 Key: MNG-6801
>                 URL: https://issues.apache.org/jira/browse/MNG-6801
>             Project: Maven
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>            Reporter: Liana Lupsa
>            Assignee: Guillaume Nodet
>            Priority: Major
>             Fix For: 4.0.0-alpha-1, 4.0.0
>
>
> Context: 
>  We are using pipeline-utility-steps-plugin which is a jenkins plugin which uses the following classes:
>  [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/ReadMavenPomStep.java].
>  [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/WriteMavenPomStep.java#L32]
>  In our Jenkins file we have a stage that overwrites the version in the pom with the computed version and for this we need pipeline-utility-steps-plugin.
> The problem is that the tags in the pom.xml are never retained in the same order. The elements in the pom file are completelly rearranged.
>  For consistency reasons and idempotency we need to retain the structure and simply update one line.
> Status:
>  After evaluating the plugin code we noticed that it uses: 
>  [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/WriteMavenPomStep.java#L32]
>  and imports:
>  import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
>  with [https://maven.apache.org/ref/3.3.9/maven-model/apidocs/src-html/org/apache/maven/model/io/xpp3/MavenXpp3Writer.html]
>  which uses 
>  XmlSerializer serializer = new MXSerializer();
>  [https://github.com/sonatype/plexus-utils/blob/master/src/main/java/org/codehaus/plexus/util/xml/pull/MXSerializer.java]
>  We think that maven XmlSerializer causes this problem.
> Example of the pom.xml changes:
> first build trigger:
> run 1:
> <properties>
>  <javax.version>3.1.0</javax.version>
>  <mockito.version>1.10.19</mockito.version>
>  <hamcrest.version>2.1</hamcrest.version>
>  <openam.version>6.5.1</openam.version>
>  <lombok.version>1.18.6</lombok.version>
>  <junit.version>4.12</junit.version>
>  </properties>
> run 2:
> <properties>
>  <mockito.version>1.10.19</mockito.version>
>  <javax.version>3.1.0</javax.version>
>  <hamcrest.version>2.1</hamcrest.version>
>  <openam.version>6.5.1</openam.version>
>  <lombok.version>1.18.6</lombok.version>
>  <junit.version>4.12</junit.version>
>  </properties>
> ​and run 3: 
> <properties>
>  <javax.version>3.1.0</javax.version>
>  <mockito.version>1.10.19</mockito.version>
>  <hamcrest.version>2.1</hamcrest.version>
>  <openam.version>6.5.1</openam.version>
>  <lombok.version>1.18.6</lombok.version>
>  <junit.version>4.12</junit.version>
>  </properties>



--
This message was sent by Atlassian Jira
(v8.20.10#820010)