Apache Daffodil 3.2.0

Documentation

Javadoc | Scaladoc

Get Release

Source

Binaries


The above release files should be verified using the PGP signatures and the project release KEYS. See verification instructions for a description of using the PGP and KEYS files for verification. A SHA512 checksum is also provided as an alternative verification method.

<dependency>
  <groupId>org.apache.daffodil</groupId>
  <artifactId>daffodil-japi_2.12</artifactId>
  <version>3.2.0</version>
</dependency>
libraryDependencies += "org.apache.daffodil" %% "daffodil-sapi" % "3.2.0"
Create the file /etc/yum.repos.d/apache-daffodil.repo with the following content:
[apache-daffodil]
name=Apache Daffodil
baseurl=https://apache.jfrog.io/artifactory/daffodil-rpm/
enabled=1
gpgkey=https://downloads.apache.org/daffodil/KEYS
gpgcheck=1
repo_gpgcheck=0
Run the folllowing command:
sudo dnf install apache-daffodil

Release Notes

WARNING

This release has been superceded by Release 3.2.1 due to security issues.

The release notes below are still useful for understanding the features and functionality which are also part of Release 3.2.1.

New DFDL Language Extension Features

Daffodil contains a number of extensions to the DFDL language. These extensions generally are identified by use of the DFDL extensions namespace and a namespace prefix for all related properties. These extensions are not yet officially part of the DFDL language and are considered experimental. They may evolve and schemas that use them may require update with future Daffodil releases.

The Daffodil "layering" extension to the DFDL language, has been enhanced to enable computation of checksums, CRCs, and parity fields. These extensions can be loaded from external Jar files.

New functions have been added to the Daffodil expression language. These include bit-wise AND/OR/NOT functions, and a conversion function that converts type xs:long to xs:double.

An extension property, dfdlx:runtimeProperties can be used to annotate DFDL schemas where such annotations are available to the Daffodil runtime back end, such as for creating customized InfosetInputter and InfosetOutputter classes.

Other New Features

The standard Log4J logging system is now used.

The Daffodil CLI now produces different exit codes for failures based on the type of failure.

Java 17 is now a supported JVM. Note that Use of Java 17 requires use of Scala libraries version 2.12.15.

Code Generation Backend

The C code generation backend called daffodil-runtime2 has had these enhancements.

Bug Fixes

Miscellaneous Changes

Performance, code cleanups or maintainability improvements

Project Infrastructure Improvements

Deprecation/Compatibility

The Daffodil layering extension formerly supported layering property names (E.G., layerTransform) not in the DFDL extensions namespace. The properties must now have a namespace prefix (usually "dfdlx:")

The Daffodil enumerations and type-calc extension to the DFDL language has been simplified, and numerous extension features withdrawn in this release.

DFDL schemas, configuration files, and TDML files no longer allow any use of DocType declarations or XML Entity definitions. This improves security as these features are associated with a number of XML-related vulerabilities.

Dependency Changes

The following dependencies have been added or updated

Core

Command Line Interface

Code Generator

Schematron Validator

Test