apache / zookeeper
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
txt
t
cfg
cmd
mako
m4
tla
properties
xsl
in
gitattributes
xs
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.

main96830 LOC (50%) 673 files
test74423 LOC (38%) 504 files
generated11 LOC (<1%) 1 file
build and deployment3945 LOC (2%) 41 files
other18359 LOC (9%) 92 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
tla
t
xs
mako
cfg
in
xsl
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 673 files match defined criteria (96,830 LOC, 100.0% vs. main code):
    • 514 *.java files (60,325 LOC)
    • 17 *.c files (10,410 LOC)
    • 18 *.js files (5,605 LOC)
    • 8 *.cc files (4,594 LOC)
    • 3 *.tla files (3,551 LOC)
    • 28 *.h files (3,020 LOC)
    • 12 *.t files (2,479 LOC)
    • 1 *.xs files (2,085 LOC)
    • 21 *.py files (1,662 LOC)
    • 10 *.html files (856 LOC)
    • 6 *.css files (780 LOC)
    • 15 *.xml files (545 LOC)
    • 7 *.mako files (357 LOC)
    • 7 *.cfg files (237 LOC)
    • 1 *.in files (110 LOC)
    • 1 *.pm files (83 LOC)
    • 1 *.cmake files (51 LOC)
    • 1 *.pl files (32 LOC)
    • 1 *.xsl files (24 LOC)
    • 1 *.cmd files (24 LOC)
  • " *.java" is biggest, containing 62.3% of LOC.
  • " *.cmd" is smallest, containing 0.02% of LOC.


*.java60325 LOC (62%) 514 files
*.c10410 LOC (10%) 17 files
*.js5605 LOC (5%) 18 files
*.cc4594 LOC (4%) 8 files
*.tla3551 LOC (3%) 3 files
*.h3020 LOC (3%) 28 files
*.t2479 LOC (2%) 12 files
*.xs2085 LOC (2%) 1 file
*.py1662 LOC (1%) 21 files
*.html856 LOC (<1%) 10 files
*.css780 LOC (<1%) 6 files
*.xml545 LOC (<1%) 15 files
*.mako357 LOC (<1%) 7 files
*.cfg237 LOC (<1%) 7 files
*.in110 LOC (<1%) 1 file
*.pm83 LOC (<1%) 1 file
*.cmake51 LOC (<1%) 1 file
*.pl32 LOC (<1%) 1 file
*.xsl24 LOC (<1%) 1 file
*.cmd24 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*_tests[.].*".
  • 504 files match defined criteria (74,423 LOC, 76.9% vs. main code):
    • 435 *.java files (64,021 LOC)
    • 27 *.cc files (6,779 LOC)
    • 14 *.h files (1,884 LOC)
    • 14 *.py files (1,082 LOC)
    • 6 *.sh files (347 LOC)
    • 6 *.xml files (285 LOC)
    • 2 *.cfg files (25 LOC)
  • " *.java" is biggest, containing 86.02% of LOC.
  • " *.cfg" is smallest, containing 0.03% of LOC.


*.java64021 LOC (86%) 435 files
*.cc6779 LOC (9%) 27 files
*.h1884 LOC (2%) 14 files
*.py1082 LOC (1%) 14 files
*.sh347 LOC (<1%) 6 files
*.xml285 LOC (<1%) 6 files
*.cfg25 LOC (<1%) 2 files
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/generated/.*".
  • 1 file matches defined criteria (11 LOC, 0.0% vs. main code). All matches are in *.html files.


*.html11 LOC (100%) 1 file
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 ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/build[.]xml".
  • 41 files match defined criteria (3,945 LOC, 4.1% vs. main code):
    • 30 *.xml files (3,678 LOC)
    • 11 *.sh files (267 LOC)
  • " *.xml" is biggest, containing 93.23% of LOC.
  • " *.sh" is smallest, containing 6.77% of LOC.


*.xml3678 LOC (93%) 30 files
*.sh267 LOC (6%) 11 files
Other Code
txt
xsl
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ee]xamples/.*".
  • 92 files match defined criteria (18,359 LOC, 19.0% vs. main code):
    • 31 *.md files (9,253 LOC)
    • 52 *.txt files (8,465 LOC)
    • 4 *.xml files (331 LOC)
    • 1 *.xsl files (140 LOC)
    • 3 *.properties files (92 LOC)
    • 1 *.py files (78 LOC)
  • " *.md" is biggest, containing 50.4% of LOC.
  • " *.py" is smallest, containing 0.42% of LOC.


*.md9253 LOC (50%) 31 files
*.txt8465 LOC (46%) 52 files
*.xml331 LOC (1%) 4 files
*.xsl140 LOC (<1%) 1 file
*.properties92 LOC (<1%) 3 files
*.py78 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:15