Skip to content

Writers don't sort members from super to this #71

Description

@michael-o

Have a model which references a superclass:
https://github.com/apache/maven/blob/72688805c4f95f8ab4ca9ab2ac2cd114667790c9/maven-settings/src/main/mdo/settings.mdo#L506-L508
The generated SettingsXpp3Writer sorts:

    private void writeServer( Server server, String tagName, XmlSerializer serializer )
        throws java.io.IOException
    {
        serializer.startTag( NAMESPACE, tagName );
        if ( server.getUsername() != null )
        {
            serializer.startTag( NAMESPACE, "username" ).text( server.getUsername() ).endTag( NAMESPACE, "username" );
        }
        if ( server.getPassword() != null )
        {
            serializer.startTag( NAMESPACE, "password" ).text( server.getPassword() ).endTag( NAMESPACE, "password" );
        }
        if ( server.getPrivateKey() != null )
        {
            serializer.startTag( NAMESPACE, "privateKey" ).text( server.getPrivateKey() ).endTag( NAMESPACE, "privateKey" );
        }
        if ( server.getPassphrase() != null )
        {
            serializer.startTag( NAMESPACE, "passphrase" ).text( server.getPassphrase() ).endTag( NAMESPACE, "passphrase" );
        }
        if ( server.getFilePermissions() != null )
        {
            serializer.startTag( NAMESPACE, "filePermissions" ).text( server.getFilePermissions() ).endTag( NAMESPACE, "filePermissions" );
        }
        if ( server.getDirectoryPermissions() != null )
        {
            serializer.startTag( NAMESPACE, "directoryPermissions" ).text( server.getDirectoryPermissions() ).endTag( NAMESPACE, "directoryPermissions" );
        }
        if ( server.getConfiguration() != null )
        {
            ((Xpp3Dom) server.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
        }
        if ( ( server.getId() != null ) && !server.getId().equals( "default" ) )
        {
            serializer.startTag( NAMESPACE, "id" ).text( server.getId() ).endTag( NAMESPACE, "id" );
        }
        serializer.endTag( NAMESPACE, tagName );
    } //-- void writeServer( Server, String, XmlSerializer )

All members from the super class at the end which makes the output look awkward. Super elements come last while the should be first.

Here is a sample output:

  <servers>
    <server>
      <username>maven</username>
      <password>***</password>
      <id>repoman</id>
    </server>
  </servers>

Expected output is:

super
super
..
super
this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions