Remove JUnit4 compile dependency

We currently have a JUnit4 compile dependency because the TDML Runner
throws a JUnit-based exception to indicate that a test should be skipped
when the current implementation does not support that test. The problem
with this is 1) we now have a compile dependency that is traditionally
only for tests, which is odd, and 2) JUnit is now distributed in our
binary helpers, and so requires licensing changes.

Neither of these are ideal, so this patch removes that compile
dependency. It does so by using reflection to create the appropriate
JUnit "skip this test" exception if JUnit is on the classpath (i.e.
we're probably running a JUnit test). If JUnit is not on the classpath,
then we just throws a standard TDML exception and lets the caller handle
it however it makes sense for them.

DAFFODIL-2067
4 files changed
tree: f364e3fdcfe2957acea81753ac248668084adf52
  1. daffodil-cli/
  2. daffodil-core/
  3. daffodil-io/
  4. daffodil-japi/
  5. daffodil-lib/
  6. daffodil-macro-lib/
  7. daffodil-propgen/
  8. daffodil-runtime1/
  9. daffodil-runtime1-unparser/
  10. daffodil-sapi/
  11. daffodil-tdml-lib/
  12. daffodil-tdml-processor/
  13. daffodil-test/
  14. daffodil-test-ibm1/
  15. eclipse-projects/
  16. project/
  17. scripts/
  18. test-stdLayout/
  19. tutorials/
  20. .classpath
  21. .gitignore
  22. .travis.yml
  23. build.sbt
  24. DISCLAIMER
  25. KEYS
  26. LICENSE
  27. NOTICE
  28. README.md
README.md

Apache Daffodil (incubating)

Introduction

Apache Daffodil (incubating) is the open source implementation of the Data Format Description Language (DFDL), a specification created by the Open Grid Forum. DFDL is capable of describing many data formats, including textual and binary, commercial record-oriented, scientific and numeric, modern and legacy, and many industry standards. It leverages XML technology and concepts, using a subset of W3C XML schema type system and annotations to describe such data. Daffodil uses this description to parse data into an infoset represented as XML or JSON, easily capable of ingestion, validation, and transformation.

For more information about Daffodil, see https://daffodil.apache.org/.

Build Requirements

  • JDK 8 or higher
  • SBT 0.13.8 or higher

Getting Started

SBT is the officially supported tool to build Daffodil, run all tests, create packages, and more. Below are some of the more common commands used for Daffodil development.

Note that compiling and running all Daffodil tests works best with at least 6GB of memory, more than is usually provided by default. We recommended that you supply -mem 6144 either as an sbt option (e.g. sbt -mem 6144 test) or edit /etc/sbt/sbtopts to increase the available memory when running the below commands.

Compile

$ sbt compile

Tests

The following command runs all unit tests.

$ sbt test 

The following command runs all command line interface tests.

$ sbt it:test

Command Line Interface

The following command creates Linux and Windows shell scripts in daffodil-cli/target/universal/stage/bin/. See the Command Line Interface documentation for details on its usage.

$ sbt daffodil-cli/stage

Apache RAT

This following command generates an Apache RAT report in target/rat.txt and errors if any unapproved licenses are found.

$ sbt ratCheck

Getting Help

For questions, we can be reached at the dev@daffodil.apache.org or user@daffodil.apache.org mailing lists or in #Daffodil on ASF HipChat. Bugs can be reported via the Daffodil JIRA.

License

Daffodil is licensed under the Apache License, v2.0