DaffodilTunables is no longer a globally accessed class.SSRD/ERD, PState/UState, Compiler, DataProcessor receive
an immutable instance of DaffodilTunables.
DFDL-1143
Fix xs:hexBinary equality checkBefore any sort of equality check on a xs:hexBinary element would need
to be converted to a string. I have now added an equality checker for
byte arrays that allows direct comparison of xs:hexBinary elements
without the need for conversion.
DFDL-1618
Ensure Bit/ByteOrderChange parsers always exist at rootIf the dfdl:byteOrder or dfdl:bitOrder properties were not provided,
Daffodil did not complain, and it would not insert a Bit/ByteOrderChange
parser at root. This meant that Daffodil would use a default value,
which in some cases caused incorrect behavior. It also meant that the
check for valid bit and byte orders (e.g. not bigEndian &
leastSignificantBitFirst) never occurred since that only ha...
Calculate the approximate length of delimited and pattern lengthKinds for alignmentBy assuming the length of delimited and pattern lengthKinds was 1,
Daffodil was unable to optimize out some alignment unparsers, which
could lead to deadlocks.
This changes that so the length of delimited or pattern lengthKinds is a
multiple of the length of the encoding. This allows Daffodil to optimize
out some alignment unparsers and prevent deadlocks.
DFDL-1836
Fix Xerces resource resolution for includes/importsAfter we found a resource (like from an include/import), we reported the
location to Xerces incorrectly. For example, say we resolved the
systemID at
org1/xsd/payload.xsd
to the absolute URI at
file:/foo/bar/baz/org1/xsd/payload.xsd
When we created the new Input to return where we found payload.xsd to
Xerces, we set the systemID to the original relative systemID
(org/xsd/payload.xsd), a...
Added new test-stdLayout project for testing include/import.This new project (within daffodil) is for testing the standard project
layout. In particular, there are include/import bugs associated with
it.
There is a test in scala-debug which fails with a path containing
.../org2/xsd/org2/xsd....
Which is clearly wrong given that the directory is
src/main/resources/org2/xsd
Tests cover cases where a schema file in
src/main/resources/org1/xsd tries to ...
Ensure the infoset exists before trying to display it in the debuggerIf you run 'info infoset' before stepping at least once, there will be
no infoset to visit. This checks to make sure that an infoset exists
before trying to print it in the debugger.
DFDL-1834
Add license information for ICUThe ICU package does contain license information, but the link it points
to is dead. Manually override it to a link in the svn repo that works.
DFDL-1825
Throw an Not Yet Implmemented SDE for encodingErrorPolicy="error"It isn't supported and can result in weird behavior and mark pool leaks.
Best to just not allow it.
DFDL-1828
Improve nil checking for infoset outputtersThe InfosetOutputters use _.isNilled to determine if an infoset element
is nil. However, _.isNilled can throw an exception if the nilled flag
has not been set (e.g. while debugging). This could lead to thrown
exceptions during the 'info infoset' debugger command. This patch adds a
new isNilled helper function to the InfosetOutputter trait that performs
the correct logic to check if the nilled f...
Modify isError API logic to support validation errors- isError now returns true if either there are processing errors OR
validation errors
- New methods, isProcessingError and isValidationError, are added to
give the ability to differentiate why isError is true
- Remove the canProceed() method and deprecate it in the java/scala API.
This is just a wrapper around !isError
- Rename status to processorStatus to clearly differentiate between th...
Added simple test to verify division expressionsThis has already been fixed in commit
3153e271dab64b029bbdde627bba14c42f370357 but no tests were added to
cover the example given in the bug report, dealing with number types
getting mixed up, ending in a divide by zero.
DFDL-1688
Ignore all *.sbt files in the root directory except for build.sbtThis is useful for automated build systems to add custom *.sbt files to
add customizations to the build. For example, adding custom sbt
configurations to publish to a local repository. Note that this is
necessary since our sbt configurations makes a release a SNAPSHOT if
there are any untracked files (e.g. custom sbt file) or files with
changes. If we don't ignore this *.sbt files, then it will...
Fix test to have correct value and move out of debugF7FF came frome the specification, but it is wrong. It should be F7DC.
Fix the tests and moved it out of debug.
DFDL-1455
Supply encoding so default isn't used. Fixes DFDL-1684 for windows "for real", i.e., no longer need to specify
options like -Dfile.encoding=utf-8
DFDL-1684
Use a ThreadLocal for w3c dom infoset inputters in CLIw3c Documents are not thread-safe, even for reading. This is because the
implementation lazily evaluates parts of the tree and creates/destroys
various caches while reading. It is still safe to read the same tree
multiple times, just not at the same time. This patch adds a ThreadLocal
variable when creating w3c documents in the CLI, so that each thread has
a unique copy that it can use. This pr...
Simplify README, BUILD, LICENSE- Update README to use Markdown and be more concise. Reference the wiki
where it makes sense so there is only one place we need to update
when things change
- Delete BUILD--this file was basically 'how to use sbt', and involved
sbt commands we never even really need to use. Commonly use commands
are put in the README
- Delete RELEASE, it does not belong in this repo
- Rename COPYRIGHT t...
Fix daf:trace so you can trace a complex element.E.g. useful to trace in this context:
fn:exists(daf:trace(/foo/bar, "bar is complex type"))
I needed this fixed to debug jpeg's dfdl:assert expressions.
DFDL-1804
Correct tutorials that were showing the wrong schema in the examples.Corrects XSL to print the entire 'document' element
for the Datastream as to not be misleading regarding
bitOrder and byteOrder.
DFDL-1802
Update the performance CLI command to use less memory when unparsingWhen unparsing, the performance command currently creates N copies of
the input infoset. For large infosets, this can require a lot of memory,
causing trouble for the garbage collector and limiting how much memory
is available to perform the actual unparse.
This patch modifies the performance command so that it only creates a
single infoset (e.g. scala node, jdom tree, etc.) that is shared amo...
Improve diagnostics about left over data in the CLINow displays how many bits were consumed and how many bits remain,
rather than displaying the byte position and limit, which loses bit
information and isn't very clear. Also avoids any confusion with
bit position being 0- or 1-based.
DFDL-1798