apache / druid
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
e
q
snap
properties
txt
orc
proto
tex
bib
mjs
mdx
ps
editorconfig
npmrc
cfg
mysql
aux
xsd
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.

main657090 LOC (44%) 6,034 files
test759093 LOC (51%) 5,781 files
generated2469 LOC (<1%) 3 files
build and deployment16926 LOC (1%) 87 files
other36683 LOC (2%) 517 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
tex
orc
bib
mjs
proto
mysql
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 6034 files match defined criteria (657,090 LOC, 100.0% vs. main code):
    • 5,462 *.java files (576,123 LOC)
    • 238 *.tsx files (44,413 LOC)
    • 127 *.ts files (12,804 LOC)
    • 162 *.scss files (5,482 LOC)
    • 1 *.yaml files (5,373 LOC)
    • 3 *.cls files (4,305 LOC)
    • 3 *.tex files (2,867 LOC)
    • 4 *.orc files (1,375 LOC)
    • 9 *.xml files (1,330 LOC)
    • 3 *.bib files (1,240 LOC)
    • 5 *.js files (571 LOC)
    • 3 *.ftl files (355 LOC)
    • 2 *.mjs files (197 LOC)
    • 2 *.proto files (160 LOC)
    • 2 *.g4 files (148 LOC)
    • 2 *.py files (121 LOC)
    • 3 *.css files (115 LOC)
    • 1 *.html files (58 LOC)
    • 1 *.mysql files (29 LOC)
    • 1 *.rdf files (24 LOC)
  • " *.java" is biggest, containing 87.68% of LOC.
  • " *.rdf" is smallest, containing 0% of LOC.


*.java576123 LOC (87%) 5,462 files
*.tsx44413 LOC (6%) 238 files
*.ts12804 LOC (1%) 127 files
*.scss5482 LOC (<1%) 162 files
*.yaml5373 LOC (<1%) 1 file
*.cls4305 LOC (<1%) 3 files
*.tex2867 LOC (<1%) 3 files
*.orc1375 LOC (<1%) 4 files
*.xml1330 LOC (<1%) 9 files
*.bib1240 LOC (<1%) 3 files
*.js571 LOC (<1%) 5 files
*.ftl355 LOC (<1%) 3 files
*.mjs197 LOC (<1%) 2 files
*.proto160 LOC (<1%) 2 files
*.g4148 LOC (<1%) 2 files
*.py121 LOC (<1%) 2 files
*.css115 LOC (<1%) 3 files
*.html58 LOC (<1%) 1 file
*.mysql29 LOC (<1%) 1 file
*.rdf24 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
e
snap
q
orc
proto
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/test[-]data/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
    • files with paths like ".*[.]snap".
    • files with paths like ".*[.]spec[.]tsx".
    • files with paths like ".*[.]spec[.]ts".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/[Mm]ocks/.*".
  • 5781 files match defined criteria (759,093 LOC, 115.5% vs. main code):
    • 3,032 *.java files (631,069 LOC)
    • 1,040 *.e files (63,937 LOC)
    • 105 *.snap files (41,244 LOC)
    • 58 *.ts files (9,082 LOC)
    • 47 *.yaml files (3,174 LOC)
    • 1,035 *.q files (2,344 LOC)
    • 111 *.tsx files (1,978 LOC)
    • 18 *.xml files (1,905 LOC)
    • 266 *.sql files (1,713 LOC)
    • 36 *.sh files (1,243 LOC)
    • 13 *.py files (879 LOC)
    • 12 *.orc files (186 LOC)
    • 1 *.avsc files (185 LOC)
    • 3 *.proto files (121 LOC)
    • 3 *.js files (22 LOC)
    • 1 *.thrift files (11 LOC)
  • " *.java" is biggest, containing 83.13% of LOC.
  • " *.thrift" is smallest, containing 0% of LOC.


*.java631069 LOC (83%) 3,032 files
*.e63937 LOC (8%) 1,040 files
*.snap41244 LOC (5%) 105 files
*.ts9082 LOC (1%) 58 files
*.yaml3174 LOC (<1%) 47 files
*.q2344 LOC (<1%) 1,035 files
*.tsx1978 LOC (<1%) 111 files
*.xml1905 LOC (<1%) 18 files
*.sql1713 LOC (<1%) 266 files
*.sh1243 LOC (<1%) 36 files
*.py879 LOC (<1%) 13 files
*.orc186 LOC (<1%) 12 files
*.avsc185 LOC (<1%) 1 file
*.proto121 LOC (<1%) 3 files
*.js22 LOC (<1%) 3 files
*.thrift11 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
ps
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • 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[!].*".
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*[.](ps|eps|pfa)".
    • files with any line of content like "\<\!\-\-[ ]*Generated by .*".
  • 3 files match defined criteria (2,469 LOC, 0.4% vs. main code):
    • 1 *.java files (2,369 LOC)
    • 1 *.py files (99 LOC)
    • 1 *.ps files (1 LOC)
  • " *.java" is biggest, containing 95.95% of LOC.
  • " *.ps" is smallest, containing 0.04% of LOC.


*.java2369 LOC (95%) 1 file
*.py99 LOC (4%) 1 file
*.ps1 LOC (<1%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
mjs
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 ".*/assembly[.]xml".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
  • 87 files match defined criteria (16,926 LOC, 2.6% vs. main code):
    • 78 *.xml files (16,216 LOC)
    • 8 *.sh files (532 LOC)
    • 1 *.mjs files (178 LOC)
  • " *.xml" is biggest, containing 95.81% of LOC.
  • " *.mjs" is smallest, containing 1.05% of LOC.


*.xml16216 LOC (95%) 78 files
*.sh532 LOC (3%) 8 files
*.mjs178 LOC (1%) 1 file
Other Code
properties
txt
tex
bib
aux
mdx
proto
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]npmrc".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]mdx".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[.]dockerignore".
  • 517 files match defined criteria (36,683 LOC, 5.6% vs. main code):
    • 371 *.json files (26,749 LOC)
    • 44 *.md files (3,361 LOC)
    • 57 *.properties files (2,445 LOC)
    • 1 *.cls files (1,280 LOC)
    • 14 *.xml files (781 LOC)
    • 19 *.txt files (600 LOC)
    • 1 *.ipynb files (416 LOC)
    • 1 *.tex files (404 LOC)
    • 1 *.bib files (377 LOC)
    • 2 *.py files (113 LOC)
    • 1 *.aux files (54 LOC)
    • 2 *.mdx files (45 LOC)
    • 1 *.sh files (26 LOC)
    • 1 *.proto files (25 LOC)
    • 1 *.cfg files (7 LOC)
  • " *.json" is biggest, containing 72.92% of LOC.
  • " *.cfg" is smallest, containing 0.02% of LOC.


*.json26749 LOC (72%) 371 files
*.md3361 LOC (9%) 44 files
*.properties2445 LOC (6%) 57 files
*.cls1280 LOC (3%) 1 file
*.xml781 LOC (2%) 14 files
*.txt600 LOC (1%) 19 files
*.ipynb416 LOC (1%) 1 file
*.tex404 LOC (1%) 1 file
*.bib377 LOC (1%) 1 file
*.py113 LOC (<1%) 2 files
*.aux54 LOC (<1%) 1 file
*.mdx45 LOC (<1%) 2 files
*.sh26 LOC (<1%) 1 file
*.proto25 LOC (<1%) 1 file
*.cfg7 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:31