order of manifest entries

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

order of manifest entries

Johannes Zillmann
Hi there,

have specified a custom manifest:
  manifest.mainAttributes([ 
    'Implementation-Title': 'Katta', 
    'Implementation-Version': version, 
    'Compile-Time': new java.util.Date().toString(),
    'Compiled-By': System.getProperty("user.name"),
    'SVN-Revision': svnInfo.getRevision()+"",
    'SVN-URL': svnInfo.getUrl() +" -r "+svnInfo.getRevision()
    ]

The created manifest looks like 

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 1.5.0_13-119 (Apple Inc.)
Compiled-By: jz
SVN-Revision: 199
Implementation-Title: Katta
Compile-Time: Fri Sep 12 16:42:51 CEST 2008
Implementation-Version: 1.0-SNAPSHOT

Would it be hard to modify gradle to keep the order of the manifest entries  ?

bets regards
Johannes

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101tec GmbH
Halle (Saale), Saxony-Anhalt, Germany

Reply | Threaded
Open this post in threaded view
|

Re: order of manifest entries

hans_d
Administrator
Hi Johannes,

On Sep 12, 2008, at 4:48 PM, Johannes Zillmann wrote:

> Hi there,
>
> have specified a custom manifest:
>   manifest.mainAttributes([
>     'Implementation-Title': 'Katta',
>     'Implementation-Version': version,
>     'Compile-Time': new java.util.Date().toString(),
>     'Compiled-By': System.getProperty("user.name"),
>     'SVN-Revision': svnInfo.getRevision()+"",
>     'SVN-URL': svnInfo.getUrl() +" -r "+svnInfo.getRevision()
>     ])
>
> The created manifest looks like
>
> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.7.0
> Created-By: 1.5.0_13-119 (Apple Inc.)
> Compiled-By: jz
> SVN-Revision: 199
> Implementation-Title: Katta
> Compile-Time: Fri Sep 12 16:42:51 CEST 2008
> Implementation-Version: 1.0-SNAPSHOT
> SVN-URL: https://katta.svn.sourceforge.net/svnroot/katta/trunk -r 199
>
> Would it be hard to modify gradle to keep the order of the manifest  
> entries  ?

we delegate to the java.util.jar.Manifest class. I had a look in the  
code and it looks like that this class and its helper classes are  
using plain hashmap's for storing the value. In contrast to a  
LinkedHashMap, those plain maps do not preserve the order. This is a  
bit disappointing. Please file a Jira. I will investigate further. I  
think preserving the order is pretty important as the manifest file  
is also for humans to read.

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: order of manifest entries

Johannes Zillmann
Hi Hans,

thanks for looking into this!


Johannes

On Sep 12, 2008, at 6:20 PM, Hans Dockter wrote:

Hi Johannes,

On Sep 12, 2008, at 4:48 PM, Johannes Zillmann wrote:

Hi there,

have specified a custom manifest:
 manifest.mainAttributes([
   'Implementation-Title': 'Katta',
   'Implementation-Version': version,
   'Compile-Time': new java.util.Date().toString(),
   'Compiled-By': System.getProperty("user.name"),
   'SVN-Revision': svnInfo.getRevision()+"",
   'SVN-URL': svnInfo.getUrl() +" -r "+svnInfo.getRevision()
   ])

The created manifest looks like

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 1.5.0_13-119 (Apple Inc.)
Compiled-By: jz
SVN-Revision: 199
Implementation-Title: Katta
Compile-Time: Fri Sep 12 16:42:51 CEST 2008
Implementation-Version: 1.0-SNAPSHOT
SVN-URL: https://katta.svn.sourceforge.net/svnroot/katta/trunk -r 199

Would it be hard to modify gradle to keep the order of the manifest entries  ?

we delegate to the java.util.jar.Manifest class. I had a look in the code and it looks like that this class and its helper classes are using plain hashmap's for storing the value. In contrast to a LinkedHashMap, those plain maps do not preserve the order. This is a bit disappointing. Please file a Jira. I will investigate further. I think preserving the order is pretty important as the manifest file is also for humans to read.

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

  http://xircles.codehaus.org/manage_email




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101tec GmbH
Halle (Saale), Saxony-Anhalt, Germany