Skip to content

Migrate to dev.metaschema namespace (breaking change)#219

Merged
david-waltermire merged 4 commits into
metaschema-framework:developfrom
david-waltermire:feature/namespace-migration
Jan 7, 2026
Merged

Migrate to dev.metaschema namespace (breaking change)#219
david-waltermire merged 4 commits into
metaschema-framework:developfrom
david-waltermire:feature/namespace-migration

Conversation

@david-waltermire
Copy link
Copy Markdown
Contributor

@david-waltermire david-waltermire commented Jan 6, 2026

Summary

  • Migrate all Java packages to align with upstream namespace changes in metaschema-java and liboscal-java
  • Bump version to 3.0.0-SNAPSHOT (major version for breaking changes)
  • Update dependencies to latest SNAPSHOT versions

Breaking Changes

Package migrations:

  • gov.nist.secauto.metaschema.*dev.metaschema.*
  • gov.nist.secauto.oscal.*dev.metaschema.oscal.*

Dependency Updates

Dependency Old Version New Version
metaschema-java 3.0.0.M1 3.0.0-SNAPSHOT
liboscal-java 6.0.0 7.0.0-SNAPSHOT
oscal-cli 2.6.0 3.0.0-SNAPSHOT
log4j2 2.25.2 2.25.3
org.json 20250517 20251224

