Skip to content

Releases: metaschema-framework/liboscal-java

v6.0.0

14 Dec 19:01

Choose a tag to compare

This major release brings OSCAL 1.2.0 support and upgrades to metaschema-java 3.0.0.M1, along with significant API improvements and dependency updates.

✨ Highlights

  • OSCAL 1.2.0 Support: Updated to the latest OSCAL model with full compatibility
  • metaschema-java 3.0.0.M1: Major framework upgrade with improved module loading and exception handling
  • Improved CI/CD: Added workflow concurrency control and nightly builds
  • Refined Exception Handling: More specific Metapath exceptions for better error diagnosis

⚠️ Breaking Changes

metaschema-java 3.0.0.M1 Migration

This release requires migrating to the new metaschema-java 3.0.0.M1 APIs. See the metaschema-java v3.0.0.M1 release notes for complete details.

XMLBeans Removal

Old (Removed) New (Use Instead)
ModuleLoader IBindingModuleLoader
XmlMetaConstraintLoader BindingConstraintLoader
IXmlMetaschemaModule IBindingMetaschemaModule

Lazy Initialization API

Old New
Lazy.lazy(...) Lazy.of(...)

Exception Hierarchy Refactoring

More specific exception types replace generic MetapathException:

Old New
MetapathException (missing context) ContextAbsentDynamicMetapathException
MetapathException (document errors) DocumentFunctionException

OSCAL 1.2.0 Model Changes

ProfileMatching Class Rename

The Matching class has been renamed to ProfileMatching to disambiguate from other matching assemblies in OSCAL 1.2.0:

Old New
gov.nist.secauto.oscal.lib.model.Matching gov.nist.secauto.oscal.lib.model.ProfileMatching

