repowiserepowise
Sign in
keyfactor/ejbca-ce
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowisekeyfactor/ejbca-ce
EJ
EJ

keyfactor / ejbca-ce

javamain3eca262393.1K linessynced 2mo ago

Code health

6.1out of 10Fair

This codebase scores 6.1 out of 10 for code health, which we rate fair. It also scores maintainability 6.7 and static performance 9.7 out of 10. The three are scored separately and never blended into one number.

Full health report →
Documentation5,509pages0 with model-written prose, 5,509 built from the indexDead code224exportsUnused exports that nothing in the graph reaches

Do next

4 things worth doing this quarter.

Worth planning

  • Break up execute (CCN 53, 237 lines)

    modules/ejbca-ejb-cli/src/org/ejbca/ui/cli/ca/UpdatePublicKeyBlacklistCommand.java:267

    execute nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy; 1 file imports it.

    gain
    up to +2.5 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 53, 237 lines, nests 9 deep
    severity
    critical
    Medium effort, worth a check
  • Break up doGet (CCN 26, 157 lines)

    modules/admin-gui/src/org/ejbca/ui/web/admin/cainterface/CACertReqServlet.java:123

    doGet nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy.

    gain
    up to +2.2 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 26, 157 lines, nests 8 deep
    severity
    critical
    Medium effort, worth a check
  • Delete 221 unused symbols and files (35,764 lines)

    Nothing in the graph reaches them, across 176 files; every reader and agent pays to skip them.

    symbols
    221
    lines
    35,764
    safe to delete
    Yes(inferred)
    Medium effort
  • Break up scepCertRequest (CCN 60, 283 lines)

    modules/ejbca-ejb/src/org/ejbca/core/protocol/scep/ScepMessageDispatcherSessionBean.java:587

    scepCertRequest nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy; 2 files import it.

    gain
    up to +1.2 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 60, 283 lines, nests 9 deep
    severity
    critical
    Medium effort, worth a check

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
Lines of code
393.1K
Files
2,828
Symbols
33,861
Modules
4
Languages
4

Recent activity

All commits →

Commits

  • c10a86d4Update README.md8mo ago
  • 734fb027Update README.md8mo ago
  • a41ffadfl10n(ra-gui): update full French (v9.3.7)9mo ago
  • 0059a653l10n(admin-gui): update full French (v9.3.7)9mo ago
  • 7e1f9943Remove double resources definiton9mo ago
  • bff4252aECA-13644: Bump version to 9.3.79mo ago

Decisions

  • Removed old interface cache and replaced with ConcurrentHashMap; moved EjbRemoteHelper to CESeCoreproposed · 2mo ago
  • Reverted removal of upgrade bean GUI appender codeproposed · 2mo ago
  • Bump compatibility version only when class is not backward-compatibleproposed · 2mo ago
  • Use deterministic collection types for serialized database entitiesproposed · 2mo ago
▸

Everything we found

8,084 open

Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.

  • worst item is critical severity. Code health5,496Untested hotspot · modules/ejbca-common/src/org/ejbca/core/protocol/scep/ScepRequestMessage.java19 findings · 9.5 deducted→
  • worst item is medium severity. Refactoring870<anonymous>+1.5 health, M effort · modules/ra-gui/resources/js/common.js→
  • worst item is medium severity. Decisions4Removed old interface cache and replaced with ConcurrentHashMap; moved EjbRemoteHelper to CESeCore4 awaiting review→
  • worst item is medium severity. Ownership1,419bin/extra/cronverify.sh100% single-owner concentration, not touched in 90 days→
  • worst item is low severity. Dead code295modules/admin-gui/src/org/ejbca/ui/web/admin/administratorprivileges/AccessRulesBean.javaUnreachable symbol (820 lines)→

Composition

Open the graph →
java 98%
kotlin 2%shell 1%javascript 0%

Explore this codebase

  • Docs5,509 pages across 4 modules→
  • ChatAsk this codebase a question and get an answer with its sources.→
  • Files2,828 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 290 entry points→
  • Code healthPer-file scores, 6,581 open findings, coverage and refactoring targets→
  • Knowledge graphEntities, communities, and the paths between them→
  • Change couplingFiles that keep changing together, mined from commit history→
  • CommitsChange-risk ranked history with agent provenance→
  • ContributorsBus factor, per-file maintainers, and the human/agent split→
  • StatsSize class, origin, lifetime churn, rhythm and records→
  • CostsWhat indexing this snapshot cost, by model and by run.→