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

Peter Donald closed BUILDR-533.
-------------------------------


> Reading the manifest without building the zip index
> ---------------------------------------------------
>
>                 Key: BUILDR-533
>                 URL: https://issues.apache.org/jira/browse/BUILDR-533
>             Project: Buildr
>          Issue Type: Improvement
>          Components: Packaging
>    Affects Versions: 1.4.2
>            Reporter: Antoine Toulme
>            Assignee: Antoine Toulme
>             Fix For: 1.4.3
>
>
> When accessing the MANIFEST file in a jar, the convention in the java world 
> is that it should be the first entry. Actually, quite a few systems will just 
> not work if the MANIFEST.MF file is not the first entry.
> The way we currently access the MANIFEST file is suboptimal as we parse the 
> whole zip, and spend time to build the index. Worse, we run into issues 
> quickly with corrupted zips (we found out Maven3 could also produce some of 
> those, not just Buildr :)).
> Hugues Malphettes provided an other way to access the MANIFEST.MF without 
> building the complete index.
> Around line 58 of packaging.rb
> # :call-seq:
> #   from_zip(file) => manifest
> #
> # Parse the MANIFEST.MF entry of a ZIP (or JAR) file and return a new 
> Manifest.
> def from_zip(file)
>  Zip::ZipInputStream::open(file.to_s) { |io|
>    while (entry = io.get_next_entry)
>      if entry.name == 'META-INF/MANIFEST.MF'
>        return Manifest.parse io.read rescue Manifest.new
>      end
>    end
>  }
>  return Manifest.new
> #            Zip::ZipFile.open(file.to_s) do |zip|
> #              Manifest.parse zip.read('META-INF/MANIFEST.MF') rescue
> Manifest.new
> #            end
> end

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to