corretto / corretto-jmc
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
classpath
txt
launch
xsd
ini
xslt
xsl
TXT
policy
cfg
  • 25 extensions are included in analyses: java, properties, xml, htm, classpath, txt, launch, xhtml, html, md, sh, css, bat, json, svg, xsd, yml, ini, xslt, xsl, gitignore, js, TXT, policy, cfg
  • 7 criteria are used to exclude files from analysis:
    • exclude files with path like ".*/[.][a-zA-Z0-9_]+.*" (Hidden files and folders) (124 files).
    • exclude files with path like ".*/(3rd|[Tt]hird)[-_]?[Pp]arty/.*" (Dependencies) (2 files).
    • exclude files with path like ".*/docs/.*" (Documentation) (1 file).
    • exclude files with path like ".*/git[-]history[.]txt" (Git history) (1 file).
    • exclude files with path like ".*/git[-][a-zA-Z0-9_]+[.]txt" (Git data exports for sokrates analyses) (0 files).
    • exclude files with path like ".*[.]txt" (Text files) (36 files).
    • exclude files with path like ".*/sokrates_conventions[.]json" (Sokrates scoping conventions) (1 file).
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.

main199721 LOC (71%) 2226 files
test30436 LOC (10%) 336 files
generated0 LOC (0%) 0 files
build and deployment720 LOC (<1%) 14 files
other49441 LOC (17%) 790 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
launch
xslt
xsl
txt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2226 files match defined criteria (199,721 lines of code, 100.0% vs. main code):
    • 1,964 *.java files (176,903 lines of code)
    • 209 *.htm files (18,389 lines of code)
    • 10 *.html files (1,795 lines of code)
    • 15 *.xhtml files (933 lines of code)
    • 14 *.launch files (758 lines of code)
    • 7 *.css files (309 lines of code)
    • 3 *.xslt files (253 lines of code)
    • 2 *.xsl files (216 lines of code)
    • 1 *.js files (163 lines of code)
    • 1 *.txt files (2 lines of code)
  • " *.java" is biggest, containing 88.58% of code.
  • " *.txt" is smallest, containing 0% of code.


*.java176903 LOC (88%) 1964 files
*.htm18389 LOC (9%) 209 files
*.html1795 LOC (<1%) 10 files
*.xhtml933 LOC (<1%) 15 files
*.launch758 LOC (<1%) 14 files
*.css309 LOC (<1%) 7 files
*.xslt253 LOC (<1%) 3 files
*.xsl216 LOC (<1%) 2 files
*.js163 LOC (<1%) 1 files
*.txt2 LOC (<1%) 1 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
policy
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 ".*[.][Tt]est/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with any line of content like ".*/simpletest/.*".
  • 336 files match defined criteria (30,436 lines of code, 15.2% vs. main code):
    • 334 *.java files (30,407 lines of code)
    • 1 *.policy files (23 lines of code)
    • 1 *.cfg files (6 lines of code)
  • " *.java" is biggest, containing 99.9% of code.
  • " *.cfg" is smallest, containing 0.02% of code.


*.java30407 LOC (99%) 334 files
*.policy23 LOC (<1%) 1 files
*.cfg6 LOC (<1%) 1 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 ".*[.]bat".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*/docker[-]compose[.]yml".
  • 14 files match defined criteria (720 lines of code, 0.4% vs. main code):
    • 8 *.sh files (475 lines of code)
    • 5 *.bat files (214 lines of code)
    • 1 *.yml files (31 lines of code)
  • " *.sh" is biggest, containing 65.97% of code.
  • " *.yml" is smallest, containing 4.31% of code.


*.sh475 LOC (65%) 8 files
*.bat214 LOC (29%) 5 files
*.yml31 LOC (4%) 1 files
Other Code
properties
xsd
ini
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.](xml|xsd|robot|sql|pgsql|dashboard|profile|ipynb|raml|avsc|al)".
  • 790 files match defined criteria (49,441 lines of code, 24.8% vs. main code):
    • 479 *.properties files (24,979 lines of code)
    • 285 *.xml files (22,443 lines of code)
    • 4 *.xsd files (751 lines of code)
    • 7 *.java files (683 lines of code)
    • 8 *.md files (457 lines of code)
    • 4 *.svg files (69 lines of code)
    • 3 *.ini files (59 lines of code)
  • " *.properties" is biggest, containing 50.52% of code.
  • " *.ini" is smallest, containing 0.12% of code.


*.properties24979 LOC (50%) 479 files
*.xml22443 LOC (45%) 285 files
*.xsd751 LOC (1%) 4 files
*.java683 LOC (1%) 7 files
*.md457 LOC (<1%) 8 files
*.svg69 LOC (<1%) 4 files
*.ini59 LOC (<1%) 3 files
Analyzers
Info about analyzers used for source code examinations.
  • *.java files are analyzed with JavaAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on package names)
  • *.htm files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.html files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.xhtml files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.launch files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.css files are analyzed with CssAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.xslt files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.xsl files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.js files are analyzed with JavaScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.txt files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis


2022-02-01 04:30