Tomcat
Components & Dependencies

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 1 logical decomposition:

  • primary (28 components)
Logical Decomposition #1: PRIMARY
The decompositions is based on folder structure at level 4 (relative to the source code root).
Components
The "primary" logical decomposition has 28 components.
  • 1,771 files, 249,951 lines of code (100.0% vs. main code).
  • "java/org/apache/catalina" is biggest, containing 39.68% of code.
  • "modules/cxf/src/main" is smallest, containing 0% of code.


java/org/apache/catalina99180 LOC (39%) 587 files
java/org/apache/tomcat77325 LOC (30%) 553 files
java/org/apache/jasper26478 LOC (10%) 109 files
java/org/apache/coyote14741 LOC (5%) 91 files
java/org/apache/el10438 LOC (4%) 78 files
modules/jdbc-pool/src/main7182 LOC (2%) 37 files
java/jakarta/el3403 LOC (1%) 36 files
java/org/apache/naming2621 LOC (1%) 34 files
java/jakarta/servlet/jsp1901 LOC (<1%) 46 files
java/org/apache/juli1590 LOC (<1%) 12 files
java/jakarta/servlet/http1336 LOC (<1%) 23 files
java/jakarta/servlet1270 LOC (<1%) 42 files
java/jakarta/websocket588 LOC (<1%) 26 files
java/jakarta/security/auth496 LOC (<1%) 23 files
modules/owb/src/main423 LOC (<1%) 7 files
java/jakarta/websocket/server280 LOC (<1%) 7 files
java/jakarta/transaction167 LOC (<1%) 15 files
java/jakarta/servlet/annotation143 LOC (<1%) 9 files
java/jakarta/annotation92 LOC (<1%) 7 files
java/jakarta/persistence65 LOC (<1%) 7 files
java/jakarta/annotation/security58 LOC (<1%) 5 files
java/jakarta/annotation/sql37 LOC (<1%) 2 files
java/jakarta/servlet/descriptor27 LOC (<1%) 3 files
java/jakarta/mail/internet26 LOC (<1%) 4 files
java/jakarta/xml/ws26 LOC (<1%) 2 files
java/jakarta/ejb26 LOC (<1%) 2 files
java/jakarta/mail23 LOC (<1%) 3 files
modules/cxf/src/main9 LOC (<1%) 1 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 56 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 56 links contain 1118 dependencies.
  • There are 2 places (4 links) with cyclic dependencies (56 file dependencies).
G java/org/apache/juli java/org/apache/juli java/org/apache/catalina java/org/apache/catalina java/org/apache/catalina->java/org/apache/juli 184 java/org/apache/tomcat java/org/apache/tomcat java/org/apache/catalina->java/org/apache/tomcat 168 java/org/apache/coyote java/org/apache/coyote java/org/apache/catalina->java/org/apache/coyote 21 java/org/apache/naming java/org/apache/naming java/org/apache/catalina->java/org/apache/naming 4 java/jakarta/servlet java/jakarta/servlet java/org/apache/catalina->java/jakarta/servlet 104 java/jakarta/servlet/annotation java/jakarta/servlet/annotation java/org/apache/catalina->java/jakarta/servlet/annotation 6 java/jakarta/servlet/http java/jakarta/servlet/http java/org/apache/catalina->java/jakarta/servlet/http 84 java/jakarta/servlet/descriptor java/jakarta/servlet/descriptor java/org/apache/catalina->java/jakarta/servlet/descriptor 5 java/jakarta/security/auth java/jakarta/security/auth java/org/apache/catalina->java/jakarta/security/auth 7 java/jakarta/annotation java/jakarta/annotation java/org/apache/catalina->java/jakarta/annotation 2 java/jakarta/annotation/security java/jakarta/annotation/security java/org/apache/catalina->java/jakarta/annotation/security 1 java/jakarta/xml/ws java/jakarta/xml/ws java/org/apache/catalina->java/jakarta/xml/ws 1 java/jakarta/persistence java/jakarta/persistence java/org/apache/catalina->java/jakarta/persistence 1 java/jakarta/ejb java/jakarta/ejb java/org/apache/catalina->java/jakarta/ejb 1 java/org/apache/tomcat->java/org/apache/juli 63 java/org/apache/tomcat->java/org/apache/coyote 1 java/jakarta/transaction java/jakarta/transaction java/org/apache/tomcat->java/jakarta/transaction 5 java/jakarta/websocket java/jakarta/websocket java/org/apache/tomcat->java/jakarta/websocket 46 java/jakarta/websocket/server java/jakarta/websocket/server java/org/apache/tomcat->java/jakarta/websocket/server 11 java/org/apache/tomcat->java/jakarta/servlet 14 java/org/apache/tomcat->java/jakarta/servlet/annotation 2 java/org/apache/tomcat->java/jakarta/servlet/http 13 java/org/apache/tomcat->java/jakarta/servlet/descriptor 4 java/jakarta/servlet/jsp java/jakarta/servlet/jsp java/org/apache/tomcat->java/jakarta/servlet/jsp 3 java/org/apache/coyote->java/org/apache/juli 28 java/org/apache/coyote->java/org/apache/tomcat 51 java/org/apache/coyote->java/jakarta/servlet 7 java/org/apache/coyote->java/jakarta/servlet/http 11 java/org/apache/el java/org/apache/el java/jakarta/el java/jakarta/el java/org/apache/el->java/jakarta/el 60 java/org/apache/naming->java/org/apache/juli 3 java/jakarta/mail/internet java/jakarta/mail/internet java/org/apache/naming->java/jakarta/mail/internet 1 java/jakarta/mail java/jakarta/mail java/org/apache/naming->java/jakarta/mail 2 java/org/apache/jasper java/org/apache/jasper java/org/apache/jasper->java/org/apache/juli 16 java/org/apache/jasper->java/org/apache/tomcat 26 java/org/apache/jasper->java/org/apache/el 1 java/org/apache/jasper->java/jakarta/servlet 26 java/org/apache/jasper->java/jakarta/servlet/http 8 java/org/apache/jasper->java/jakarta/servlet/descriptor 3 java/org/apache/jasper->java/jakarta/servlet/jsp 40 java/org/apache/jasper->java/jakarta/el 21 java/jakarta/websocket/server->java/jakarta/websocket 5 java/jakarta/servlet->java/jakarta/servlet/annotation 3 java/jakarta/servlet->java/jakarta/servlet/descriptor 1 java/jakarta/servlet/annotation->java/jakarta/servlet 1 java/jakarta/servlet/http->java/jakarta/servlet 9 java/jakarta/servlet/http->java/jakarta/servlet/annotation 1 java/jakarta/servlet/jsp->java/jakarta/servlet 4 java/jakarta/servlet/jsp->java/jakarta/servlet/http 3 java/jakarta/servlet/jsp->java/jakarta/el 4 java/jakarta/mail/internet->java/jakarta/mail 1 java/jakarta/annotation/sql java/jakarta/annotation/sql modules/owb/src/main modules/owb/src/main modules/owb/src/main->java/org/apache/juli 1 modules/owb/src/main->java/org/apache/catalina 3 modules/owb/src/main->java/org/apache/tomcat 2 modules/owb/src/main->java/jakarta/servlet 3 modules/owb/src/main->java/jakarta/servlet/http 3 modules/cxf/src/main modules/cxf/src/main modules/jdbc-pool/src/main modules/jdbc-pool/src/main modules/jdbc-pool/src/main->java/org/apache/juli 19




Show more details about dependencies...




2020-09-11 18:07