Skip to content

Feat/v3.x/aviator/remove legacy fvdl parsing - #1137

Open
anishkumarnagaraj-design wants to merge 3 commits into
fortify:feat/v3.x/aviator/27.1from
anishkumarnagaraj-design:feat/v3.x/aviator/remove-legacy-fvdl-parsing
Open

anishkumarnagaraj-design wants to merge 3 commits into
fortify:feat/v3.x/aviator/27.1from
anishkumarnagaraj-design:feat/v3.x/aviator/remove-legacy-fvdl-parsing

Conversation

@anishkumarnagaraj-design

Copy link
Copy Markdown
Contributor

Summary

This change removes legacy JAXB/DOM-based parsing code, eliminates JAXB dependencies that are no longer needed, and introduces a single entry point for SAST FPR parsing. There are no intended user-facing behavior changes.

Changes

1. Remove legacy DOM-based parsers (aee369e524)

  • Deleted the unused FVDLProcessor and WebInspectParser. StreamingFVDLProcessor and StreamingWebInspectParser are now the only parsers in use.
  • Deleted helper classes used exclusively by the legacy FVDLProcessor:
    • ReplacementParser
    • VulnerabilityMapper
    • NodeProcessor
    • TraceProcessor
    • SnippetProcessor
    • MetaInfoProcessor
    • AuxiliaryProcessor
  • Deleted the generated fpr.jaxb classes (~18,000 lines across 100 classes) and the unused TraceEntry.
  • Removed dead JAXB-based code from DescriptionProcessor, XmlUtils, and Entry.
  • Updated StreamingWebInspectParserTest to validate XXE protection against the streaming parser only.
  • Removed stale Javadoc and comments referencing the deleted classes.

2. Remove unused JAXB dependencies and native-image config (d43eaefbc0)

  • Removed the following dependencies from fcli-aviator-common:
    • jakarta.xml.bind-api
    • jaxb-runtime
    • jakarta.activation
  • Removed unused JAXB annotations from AuditResult, which is not marshalled through JAXB.
  • Deleted obsolete native-image configuration files:
    • jaxb/reflect-config.json
    • jaxb/resource-config.json
    • grpc/proxy-config.json
  • Kept this work in a separate commit to simplify rollback if native-image builds reveal unexpected issues.

3. Unify SAST FPR parsing (b4d21fd90e)

  • Added SastFprParser.parse(fprHandle, sourceDecoder), which executes the shared parsing sequence:
    1. AuditProcessor
    2. StreamingFVDLProcessor
    3. FPRProcessor
    4. ParsedFprData
  • Updated AuditFPR and AviatorSSCCorrelateFprParser to use the new shared parser instead of wiring processors individually.
  • Removed outdated "DOM parser comparison" references from AviatorSSCCorrelateFprParser.
  • Added SastFprParserTest to verify that the facade returns the same results as the previous manual processor wiring.

Acceptance Criteria

  • AC1 (Legacy Removal): Complete. No production references to the removed DOM/JAXB parsers remain.
  • AC2 (Unified Framework): Complete for SAST parsing. AuditFPR and the correlate command now share SastFprParser.
  • AC3 (Compatibility): Existing parser tests (StreamingFVDLProcessorTest, FPRProcessorTest, StreamingWebInspectParserTest, and others) continue to pass unchanged. SastFprParserTest verifies parity with the previous implementation. Real-world FPR output comparison has not been performed.

Out of Scope

  • RemediationProcessor continues to use StreamingFVDLProcessor directly because it loads build metadata rather than full vulnerability data.
  • audit.xml DOM processing is unchanged because it requires reading and modifying XML rather than parsing FVDL content.
  • DAST parsing was already standardized on a single streaming parser and is unaffected by this change.

Testing

Automated Tests

  • :fcli-core:fcli-aviator-common:test
  • :fcli-core:fcli-aviator:test
  • :fcli-core:fcli-app:test

All pass locally.

Additional Verification

  • After commit 2, the fcli-app runtime classpath contains no JAXB or jakarta.activation dependencies.
  • No source code, build configuration, or native-image configuration files reference JAXB-related components.
  • GraalVM native-image builds have not been verified locally. The native-image-* CI jobs will validate compatibility. The removed configuration files referenced JAXB classes that no longer exist.

Anishkumar N and others added 2 commits October 14, 2026 14:37
Remove FVDLProcessor, WebInspectParser and their legacy-only helpers, the unused
fpr.jaxb generated model classes, and the unused TraceEntry/JAXB helper code.
StreamingFVDLProcessor and StreamingWebInspectParser are the only parsers in use.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JAXB was only used by the removed legacy FVDL parser. Drop the jakarta.xml.bind,
jaxb-runtime and jakarta.activation dependencies, the inert JAXB annotations on
AuditResult, and the JAXB-specific native-image reflect/resource/proxy configs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@anishkumarnagaraj-design
anishkumarnagaraj-design changed the base branch from dev/v3.x to feat/v3.x/aviator/27.1 October 14, 2026 09:31
@anishkumarnagaraj-design

Copy link
Copy Markdown
Contributor Author

Sast audit regression
SAST Audit regression

AuditFPR and the correlate-sast-dast parser each wired AuditProcessor,
StreamingFVDLProcessor and FPRProcessor separately. Introduce SastFprParser as
the single entry point and use it from both, and drop stale references to the
removed DOM parser.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@anishkumarnagaraj-design
anishkumarnagaraj-design force-pushed the feat/v3.x/aviator/remove-legacy-fvdl-parsing branch from b4d21fd to c4e164d Compare October 15, 2026 06:58
@anishkumarnagaraj-design

Copy link
Copy Markdown
Contributor Author

tested with fcli.exe
SAST audit regression from fcli exe
Correlate SAST DAST regression from fcli exe

This branch has not been deployed

No deployments
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.

2 participants