[
https://issues.apache.org/jira/browse/DAFFODIL-3082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guichard Desrosiers updated DAFFODIL-3082:
------------------------------------------
Description:
Current gzip layer tests use the default compression level(level 6), but that
yields different output between classic zlib vs zlib-ng for the same output
sometimes. Setting the default level to 9 instead yields deterministic output,
but level 9 is slow and may not reflect typical DFDL use. Make the gzip
compression level configurable via layer parameters, with a default of -1 to
use the JDK/zlib default, and allow tests to set a deterministic level when
needed.
Some JDK distributions (e.g., Temurin) bundle their own zlib implementation
with {{{}java.util.zip{}}}, using the classic stock zlib, while others link to
the system zlib, which may be stock zlib or zlib-ng depending on the OS. With
default compression, stock zlib and zlib-ng produce byte-different gzip output
for the same input. A configurable level (e.g., 0 or 9) lets users choose a
compression level that yields more deterministic output across different
JDK/zlib combinations when necessary.
was:
Current gzip layer tests use a fixed compression level for deterministic
output, but level 9 is slow and may not reflect typical DFDL use. Make the gzip
compression level configurable via layer parameters, with a default of -1 to
use the JDK/zlib default, and allow tests to set a deterministic level when
needed.
Some JDK distributions (e.g., Temurin) bundle their own zlib implementation
with {{{}java.util.zip{}}}, using the classic stock zlib, while others link to
the system zlib, which may be stock zlib or zlib-ng depending on the OS. With
default compression, stock zlib and zlib-ng produce byte-different gzip output
for the same input. A configurable level (e.g., 0 or 9) lets users choose a
compression level that yields more deterministic output across different
JDK/zlib combinations when necessary.
> Make GZIP layer compression level configurable
> ----------------------------------------------
>
> Key: DAFFODIL-3082
> URL: https://issues.apache.org/jira/browse/DAFFODIL-3082
> Project: Daffodil
> Issue Type: New Feature
> Components: Back End
> Reporter: Guichard Desrosiers
> Assignee: Guichard Desrosiers
> Priority: Major
>
> Current gzip layer tests use the default compression level(level 6), but that
> yields different output between classic zlib vs zlib-ng for the same output
> sometimes. Setting the default level to 9 instead yields deterministic
> output, but level 9 is slow and may not reflect typical DFDL use. Make the
> gzip compression level configurable via layer parameters, with a default of
> -1 to use the JDK/zlib default, and allow tests to set a deterministic level
> when needed.
> Some JDK distributions (e.g., Temurin) bundle their own zlib implementation
> with {{{}java.util.zip{}}}, using the classic stock zlib, while others link
> to the system zlib, which may be stock zlib or zlib-ng depending on the OS.
> With default compression, stock zlib and zlib-ng produce byte-different gzip
> output for the same input. A configurable level (e.g., 0 or 9) lets users
> choose a compression level that yields more deterministic output across
> different JDK/zlib combinations when necessary.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)