fix(logging): remove duplicate Commons Logging runtime binding - #340
fix(logging): remove duplicate Commons Logging runtime binding#340seonghobae wants to merge 4 commits into
Conversation
|
Warning Review limit reached
Next review available in: 38 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
Pull request was closed
Objective
Advance issue #320 by removing the duplicate Commons Logging runtime provider while preserving Spring's
spring-jclbridge, representative PDFBox behavior, exact coverage, public Javadocs, SBOM-sensitive dependency policy, and normal repository protection.Fresh exact state — 2026-08-10
523dd8403ad1ccfcc88ed2fe7226c90d7f02c7b5;main:55d7ae8647208e301f282350f076eeddaba61d11;pom.xml, the runtime-provider Java regression, and one repository dependency-intent contract;31394251655: success;31394253262: success;31394251794: success;31394251697: success;COMMENTED, not approval; both Semgrep threads created on the RED predecessor are resolved and outdated after the fix;Test-first RCA and narrow remedies
The focused Java
CommonsLoggingRuntimeBindingTestenumerates every runtime resource fororg/apache/commons/logging/LogFactory.class, requires exactly one provider, and requires that provider to be Spring'sspring-jclbridge. The production change excludes onlycommons-logging:commons-loggingfrom Clearfolio's directorg.apache.pdfbox:pdfboxdependency.A second deterministic repository contract now protects the dependency declaration itself: PDFBox must retain the standalone Commons Logging exclusion, the project must not directly reintroduce
commons-logging:commons-logging, and the intentional Log4j2 backend remains declared. This catches future dependency-authority drift without depending only on runtime classpath enumeration.SAST RED → GREEN
Test head
1eeeb5fbfc09b0feb3bda257d08ad10c9fd92e23initially parsedpom.xmlwith Python's nativexml.etree.ElementTree. CI, Security Scan and fuzz succeeded, but SAST Semgrep run31393873748correctly failed with twopython.lang.security.use-defused-xml-parse.use-defused-xml-parsefindings because the parser class is unsafe for untrusted XML/XXE boundaries.Rather than suppressing the finding or adding a new parser dependency for a tiny trusted repository contract, current head
523dd8403ad1ccfcc88ed2fe7226c90d7f02c7b5rewrites the check as bounded UTF-8 text plus regular-expression matching of Maven dependency blocks. The two GHAS findings became resolved/outdated, and exact-head SAST is GREEN. No production behavior or security gate was weakened.Current exact-head Maven/CI acceptance also proves the PDFBox exclusion preserves representative PDF parsing/generation behavior, zero-missed owned production line/branch coverage, warning-free public Javadocs, packaging, and the existing Java/script contract suite.
Scope and follow-through
Changed files:
pom.xmlsrc/test/java/com/clearfolio/viewer/config/CommonsLoggingRuntimeBindingTest.javascripts/test_commons_logging_dependency_contract.pyThis slice removes one duplicate runtime binding and protects its dependency intent. It does not claim that every future packaging profile is automatically clean. Release acceptance must still verify the exact packaged dependency graph, startup diagnostics, CycloneDX SBOM, license policy, third-party attribution and provenance after later dependency changes. PR #305 remains the canonical documentation and release-traceability writer.
Merge gate
Keep this exact head unchanged. Merge only after live repository protection still sees every applicable required check passing, zero valid unresolved findings, and the counted approving review from a qualifying independent reviewer with write access. GHAS
COMMENTED, automated checks and model output are not approval.