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-core_3</artifactId>
<version>4.1.0</version>
</dependency>libraryDependencies += "org.apache.daffodil" %% "daffodil-core" % "4.1.0"/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=0sudo dnf install apache-daffodilThis release focused on bugs fixed and performance improvements. A number of changes resulted in deprecation or backwards incompatible changes. See Deprecation/Compatibility section for more details.
[DAFFODIL-2287] JApi throws checked exceptions without declaring
Previously Daffodil did not declare some checked exceptions that could have been thrown by some Daffodil API functions. Those are now declared, which requires users of the API to explicitly catch these exceptions or mark them as thrown.
[DAFFODIL-2287] JApi throws checked exceptions without declaring
dfdl:outputValueCalc is now allowed on global/root elements
[DAFFODIL-2939] Remove UpMoveArray
DFDL expressions with an upward path step (..) to an array is deprecated and
now results in a schema definition warning. Future versions of Daffodil may
remove support for this and result in a schema definition error.
[DAFFODIL-2324] Unparser choice branch selection not conformant to DFDL standard
Per DFDL errata 5.60, the first branch that can be unparsed entirely without any infoset events (i.e. made up of elements that are dfdl:outputValueCalc, option branches, zero length arrays, or defaultable elements) in a choice is selected, rather than prioritizing the first empty branch. Also, required arrays are no longer treated as optional and hidden IVCs are only permissible in choices.
[DAFFODIL-2855] Scoping different when using dfdlx:repType vs type
When resolving default properties, Daffodil now gives precedence to innermost referenced schema components rather than the outermost, as described by section 8.1.4 of the DFDL specification. If this new logic results in a different property value than previous versions of Daffodil then a schema definition warning is issued.
[DAFFODIL-2957] dfdl:decimalSigned="no" bugs with negative values and data representations
Daffodil now errors when dfdl:decimalSigned=no or dfdl:decimalSigned is not applicable (as in the case of BCD numbers, which are always positive), but an attempt is made to parse to/unparse a negative number
[DAFFODIL-2768] SAX unparse can lead to a hanging thread if the XMLReader stops sending events
The DaffodilUnhandledSAXException, which can be thrown when unparsing using the SAX API and usually indicates a Daffodil bug, is changed from a SAXException to a RuntimeException. It is no longer a checked exception and does not need to be caught. It should usually be handled just like any other unchecked RuntimeException.
When unparsing using the SAX API, DaffodilUnparseContentHandler.finish()
should be called after xmlReader.parse(...) returns, regardless of success,
to ensure all resources are cleaned up. For example:
DaffodilUnparseContentHandler contentHandler = dp.newContentHandlerInstance(...);
xmlReader.setContentHandler(contentHandler);
try {
xmlReader.parse(...);
} catch (...) {
...
} finally {
contentHandler.finish();
}
The following dependencies have been added, updated, or removed: