apache / camel
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
txt
xsd
proto
xsl
wsdl
pub
robot
xquery
tm
sch
cql
cfg
cmd
xslt
libsonnet
spec
tab
ini
eslintignore
gitattributes
asn1
pb
mjs
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.

main756886 LOC (35%) 8,828 files
test757270 LOC (35%) 13,930 files
generated429390 LOC (20%) 4,341 files
build and deployment51991 LOC (2%) 561 files
other142382 LOC (6%) 3,068 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
xsl
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 8828 files match defined criteria (756,886 LOC, 100.0% vs. main code):
    • 8,549 *.java files (742,317 LOC)
    • 61 *.proto files (6,627 LOC)
    • 9 *.xsl files (2,983 LOC)
    • 42 *.xml files (1,779 LOC)
    • 129 *.html files (1,167 LOC)
    • 1 *.htm files (723 LOC)
    • 13 *.yaml files (670 LOC)
    • 5 *.xhtml files (261 LOC)
    • 3 *.cls files (149 LOC)
    • 1 *.css files (119 LOC)
    • 14 *.groovy files (60 LOC)
    • 1 *.rdf files (31 LOC)
  • " *.java" is biggest, containing 98.08% of LOC.
  • " *.rdf" is smallest, containing 0% of LOC.


*.java742317 LOC (98%) 8,549 files
*.proto6627 LOC (<1%) 61 files
*.xsl2983 LOC (<1%) 9 files
*.xml1779 LOC (<1%) 42 files
*.html1167 LOC (<1%) 129 files
*.htm723 LOC (<1%) 1 file
*.yaml670 LOC (<1%) 13 files
*.xhtml261 LOC (<1%) 5 files
*.cls149 LOC (<1%) 3 files
*.css119 LOC (<1%) 1 file
*.groovy60 LOC (<1%) 14 files
*.rdf31 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
wsdl
xsl
asn1
robot
proto
tm
sch
cql
xslt
xquery
pub
spec
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • 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[.].*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/testing[.].*".
  • 13930 files match defined criteria (757,270 LOC, 100.1% vs. main code):
    • 11,806 *.java files (687,852 LOC)
    • 1,713 *.xml files (45,528 LOC)
    • 113 *.groovy files (10,287 LOC)
    • 70 *.yaml files (5,221 LOC)
    • 29 *.wsdl files (3,049 LOC)
    • 15 *.js files (2,255 LOC)
    • 50 *.xsl files (735 LOC)
    • 1 *.asn1 files (419 LOC)
    • 32 *.sql files (388 LOC)
    • 15 *.html files (330 LOC)
    • 7 *.robot files (172 LOC)
    • 10 *.ftl files (164 LOC)
    • 4 *.proto files (127 LOC)
    • 7 *.mustache files (120 LOC)
    • 1 *.rs files (89 LOC)
    • 5 *.tm files (83 LOC)
    • 2 *.thrift files (56 LOC)
    • 4 *.sch files (49 LOC)
    • 4 *.cql files (47 LOC)
    • 5 *.sh files (37 LOC)
    • 3 *.avsc files (37 LOC)
    • 1 *.toml files (33 LOC)
    • 1 *.gradle files (31 LOC)
    • 3 *.graphql files (30 LOC)
    • 2 *.xslt files (29 LOC)
    • 5 *.xquery files (24 LOC)
    • 1 *.graphqls files (24 LOC)
    • 1 *.bat files (18 LOC)
    • 16 *.pub files (16 LOC)
    • 2 *.spec files (11 LOC)
    • 1 *.css files (8 LOC)
    • 1 *.py files (1 LOC)
  • " *.java" is biggest, containing 90.83% of LOC.
  • " *.py" is smallest, containing 0% of LOC.


*.java687852 LOC (90%) 11,806 files
*.xml45528 LOC (6%) 1,713 files
*.groovy10287 LOC (1%) 113 files
*.yaml5221 LOC (<1%) 70 files
*.wsdl3049 LOC (<1%) 29 files
*.js2255 LOC (<1%) 15 files
*.xsl735 LOC (<1%) 50 files
*.asn1419 LOC (<1%) 1 file
*.sql388 LOC (<1%) 32 files
*.html330 LOC (<1%) 15 files
*.robot172 LOC (<1%) 7 files
*.ftl164 LOC (<1%) 10 files
*.proto127 LOC (<1%) 4 files
*.mustache120 LOC (<1%) 7 files
*.rs89 LOC (<1%) 1 file
*.tm83 LOC (<1%) 5 files
*.thrift56 LOC (<1%) 2 files
*.sch49 LOC (<1%) 4 files
*.cql47 LOC (<1%) 4 files
*.sh37 LOC (<1%) 5 files
*.avsc37 LOC (<1%) 3 files
*.toml33 LOC (<1%) 1 file
*.gradle31 LOC (<1%) 1 file
*.graphql30 LOC (<1%) 3 files
*.xslt29 LOC (<1%) 2 files
*.xquery24 LOC (<1%) 5 files
*.graphqls24 LOC (<1%) 1 file
*.bat18 LOC (<1%) 1 file
*.pub16 LOC (<1%) 16 files
*.spec11 LOC (<1%) 2 files
*.css8 LOC (<1%) 1 file
*.py1 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/generated/.*".
    • files with any line of content like "// This file was generated .*".
    • files with any line of content like "//[ ]*Generated by .*".
  • 4341 files match defined criteria (429,390 LOC, 56.7% vs. main code):
    • 2,544 *.java files (379,480 LOC)
    • 1,250 *.json files (44,239 LOC)
    • 546 *.properties files (5,664 LOC)
    • 1 *.html files (7 LOC)
  • " *.java" is biggest, containing 88.38% of LOC.
  • " *.html" is smallest, containing 0% of LOC.


*.java379480 LOC (88%) 2,544 files
*.json44239 LOC (10%) 1,250 files
*.properties5664 LOC (1%) 546 files
*.html7 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 ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]gradle".
  • 561 files match defined criteria (51,991 LOC, 6.9% vs. main code):
    • 550 *.xml files (51,169 LOC)
    • 10 *.sh files (744 LOC)
    • 1 *.bat files (78 LOC)
  • " *.xml" is biggest, containing 98.42% of LOC.
  • " *.bat" is smallest, containing 0.15% of LOC.


*.xml51169 LOC (98%) 550 files
*.sh744 LOC (1%) 10 files
*.bat78 LOC (<1%) 1 file
Other Code
txt
properties
xsd
ini
cfg
libsonnet
tab
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]adoc".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/resources/.*[.]xsd".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]libsonnet".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]tab".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*[.]pb".
  • 3068 files match defined criteria (142,382 LOC, 18.8% vs. main code):
    • 1,512 *.json files (88,058 LOC)
    • 270 *.txt files (25,468 LOC)
    • 1,154 *.properties files (21,660 LOC)
    • 69 *.xsd files (4,122 LOC)
    • 21 *.java files (1,474 LOC)
    • 27 *.md files (1,235 LOC)
    • 7 *.adoc files (187 LOC)
    • 2 *.ini files (58 LOC)
    • 2 *.cfg files (44 LOC)
    • 2 *.libsonnet files (40 LOC)
    • 2 *.tab files (36 LOC)
  • " *.json" is biggest, containing 61.85% of LOC.
  • " *.tab" is smallest, containing 0.03% of LOC.


*.json88058 LOC (61%) 1,512 files
*.txt25468 LOC (17%) 270 files
*.properties21660 LOC (15%) 1,154 files
*.xsd4122 LOC (2%) 69 files
*.java1474 LOC (1%) 21 files
*.md1235 LOC (<1%) 27 files
*.adoc187 LOC (<1%) 7 files
*.ini58 LOC (<1%) 2 files
*.cfg44 LOC (<1%) 2 files
*.libsonnet40 LOC (<1%) 2 files
*.tab36 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:23