apache / lucene
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
properties
jflex
prefs
launch
cmd
project
patch
editorconfig
el
gnuplot
gitattributes
policy
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.

main444152 LOC (47%) 3,738 files
test398705 LOC (42%) 2,103 files
generated33144 LOC (3%) 64 files
build and deployment6359 LOC (<1%) 108 files
other53147 LOC (5%) 320 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
jflex
prefs
policy
project
gnuplot
launch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3738 files match defined criteria (444,152 LOC, 100.0% vs. main code):
    • 3,653 *.java files (428,758 LOC)
    • 27 *.py files (6,310 LOC)
    • 7 *.jflex files (3,486 LOC)
    • 1 *.yaml files (1,475 LOC)
    • 31 *.html files (1,361 LOC)
    • 1 *.rdf files (1,233 LOC)
    • 3 *.prefs files (559 LOC)
    • 2 *.toml files (266 LOC)
    • 4 *.pl files (160 LOC)
    • 2 *.groovy files (142 LOC)
    • 1 *.policy files (105 LOC)
    • 1 *.g4 files (81 LOC)
    • 1 *.project files (73 LOC)
    • 1 *.gnuplot files (67 LOC)
    • 2 *.launch files (40 LOC)
    • 1 *.xml files (36 LOC)
  • " *.java" is biggest, containing 96.53% of LOC.
  • " *.xml" is smallest, containing 0.01% of LOC.


*.java428758 LOC (96%) 3,653 files
*.py6310 LOC (1%) 27 files
*.jflex3486 LOC (<1%) 7 files
*.yaml1475 LOC (<1%) 1 file
*.html1361 LOC (<1%) 31 files
*.rdf1233 LOC (<1%) 1 file
*.prefs559 LOC (<1%) 3 files
*.toml266 LOC (<1%) 2 files
*.pl160 LOC (<1%) 4 files
*.groovy142 LOC (<1%) 2 files
*.policy105 LOC (<1%) 1 file
*.g481 LOC (<1%) 1 file
*.project73 LOC (<1%) 1 file
*.gnuplot67 LOC (<1%) 1 file
*.launch40 LOC (<1%) 2 files
*.xml36 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
launch
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*[.]tests[.].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
  • 2103 files match defined criteria (398,705 LOC, 89.8% vs. main code):
    • 2,058 *.java files (395,118 LOC)
    • 28 *.xml files (2,650 LOC)
    • 2 *.pl files (311 LOC)
    • 3 *.html files (286 LOC)
    • 8 *.gradle files (213 LOC)
    • 1 *.py files (83 LOC)
    • 1 *.htm files (26 LOC)
    • 1 *.launch files (17 LOC)
    • 1 *.cmd files (1 LOC)
  • " *.java" is biggest, containing 99.1% of LOC.
  • " *.cmd" is smallest, containing 0% of LOC.


*.java395118 LOC (99%) 2,058 files
*.xml2650 LOC (<1%) 28 files
*.pl311 LOC (<1%) 2 files
*.html286 LOC (<1%) 3 files
*.gradle213 LOC (<1%) 8 files
*.py83 LOC (<1%) 1 file
*.htm26 LOC (<1%) 1 file
*.launch17 LOC (<1%) 1 file
*.cmd1 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 .*".
    • files with paths like ".*/generated/.*".
  • 64 files match defined criteria (33,144 LOC, 7.5% vs. main code):
    • 34 *.java files (32,874 LOC)
    • 29 *.json files (235 LOC)
    • 1 *.md files (35 LOC)
  • " *.java" is biggest, containing 99.19% of LOC.
  • " *.md" is smallest, containing 0.11% of LOC.


*.java32874 LOC (99%) 34 files
*.json235 LOC (<1%) 29 files
*.md35 LOC (<1%) 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 ".*[.]gradle".
    • 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 ".*[.]bat".
  • 108 files match defined criteria (6,359 LOC, 1.4% vs. main code):
    • 103 *.gradle files (5,870 LOC)
    • 4 *.sh files (380 LOC)
    • 1 *.bat files (109 LOC)
  • " *.gradle" is biggest, containing 92.31% of LOC.
  • " *.bat" is smallest, containing 1.71% of LOC.


*.gradle5870 LOC (92%) 103 files
*.sh380 LOC (5%) 4 files
*.bat109 LOC (1%) 1 file
Other Code
txt
properties
patch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*[.]adoc".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
  • 320 files match defined criteria (53,147 LOC, 12.0% vs. main code):
    • 211 *.txt files (45,173 LOC)
    • 32 *.java files (2,974 LOC)
    • 15 *.md files (1,376 LOC)
    • 1 *.pl files (844 LOC)
    • 7 *.gradle files (658 LOC)
    • 3 *.svg files (593 LOC)
    • 7 *.properties files (517 LOC)
    • 29 *.json files (235 LOC)
    • 1 *.html files (215 LOC)
    • 4 *.adoc files (201 LOC)
    • 1 *.py files (195 LOC)
    • 6 *.css files (105 LOC)
    • 2 *.js files (42 LOC)
    • 1 *.patch files (19 LOC)
  • " *.txt" is biggest, containing 85% of LOC.
  • " *.patch" is smallest, containing 0.04% of LOC.


*.txt45173 LOC (84%) 211 files
*.java2974 LOC (5%) 32 files
*.md1376 LOC (2%) 15 files
*.pl844 LOC (1%) 1 file
*.gradle658 LOC (1%) 7 files
*.svg593 LOC (1%) 3 files
*.properties517 LOC (<1%) 7 files
*.json235 LOC (<1%) 29 files
*.html215 LOC (<1%) 1 file
*.adoc201 LOC (<1%) 4 files
*.py195 LOC (<1%) 1 file
*.css105 LOC (<1%) 6 files
*.js42 LOC (<1%) 2 files
*.patch19 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 20:26