Other Changes

  • Update CallingContext import (now top-level class per metaschema-java#563)
  • Replace Saxon TransformerFactoryImpl with standard Java TransformerFactory
  • Remove unused xmlresolver and xmlbeans dependencies
  • Fix pom.xml indentation inconsistencies

Related PRs

Test Plan

  • All 302 unit tests pass
  • Build succeeds with -PCI -Prelease profiles
  • Dependency convergence checks pass

Summary by CodeRabbit

  • Chores

    • Version updated to 3.0.0-SNAPSHOT; core dependency versions bumped.
    • Removed xmlbeans and xmlresolver from build.
  • Refactor

    • Project namespace and packaging reorganized; packaging entry point updated.
  • Documentation

    • Added guidance for disabling ANSI color output (--no-color) in README and distro docs.

✏️ Tip: You can customize this high-level summary in your review settings.

Document the --no-color flag for users on legacy consoles that do not
support ANSI escape codes. This includes older Windows cmd.exe, certain
CI/CD environments, or when redirecting output to files.

Updated both:
- README.md (main documentation)
- src/main/distro/README.txt (bundled with CLI distribution)
…s/no-color-usage

docs: add --no-color usage documentation for legacy consoles
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 6, 2026

📝 Walkthrough

Walkthrough

This PR renames Java packages from gov.nist.secauto.* to dev.metaschema.* across the OSCAL CLI codebase, bumps project version to 3.0.0-SNAPSHOT, updates dependency versions (notably liboscal-java → 7.0.0-SNAPSHOT), removes xmlbeans/xmlresolver, updates Maven mainClass entries, and replaces Saxon TransformerFactoryImpl usage with the standard TransformerFactory.

Changes

Cohort / File(s) Summary
Build Configuration & Versioning
\pom.xml``
Version bumped to 3.0.0-SNAPSHOT; SCM tag → HEAD; dependency versions updated (liboscal-java → 7.0.0-SNAPSHOT, metaschema props updated); xmlbeans and xmlresolver removed; repository/pluginRepository structure normalized; mainClass entries updated to dev.metaschema.oscal.tools.cli.core.CLI.
Package/Namespace Migration (core & commands)
src/main/java/dev/metaschema/oscal/tools/cli/core/*.java, src/main/java/dev/metaschema/oscal/tools/cli/core/commands/**
All package declarations and imports migrated from gov.nist.secauto.*dev.metaschema.* across CLI entry point, base commands, and all subcommand packages (assessmentplan, assessmentresults, catalog, componentdefinition, metaschema, poam, profile, ssp, etc.). No functional changes beyond namespace/import updates.
Java Template File
src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java
Package and import adjusted to dev.metaschema.*.
Utilities
src/main/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinter.java
Package updated; replaced Saxon TransformerFactoryImpl instantiation with TransformerFactory.newInstance().
Tests
src/test/java/dev/metaschema/oscal/tools/cli/core/*, src/test/java/dev/metaschema/oscal/tools/cli/core/commands/*, src/test/java/dev/metaschema/oscal/tools/cli/core/utils/*
Test package declarations and imports updated to dev.metaschema.*; class references adjusted accordingly.
Docs & Misc
README.md, src/main/distro/README.txt, .gitignore
Added "Disabling Color Output" docs (mentioning --no-color); .gitignore updated to ignore .worktrees/.

Sequence Diagram(s)

(omitted — changes are package/manifest refactors and minor utility swap; no new multi-component control flow introduced)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Possibly related PRs

Poem

🐰 From gov.nist.secauto I leapt to dev.metaschema land,

Hopping through packages with a tidy, gentle hand;
Versions bumped and XMLBeans freed to roam,
A carrot of a build and a freshly named home. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: migrating Java packages from gov.nist.secauto.* to dev.metaschema.* namespaces with a breaking change indicator. It is concise and clearly reflects the primary objective of the changeset.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

BREAKING CHANGE: This is a major version bump (v3.0.0) that migrates all
Java packages to align with upstream metaschema-java and liboscal-java
namespace changes.

Package migrations:
- gov.nist.secauto.metaschema.* -> dev.metaschema.*
- gov.nist.secauto.oscal.* -> dev.metaschema.oscal.*

Dependency updates:
- metaschema-java: 3.0.0.M1 -> 3.0.0-SNAPSHOT
- liboscal-java: 6.0.0 -> 7.0.0-SNAPSHOT
- oscal-cli: 2.6.0 -> 3.0.0-SNAPSHOT
- log4j2: 2.25.2 -> 2.25.3
- org.json: 20250517 -> 20251224

Other changes:
- Update CallingContext import (now top-level class)
- Replace Saxon TransformerFactoryImpl with standard Java TransformerFactory
- Remove unused xmlresolver and xmlbeans dependencies
- Fix pom.xml indentation inconsistencies

Related upstream PRs:
- metaschema-java#618
- liboscal-java#232
@david-waltermire david-waltermire force-pushed the feature/namespace-migration branch from 9611327 to a50d985 Compare January 6, 2026 18:36
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI Agents
In @pom.xml:
- Line 77: The pom property dependency.liboscal-java.version references a
non-existent snapshot (7.0.0-SNAPSHOT); update it to a valid published snapshot
(e.g., set dependency.liboscal-java.version to 6.1.0-SNAPSHOT) or replace the
dependency version for dev.metaschema.oscal:liboscal-java with an available
release, then run mvn -U to refresh metadata and ensure the dependency resolves.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9611327 and a50d985.

📒 Files selected for processing (43)
  • .gitignore
  • README.md
  • pom.xml
  • src/main/distro/README.txt
  • src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/CLI.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalConvertCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalValidationCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ConvertCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ValidateCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/AssessmentPlanCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/AssessmentResultsCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/CatalogCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ComponentDefinitionCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/package-info.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/PlanOfActionsAndMilestonesCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ProfileCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ResolveSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/SystemSecurityPlanCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinter.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
✅ Files skipped from review due to trivial changes (4)
  • .gitignore
  • README.md
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ValidateCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/PlanOfActionsAndMilestonesCommand.java
🚧 Files skipped from review as they are similar to previous changes (19)
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinter.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalConvertCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/SystemSecurityPlanCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ComponentDefinitionCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/package-info.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalValidationCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/AssessmentResultsCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ssp/ConvertSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/poam/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/CLI.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/CatalogCommand.java
🧰 Additional context used
🧠 Learnings (14)
📓 Common learnings
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 618
File: core/src/main/java-templates/dev/metaschema/core/MetaschemaJavaVersion.java:2-2
Timestamp: 2026-01-05T16:08:37.155Z
Learning: In metaschema-framework/metaschema-java, the canonical Java package naming convention is dev.metaschema.* (renamed from gov.nist.secauto.metaschema.* as of PR #618).
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 618
File: core/src/main/java/dev/metaschema/core/datatype/package-info.java:52-52
Timestamp: 2026-01-05T18:03:33.537Z
Learning: In metaschema-framework/metaschema-java, CLAUDE.md is the canonical coding-guidelines document and now specifies dev.metaschema.* as the Java package convention (updated in PR #618).
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 0
File: :0-0
Timestamp: 2026-01-05T16:33:59.206Z
Learning: In metaschema-framework/metaschema-java, the core/metaschema submodule is owned by this project's maintainers; updates to it are coordinated within this repository, so no follow-up issues should be opened in external repositories for submodule changes.
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/csrc/ns/metaschema/test_suite/_1_0/Metaschema.java:41-47
Timestamp: 2025-12-24T21:21:40.208Z
Learning: In metaschema-framework/metaschema-java, generated binding classes in package gov.nist.csrc.ns.metaschema.test_suite._1_0 (and similar generated binding packages) are pre-generated by metaschema-maven-plugin and checked into source control. Javadoc coverage issues in these generated classes should be tracked as code generator improvements rather than file-level issues, and improvements are deferred to generator enhancements.
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/testsuite/GenerationCase.java:74-80
Timestamp: 2025-12-24T21:22:07.082Z
Learning: Files in the package gov.nist.secauto.metaschema.model.testing.testsuite in metaschema-testing are generated binding classes created from Metaschema definitions. Documentation and style improvements for these files should be made at the code generator level (metaschema-maven-plugin) rather than by manually editing the generated code.
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/testsuite/Metaschema.java:41-47
Timestamp: 2025-12-24T21:21:56.361Z
Learning: In metaschema-testing, generated binding classes under gov.nist.secauto.metaschema.model.testing.testsuite are produced by metaschema-maven-plugin from YAML metaschema definitions. Javadoc issues in these generated classes should not be flagged for manual fixes; improvements are tracked and handled through code generator enhancements rather than manual edits to the generated source.
📚 Learning: 2025-12-24T21:22:07.082Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/testsuite/GenerationCase.java:74-80
Timestamp: 2025-12-24T21:22:07.082Z
Learning: Files in the package gov.nist.secauto.metaschema.model.testing.testsuite in metaschema-testing are generated binding classes created from Metaschema definitions. Documentation and style improvements for these files should be made at the code generator level (metaschema-maven-plugin) rather than by manually editing the generated code.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java
  • src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java
  • pom.xml
  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ConvertCommand.java
📚 Learning: 2025-12-24T21:21:56.361Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/secauto/metaschema/model/testing/testsuite/Metaschema.java:41-47
Timestamp: 2025-12-24T21:21:56.361Z
Learning: In metaschema-testing, generated binding classes under gov.nist.secauto.metaschema.model.testing.testsuite are produced by metaschema-maven-plugin from YAML metaschema definitions. Javadoc issues in these generated classes should not be flagged for manual fixes; improvements are tracked and handled through code generator enhancements rather than manual edits to the generated source.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java
  • pom.xml
  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
📚 Learning: 2025-12-24T21:21:40.208Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 567
File: metaschema-testing/src/main/java/gov/nist/csrc/ns/metaschema/test_suite/_1_0/Metaschema.java:41-47
Timestamp: 2025-12-24T21:21:40.208Z
Learning: In metaschema-framework/metaschema-java, generated binding classes in package gov.nist.csrc.ns.metaschema.test_suite._1_0 (and similar generated binding packages) are pre-generated by metaschema-maven-plugin and checked into source control. Javadoc coverage issues in these generated classes should be tracked as code generator improvements rather than file-level issues, and improvements are deferred to generator enhancements.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • pom.xml
  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
📚 Learning: 2026-01-05T16:08:37.155Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 618
File: core/src/main/java-templates/dev/metaschema/core/MetaschemaJavaVersion.java:2-2
Timestamp: 2026-01-05T16:08:37.155Z
Learning: In metaschema-framework/metaschema-java, the canonical Java package naming convention is dev.metaschema.* (renamed from gov.nist.secauto.metaschema.* as of PR #618).

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ValidateSubcommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java
  • src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/AssessmentPlanCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ConvertSubcommand.java
  • pom.xml
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ConvertCommand.java
📚 Learning: 2026-01-05T16:33:59.206Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 0
File: :0-0
Timestamp: 2026-01-05T16:33:59.206Z
Learning: In metaschema-framework/metaschema-java, the core/metaschema submodule is owned by this project's maintainers; updates to it are coordinated within this repository, so no follow-up issues should be opened in external repositories for submodule changes.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • pom.xml
📚 Learning: 2026-01-05T18:03:33.537Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 618
File: core/src/main/java/dev/metaschema/core/datatype/package-info.java:52-52
Timestamp: 2026-01-05T18:03:33.537Z
Learning: In metaschema-framework/metaschema-java, CLAUDE.md is the canonical coding-guidelines document and now specifies dev.metaschema.* as the Java package convention (updated in PR #618).

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java
  • src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java
  • pom.xml
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
📚 Learning: 2024-11-15T20:00:59.203Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 245
File: cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/impl/DefaultExtraArgument.java:15-15
Timestamp: 2024-11-15T20:00:59.203Z
Learning: The `DefaultExtraArgument` class in `cli-processor/src/main/java/gov/nist/secauto/metaschema/cli/processor/command/impl/DefaultExtraArgument.java` is currently a stub for future exploration.

Applied to files:

  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java
  • src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java
📚 Learning: 2025-12-13T15:29:03.112Z
Learnt from: david-waltermire
Repo: metaschema-framework/liboscal-java PR: 222
File: .github/workflows/build.yml:30-32
Timestamp: 2025-12-13T15:29:03.112Z
Learning: In the liboscal-java repository, nightly builds are managed independently using GitHub Actions schedule triggers (cron), not via repository_dispatch from metaschema-java. Each repo in the metaschema-framework manages its own nightly builds.

Applied to files:

  • pom.xml
📚 Learning: 2025-12-30T19:08:21.896Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 605
File: src/site/markdown/index.md.vm:3-3
Timestamp: 2025-12-30T19:08:21.896Z
Learning: In the metaschema-framework/metaschema-java repository, https://framework.metaschema.dev/ is the project's preferred and canonical documentation URL for the Metaschema framework. While https://pages.nist.gov/metaschema/ is an alternative, the project uses framework.metaschema.dev as the official reference in documentation and should not be changed to pages.nist.gov URLs.

Applied to files:

  • pom.xml
📚 Learning: 2025-12-30T04:19:49.192Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 605
File: databind/src/main/java/gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java:480-484
Timestamp: 2025-12-30T04:19:49.192Z
Learning: In metaschema-framework/metaschema-java, when users configure custom superinterfaces via binding configuration, david-waltermire prefers both documentation (explaining how to add dependencies to the Maven plugin) and validation mechanisms (warnings when classes aren't on classpath) to prevent redundant IBoundObject interface additions during code generation.

Applied to files:

  • pom.xml
📚 Learning: 2025-12-17T13:27:43.679Z
Learnt from: CR
Repo: metaschema-framework/metaschema-java PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-17T13:27:43.679Z
Learning: Applies to core/metaschema/schema/xml/** : XMLBeans code is generated from XSD schemas in core/metaschema/schema/xml during Maven build. Generated sources are placed in target/generated-sources/

Applied to files:

  • pom.xml
📚 Learning: 2026-01-05T18:03:23.064Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 618
File: core/src/main/java/dev/metaschema/core/metapath/format/IPathSegment.java:0-0
Timestamp: 2026-01-05T18:03:23.064Z
Learning: In metaschema-framework/metaschema-java, avoid duplicating SpotBugs nullability annotations on overrides when the superinterface (e.g., dev.metaschema.core.model.IMetapathQueryable#getNodeItem()) already declares the null contract; rely on the inherited annotation instead.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
📚 Learning: 2025-12-30T04:37:04.944Z
Learnt from: david-waltermire
Repo: metaschema-framework/metaschema-java PR: 0
File: :0-0
Timestamp: 2025-12-30T04:37:04.944Z
Learning: In metaschema-framework/metaschema-java, assert statements on loop variables (e.g., `assert item != null;`) are intentionally kept to satisfy Eclipse's null-safety analysis when the list elements have a `NonNull` contract, ensuring static analysis tools recognize the non-null guarantee for subsequent method calls.

Applied to files:

  • src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java
  • src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java
🧬 Code graph analysis (7)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java (7)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/AbstractOscalConvertCommand.java (1)
  • AbstractOscalConvertCommand (35-80)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/assessmentplan/ConvertSubcommand.java (1)
  • ConvertSubcommand (19-30)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/poam/ConvertSubcommand.java (1)
  • ConvertSubcommand (19-30)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/componentdefinition/ComponentDefinitionCommand.java (1)
  • ComponentDefinitionCommand (14-36)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/assessmentresults/ConvertSubcommand.java (1)
  • ConvertSubcommand (19-30)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/AbstractOscalValidationCommand.java (2)
  • OscalValidationCommandExecutor (65-122)
  • AbstractOscalValidationCommand (36-123)
src/test/java/gov/nist/secauto/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java (1)
  • Issue96ClassLoaderTest (12-58)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ResolveSubcommand.java (2)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/AbstractResolveCommand.java (1)
  • AbstractResolveCommand (48-264)
src/main/java/gov/nist/secauto/oscal/tools/cli/core/commands/profile/ResolveSubcommand.java (1)
  • ResolveSubcommand (18-36)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ValidateSubcommand.java (1)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java (1)
  • AbstractDeprecatedOscalValidationSubcommand (22-47)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ValidateSubcommand.java (1)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java (1)
  • AbstractDeprecatedOscalValidationSubcommand (22-47)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java (1)
src/main/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinter.java (1)
  • PrettyPrinter (39-100)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ConvertSubcommand.java (2)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalConvertCommand.java (1)
  • AbstractOscalConvertCommand (35-80)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ConvertCommand.java (1)
  • ConvertCommand (33-82)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ConvertSubcommand.java (1)
src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractOscalConvertCommand.java (1)
  • AbstractOscalConvertCommand (35-80)
🪛 GitHub Actions: Build and Test
pom.xml

[error] 1-1: Command failed: mvn -B -e -PCI -Prelease install site site:stage -Dmaven.test.skip=true. Build failed due to dependency resolution error: Could not resolve artifact dev.metaschema.oscal:liboscal-java:jar:7.0.0-SNAPSHOT in repo-snapshot (https://raw.githubusercontent.com/metaschema-framework/maven2/refs/heads/main).

🔇 Additional comments (22)
src/main/distro/README.txt (1)

31-42: Documentation addition is clear and well-integrated.

The new "Disabling Color Output" section provides helpful guidance with practical examples. The explanation covers relevant scenarios (legacy consoles, CI/CD, file redirection) and the usage example is concise and actionable.

One note: This documentation change appears orthogonal to the main PR objective (namespace migration). If this feature (--no-color flag) is new or being enhanced as part of this PR, consider clarifying in the PR description whether this is a related CLI improvement or if it should be a separate PR to keep the namespace migration changes isolated.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentplan/AssessmentPlanCommand.java (1)

6-8: LGTM! Clean namespace migration.

The package and import declarations have been correctly updated to align with the upstream namespace migration from gov.nist.secauto.* to dev.metaschema.*. The changes are mechanical and consistent with the PR objectives.

Based on learnings, dev.metaschema.* is the canonical Java package naming convention as of the upstream migration in metaschema-framework/metaschema-java#618.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/componentdefinition/ValidateSubcommand.java (2)

6-15: Namespace migration correctly applied.

The package declaration and all import statements have been consistently migrated to the dev.metaschema.* namespace, aligning with the canonical Java package naming convention. Based on learnings, this follows the established convention from the upstream metaschema-java project.


24-47: Implementation unchanged, looks good.

The class implementation remains functionally identical after the namespace migration. Resource paths are correctly unchanged since they refer to resource locations rather than package names.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/assessmentresults/ValidateSubcommand.java (1)

6-15: LGTM! Namespace migration correctly applied.

The package declaration and all imports have been properly migrated from gov.nist.secauto.* to dev.metaschema.* namespaces. The changes align with the canonical naming convention and the broader namespace migration across the codebase.

Based on learnings, dev.metaschema.* is the canonical Java package naming convention for this framework.

src/test/java/dev/metaschema/oscal/tools/cli/core/utils/PrettyPrinterTest.java (1)

6-6: LGTM: Namespace migration correctly applied.

The package declaration has been correctly updated to the new dev.metaschema.* namespace, consistent with the upstream metaschema-java migration.

Based on learnings, the canonical Java package naming convention is dev.metaschema.* as of metaschema-java PR #618.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractResolveCommand.java (1)

6-30: LGTM: Complete namespace migration for imports.

All package and import declarations have been consistently updated to the new dev.metaschema.* namespace. The migration covers CLI processor, core metapath, databind, and OSCAL library imports.

Based on learnings, this aligns with the canonical namespace convention established in metaschema-java PR #618.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/AbstractDeprecatedOscalValidationSubcommand.java (1)

6-10: LGTM: Namespace migration correctly applied.

Package declaration and CLI processor imports have been correctly updated to the new dev.metaschema.* namespace. The deprecation warning functionality remains unchanged.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ListAllowedValuesCommand.java (1)

6-35: LGTM: Comprehensive namespace migration.

All package and import declarations have been consistently updated to the new dev.metaschema.* namespace. The migration covers a wide range of dependencies including CLI commands, processor, metapath, model constraints, databind, and OSCAL library utilities.

src/test/java/dev/metaschema/oscal/tools/cli/core/commands/Issue96ClassLoaderTest.java (1)

6-56: LGTM: Test namespace migration correctly applied.

The package declaration and all fully-qualified class names in test instantiations have been correctly updated to the new dev.metaschema.* namespace. The test logic remains unchanged and continues to verify classloader behavior for all OSCAL subcommands (assessment plan, assessment results, catalog, POAM, SSP, and component definition).

src/main/java-templates/dev/metaschema/oscal/tools/cli/core/OscalCliVersion.java (1)

27-27: LGTM! Namespace migration is correct.

The package declaration and import statement have been correctly updated to the new dev.metaschema.* namespace, consistent with the PR objectives and framework standards. Based on learnings, the canonical Java package naming convention is now dev.metaschema.*.

Also applies to: 29-29

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/metaschema/MetaschemaCommand.java (1)

6-6: LGTM! Namespace migration is correct.

Package and import statements have been correctly updated to the new dev.metaschema.* namespace. The changes align with the PR objectives and framework standards.

Also applies to: 8-9

pom.xml (2)

11-11: LGTM! Version bump is appropriate.

The project version bump to 3.0.0-SNAPSHOT is correct for this breaking change involving namespace migration.


407-407: LGTM! Main class references correctly updated.

The mainClass entries have been correctly updated from gov.nist.secauto.oscal.tools.cli.core.CLI to dev.metaschema.oscal.tools.cli.core.CLI, consistent with the namespace migration.

Also applies to: 423-423

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/ConvertCommand.java (1)

6-18: LGTM! Namespace migration is correct.

Package declaration and all import statements have been correctly updated to the new dev.metaschema.* namespace. The changes are consistent across the file and align with the PR objectives.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/catalog/ConvertSubcommand.java (1)

6-11: LGTM! Namespace migration is correct.

Package declaration and all import statements have been correctly updated to the new dev.metaschema.* namespace. The changes align with the broader namespace migration across the codebase.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ResolveSubcommand.java (1)

6-10: LGTM!

The package declaration and imports are correctly migrated to the dev.metaschema.* namespace, aligning with the canonical package naming convention established in metaschema-java PR #618. Based on learnings, this is the expected namespace structure.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ConvertSubcommand.java (1)

6-10: LGTM!

Package and imports correctly migrated to dev.metaschema.* namespace. The class logic remains unchanged, properly returning Profile.class for OSCAL profile conversion operations.

src/test/java/dev/metaschema/oscal/tools/cli/core/NullYamlValuesTest.java (1)

6-14: LGTM!

Package and imports correctly migrated to dev.metaschema.* namespace. Test logic remains unchanged, validating YAML null value handling across the three test variants.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ProfileCommand.java (1)

6-8: LGTM!

Package and import correctly migrated. The parent command structure remains unchanged, properly registering the ValidateSubcommand, ConvertSubcommand, and ResolveSubcommand handlers.

src/test/java/dev/metaschema/oscal/tools/cli/core/CLITest.java (1)

6-19: LGTM!

Package and imports correctly migrated to dev.metaschema.* namespace. The comprehensive CLI test suite remains unchanged, covering validation, conversion, profile resolution, and pretty-print functionality.

src/main/java/dev/metaschema/oscal/tools/cli/core/commands/profile/ValidateSubcommand.java (1)

6-15: LGTM!

Package and imports correctly migrated to dev.metaschema.* namespace. The validation logic remains unchanged, properly providing XML and JSON schema validators for OSCAL Profile validation.

Comment thread pom.xml
@david-waltermire david-waltermire merged commit 1c4d487 into metaschema-framework:develop Jan 7, 2026
3 of 5 checks passed
@david-waltermire david-waltermire deleted the feature/namespace-migration branch January 7, 2026 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant