- 
                Notifications
    
You must be signed in to change notification settings  - Fork 19
 
Open
Labels
Description
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.