✨ New Features

  • Added @FunctionalInterface annotation to IReferencePolicy enabling lambda expressions (#223)
  • Enhanced null-safety handling in profile resolution (#223)

🔧 Build & CI Improvements

  • Added concurrency configuration to cancel in-progress workflow runs on new commits (#222)
  • Added scheduled nightly builds at 3:00 AM UTC (#222)
  • Removed deprecated --exclude-mail flag from lychee-action (#212)

🐛 Bug Fixes

  • Fixed URI to String conversion for remove.getByNs() in ProfileResolver (#223)
  • Updated OSCAL submodule to fix schxslt submodule URL migration (#211)

What's Changed

Core Changes

Build & CI

Full Changelog: v5.2.1...v6.0.0

📦 Dependency Updates

Java Libraries

  • gov.nist.secauto.metaschema:metaschema-java: 2.x → 3.0.0.M1 (#224)
  • net.sf.saxon:Saxon-HE: 12.5 → 12.9 (#195)
  • org.apache.commons:commons-lang3: 3.17.0 → 3.19.0 (#200)
  • org.apache.logging.log4j:log4j-bom: 2.24.3 → 2.25.2 (#197)
  • org.xmlresolver:xmlresolver: 6.0.14 → 6.0.19 (#176)
  • dependency.xmlunit.version: 2.10.0 → 2.11.0 (#219)
  • org.assertj:assertj-core: 3.27.3 → 3.27.6 (#198)
  • nl.talsmasoftware:lazy4j: 2.0.0 → 2.0.1 (#384)

Maven Plugins

  • org.sonatype.central:central-publishing-maven-plugin: updates (#214)
  • io.github.git-commit-id:git-commit-id-maven-plugin: updates
  • me.fabriciorby:maven-surefire-junit5-tree-reporter: updates (#217)

GitHub Actions

  • actions/checkout: 4.2.2 → 6.0.1 (#183, #213)
  • actions/setup-java: 4.7.1 → 5.1.0 (#187, #215)
  • actions/upload-artifact: 4.6.2 → 5.0.0 (#216)
  • actions/github-script: 7.0.1 → 8.0.0 (#191)
  • github/codeql-action: 3.28.13 → 4.31.8 (#208, #221)
  • lycheeverse/lychee-action: 2.4.0 → 2.7.0 (#209)
  • peter-evans/create-issue-from-file: 5.0.1 → 6.0.0 (#218)

v5.2.1

15 May 19:21

Choose a tag to compare

This patch release incorporates the following bug fixes.

  • Correct inline constraint oscal-unique-link-in-context-location for #155 (#156)
  • Updated OS version used in GitHub actions to Ubuntu 24.04 (#157)

The OSCAL version used by this tool is v1.1.3.

Full Changelog: v5.2.0...v5.2.1

v5.2.0

06 Apr 13:43

Choose a tag to compare

This minor release incorporates feature improvements and bug fixes from metaschema-java v2.2.0.

The OSCAL version used by this tool is v1.1.3.

New and Noteworthy

  • Added support for relative resource resolution for links generated by the profile resolver. Supports metaschema-framework/oscal-cli#84 and resolution of usnistgov/oscal-cli#78 (#94)
  • Improved profile exception handling involving throw IOException instances during profile resolution. The underlying cause will now be reported. (#93)
  • JUnit tests run during the build are now run using multiple threads. This dramatically speeds up build duration. (#129)
  • Added external constraints to check that controls directly referenced in a profile exist in the referenced catalog. Reports non-existence as a validation error. This addresses usnistgov/oscal-cli#126. (#133)
  • Adjusted profile resolution reference warnings to be logged at debug instead of warning. This will reduce a ton of noise in the CLI output. This addresses usnistgov/oscal-cli#270. (#142)
  • Changed handleIndexMiss() logging from ERROR to WARN. This silences the reporting of dangling anchor references in the CLI as requested in #144 . (#145)

Important Bug Fixes

  • Ensure that controls defined at the catalog level are not duplicated during profile resolution. This fixes a bug (metaschema-framework/oscal-cli#60) caused during the import handling phase of profile resolution, which was "promoting" controls defined at the catalog level, causing a second copy of the control to be added. This was fixed by making controls at the catalog level always eligible for selection. (#92)
  • Fixed a bug (#112) in the collection of allowed-values constraints. let statements are processed properly now, avoiding an exeption. This code supports the metaschema-framework/oscal-cli list-allowed-values command (#131)
  • Adjusted the resolve-profile Metapath function 1-arg variant focus independent. This will dramatically improve execution cache performance, since resutls can now be cached. This builds on metaschema-frameworm/metaschema-java#399. (#141)
  • Fixed a binding error causing improper generation of some bound classes. (#143)

What's Changed

Full Changelog: v5.1.0...v5.2.0

v5.1.0

26 Nov 18:26

Choose a tag to compare

This minor release incorporates feature improvements and bug fixes from metaschema-java.

The OSCAL version used by this tool has been updated to v1.1.3.

What's Changed

  • Integrate metaschema-java improvements by @david-waltermire in #87
  • Bump org.apache.logging.log4j:log4j-bom from 2.24.1 to 2.24.2 by @dependabot in #86
  • Bump github/codeql-action from 3.27.0 to 3.27.5 by @dependabot in #84
  • Bump com.googlecode.maven-download-plugin:download-maven-plugin from 1.11.2 to 1.13.0 by @dependabot in #85
  • Bump org.sonatype.central:central-publishing-maven-plugin from 0.5.0 to 0.6.0 by @dependabot in #76

Full Changelog: v5.0.1...v5.1.0

v5.0.1

09 Nov 21:53

Choose a tag to compare

This patch release incorporates bug fixes from metaschema-java.

Full Changelog: v5.0.0...v5.0.1

v5.0.0

04 Nov 02:27

Choose a tag to compare

This major release integrates changes from metaschema-framework/metaschema-java v2.0.0. A major release was chosen here due to backwards compatibility breaking changes in the metaschema-java release that affect the APIs of this library.

What's Changed

  • Bump com.googlecode.maven-download-plugin:download-maven-plugin from 1.10.0 to 1.11.2 by @dependabot in #71
  • Bump org.apache.maven.plugins:maven-jxr-plugin from 3.5.0 to 3.6.0 by @dependabot in #70
  • Bump org.xmlresolver:xmlresolver from 6.0.10 to 6.0.11 by @dependabot in #68
  • Bump actions/setup-java from 4.4.0 to 4.5.0 by @dependabot in #67
  • Bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot in #66
  • Bump github/codeql-action from 3.26.12 to 3.27.0 by @dependabot in #65
  • Bump lycheeverse/lychee-action from 1.10.0 to 2.0.2 by @dependabot in #62
  • Bump actions/upload-artifact from 4.4.1 to 4.4.3 by @dependabot in #61
  • Bump org.cyclonedx:cyclonedx-maven-plugin from 2.8.2 to 2.9.0 by @dependabot in #55
  • Update to metaschema-java 2.0.0 by @david-waltermire in #72

Full Changelog: v4.2.0...v5.0.0

v4.2.0

08 Oct 22:55

Choose a tag to compare

Changelog

This minor release adds the following new features:

What's Changed

  • Update .lycheeignore to exclude broken link by @david-waltermire in #49
  • Bump org.xmlresolver:xmlresolver from 6.0.9 to 6.0.10 by @dependabot in #43
  • Bump actions/setup-java from 4.3.0 to 4.4.0 by @dependabot in #44
  • Bump peter-evans/create-issue-from-file from 5.0.0 to 5.0.1 by @dependabot in #45
  • Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in #47
  • Bump org.cyclonedx:cyclonedx-maven-plugin from 2.8.1 to 2.8.2 by @dependabot in #48
  • Bump github/codeql-action from 3.26.7 to 3.26.10 by @dependabot in #51
  • Bump dependency.log4j2.version from 2.23.1 to 2.24.1 by @dependabot in #50
  • Document where to find OSCAL-specific custom metaschema functions not in metaschema java by @aj-stein-gsa in #41
  • Bump github/codeql-action from 3.26.10 to 3.26.11 by @dependabot in #53
  • Bump com.googlecode.maven-download-plugin:download-maven-plugin from 1.9.0 to 1.10.0 by @dependabot in #54
  • Bump to v4.2.0 by @david-waltermire in #52
  • Bump actions/upload-artifact from 4.4.0 to 4.4.1 by @dependabot in #58
  • Bump actions/checkout from 4.2.0 to 4.2.1 by @dependabot in #57
  • Bump github/codeql-action from 3.26.11 to 3.26.12 by @dependabot in #56

New Contributors

Full Changelog: v4.1.0...v4.2.0

v4.1.0

16 Sep 12:18

Choose a tag to compare

Changelog

This minor release incorporates improvements from the underlying metaschema-java library.

What's Changed

Full Changelog: v4.0.2...v4.1.0

v4.0.2

20 Aug 04:38

Choose a tag to compare

What's Changed

Full Changelog: v4.0.1...v4.0.2

v4.0.1

08 Aug 15:52

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v4.0.0...v4.0.1