apache / incubator-kie-kogito-runtimes
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
properties
xsd
txt
proto
policy
cmd
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main129538 LOC (46%) 2,796 files
test87420 LOC (31%) 1,233 files
generated12535 LOC (4%) 3 files
build and deployment25485 LOC (9%) 352 files
other23917 LOC (8%) 409 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
xsd
proto
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2796 files match defined criteria (129,538 LOC, 100.0% vs. main code):
    • 2,651 *.java files (124,891 LOC)
    • 9 *.xsd files (2,276 LOC)
    • 42 *.yaml files (636 LOC)
    • 64 *.xml files (537 LOC)
    • 8 *.proto files (419 LOC)
    • 12 *.sql files (378 LOC)
    • 7 *.html files (179 LOC)
    • 2 *.avsc files (112 LOC)
    • 1 *.groovy files (110 LOC)
  • " *.java" is biggest, containing 96.41% of LOC.
  • " *.groovy" is smallest, containing 0.08% of LOC.


*.java124891 LOC (96%) 2,651 files
*.xsd2276 LOC (1%) 9 files
*.yaml636 LOC (<1%) 42 files
*.xml537 LOC (<1%) 64 files
*.proto419 LOC (<1%) 8 files
*.sql378 LOC (<1%) 12 files
*.html179 LOC (<1%) 7 files
*.avsc112 LOC (<1%) 2 files
*.groovy110 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
policy
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/test[.].*".
  • 1233 files match defined criteria (87,420 LOC, 67.5% vs. main code):
    • 1,036 *.java files (75,517 LOC)
    • 92 *.xml files (8,135 LOC)
    • 54 *.yaml files (2,980 LOC)
    • 2 *.html files (252 LOC)
    • 5 *.proto files (223 LOC)
    • 33 *.sql files (105 LOC)
    • 5 *.groovy files (96 LOC)
    • 4 *.policy files (88 LOC)
    • 1 *.avsc files (18 LOC)
    • 1 *.py files (6 LOC)
  • " *.java" is biggest, containing 86.38% of LOC.
  • " *.py" is smallest, containing 0.01% of LOC.


*.java75517 LOC (86%) 1,036 files
*.xml8135 LOC (9%) 92 files
*.yaml2980 LOC (3%) 54 files
*.html252 LOC (<1%) 2 files
*.proto223 LOC (<1%) 5 files
*.sql105 LOC (<1%) 33 files
*.groovy96 LOC (<1%) 5 files
*.policy88 LOC (<1%) 4 files
*.avsc18 LOC (<1%) 1 file
*.py6 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "//[ ]*Generated by .*".
  • 3 files match defined criteria (12,535 LOC, 9.7% vs. main code). All matches are in *.java files.


*.java12535 LOC (100%) 3 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/jenkins/.*[.]groovy".
  • 352 files match defined criteria (25,485 LOC, 19.7% vs. main code). All matches are in *.xml files.


*.xml25485 LOC (100%) 352 files
Other Code
properties
xsd
txt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]adoc".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*/resources/.*[.]xsd".
  • 409 files match defined criteria (23,917 LOC, 18.5% vs. main code):
    • 191 *.json files (15,063 LOC)
    • 50 *.md files (2,841 LOC)
    • 125 *.properties files (2,768 LOC)
    • 9 *.xsd files (2,276 LOC)
    • 16 *.txt files (357 LOC)
    • 15 *.java files (326 LOC)
    • 2 *.adoc files (246 LOC)
    • 1 *.yaml files (40 LOC)
  • " *.json" is biggest, containing 62.98% of LOC.
  • " *.yaml" is smallest, containing 0.17% of LOC.


*.json15063 LOC (62%) 191 files
*.md2841 LOC (11%) 50 files
*.properties2768 LOC (11%) 125 files
*.xsd2276 LOC (9%) 9 files
*.txt357 LOC (1%) 16 files
*.java326 LOC (1%) 15 files
*.adoc246 LOC (1%) 2 files
*.yaml40 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 19:52