apache / drill
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
proto
properties
xsd
in
eps
editorconfig
ipp
props
cql
hcl
plist
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.

main357396 LOC (52%) 3,742 files
test210191 LOC (30%) 1,129 files
generated57525 LOC (8%) 32 files
build and deployment12802 LOC (1%) 81 files
other42228 LOC (6%) 689 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
in
ipp
props
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3742 files match defined criteria (357,396 LOC, 100.0% vs. main code):
    • 3,615 *.java files (337,482 LOC)
    • 17 *.cpp files (6,355 LOC)
    • 40 *.ftl files (5,352 LOC)
    • 22 *.hpp files (3,193 LOC)
    • 9 *.proto files (1,350 LOC)
    • 9 *.js files (845 LOC)
    • 10 *.xml files (774 LOC)
    • 4 *.g4 files (604 LOC)
    • 1 *.c files (538 LOC)
    • 2 *.yaml files (376 LOC)
    • 3 *.cmake files (163 LOC)
    • 3 *.h files (143 LOC)
    • 2 *.in files (88 LOC)
    • 1 *.ipp files (58 LOC)
    • 2 *.css files (42 LOC)
    • 1 *.props files (18 LOC)
    • 1 *.html files (15 LOC)
  • " *.java" is biggest, containing 94.43% of LOC.
  • " *.html" is smallest, containing 0% of LOC.


*.java337482 LOC (94%) 3,615 files
*.cpp6355 LOC (1%) 17 files
*.ftl5352 LOC (1%) 40 files
*.hpp3193 LOC (<1%) 22 files
*.proto1350 LOC (<1%) 9 files
*.js845 LOC (<1%) 9 files
*.xml774 LOC (<1%) 10 files
*.g4604 LOC (<1%) 4 files
*.c538 LOC (<1%) 1 file
*.yaml376 LOC (<1%) 2 files
*.cmake163 LOC (<1%) 3 files
*.h143 LOC (<1%) 3 files
*.in88 LOC (<1%) 2 files
*.ipp58 LOC (<1%) 1 file
*.css42 LOC (<1%) 2 files
*.props18 LOC (<1%) 1 file
*.html15 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
cql
hcl
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Tt]ests/.*".
  • 1129 files match defined criteria (210,191 LOC, 58.8% vs. main code):
    • 1,030 *.java files (206,888 LOC)
    • 59 *.sql files (1,201 LOC)
    • 29 *.xml files (1,101 LOC)
    • 7 *.cpp files (761 LOC)
    • 1 *.yaml files (103 LOC)
    • 1 *.cql files (84 LOC)
    • 1 *.sh files (32 LOC)
    • 1 *.hcl files (21 LOC)
  • " *.java" is biggest, containing 98.43% of LOC.
  • " *.hcl" is smallest, containing 0.01% of LOC.


*.java206888 LOC (98%) 1,030 files
*.sql1201 LOC (<1%) 59 files
*.xml1101 LOC (<1%) 29 files
*.cpp761 LOC (<1%) 7 files
*.yaml103 LOC (<1%) 1 file
*.cql84 LOC (<1%) 1 file
*.sh32 LOC (<1%) 1 file
*.hcl21 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
eps
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.](ps|eps|pfa)".
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*[.](py|java|h|cc|cpp|m|rb|php)" AND any line of content like ".*Generated by the protocol buffer compiler[.][ ]+DO NOT EDIT[!].*".
  • 32 files match defined criteria (57,525 LOC, 16.1% vs. main code):
    • 15 *.java files (21,117 LOC)
    • 8 *.cc files (15,409 LOC)
    • 2 *.eps files (12,455 LOC)
    • 7 *.h files (8,544 LOC)
  • " *.java" is biggest, containing 36.71% of LOC.
  • " *.h" is smallest, containing 14.85% of LOC.


*.java21117 LOC (36%) 15 files
*.cc15409 LOC (26%) 8 files
*.eps12455 LOC (21%) 2 files
*.h8544 LOC (14%) 7 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 ".*[.]sh".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/docker[-]compose[.]yaml".
  • 81 files match defined criteria (12,802 LOC, 3.6% vs. main code):
    • 59 *.xml files (11,262 LOC)
    • 20 *.sh files (1,321 LOC)
    • 2 *.bat files (219 LOC)
  • " *.xml" is biggest, containing 87.97% of LOC.
  • " *.bat" is smallest, containing 1.71% of LOC.


*.xml11262 LOC (87%) 59 files
*.sh1321 LOC (10%) 20 files
*.bat219 LOC (1%) 2 files
Other Code
txt
plist
xsd
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]plist".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/resources/.*[.]xsd".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[.]dockerignore".
  • 689 files match defined criteria (42,228 LOC, 11.8% vs. main code):
    • 589 *.json files (32,151 LOC)
    • 58 *.md files (7,077 LOC)
    • 32 *.txt files (1,930 LOC)
    • 1 *.plist files (812 LOC)
    • 3 *.xsd files (130 LOC)
    • 4 *.properties files (96 LOC)
    • 2 *.xml files (32 LOC)
  • " *.json" is biggest, containing 76.14% of LOC.
  • " *.xml" is smallest, containing 0.08% of LOC.


*.json32151 LOC (76%) 589 files
*.md7077 LOC (16%) 58 files
*.txt1930 LOC (4%) 32 files
*.plist812 LOC (1%) 1 file
*.xsd130 LOC (<1%) 3 files
*.properties96 LOC (<1%) 4 files
*.xml32 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:29