Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
in the current implementation the binary data of a package is always copied to a file before it's handled. because the meta-inf files might not be at the beginning of the stream. this might be a considerable performance drain when uploading large packages.
in order to change this, the entire archive handling needs to be rewritten. i.e. the current way of copying the input stream to a tmp-file is "optimal" in this respect because the file is not regenerated when the package is accessed for installing.
using a jar file a format might be possible - but is not controllable since we deliberately allow any kind of zips for packages that were not created by a jar-tool, package manager, vlt etc.
however, another fast approach would be to scan-and-copy the package into the repository and extract at the same time the relevant metadata. since the stream is consumed during ValueFactory.createValue(),
the proper packageId can be used to create the path and no tmp-location is needed.