aws-samples / aws-saas-factory-eks-reference-architecture
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 42% duplication:
    • 7,660 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 3,267 duplicated lines
  • 162 duplicates
system42% (3,267 lines)
Duplication per Extension
java48% (1,148 lines)
ts51% (1,001 lines)
html57% (631 lines)
yaml31% (449 lines)
scss9% (38 lines)
Duplication per Component (primary)
clients/Admin/src68% (777 lines)
clients/Application/src45% (742 lines)
services/shared-services/tenant-management-service63% (353 lines)
resources/templates26% (315 lines)
services/shared-services/user-management-service54% (298 lines)
services/shared-services/tenant-registration-service40% (249 lines)
services/application-services/product-service42% (197 lines)
services/application-services/order-service43% (185 lines)
clients/Landing/src21% (151 lines)
ROOT0% (0 lines)
functions/source/CfnCrossRegion0% (0 lines)
resources/policy0% (0 lines)

Duplication Between Components (50+ lines)

G clients/Admin/src clients/Admin/src clients/Application/src clients/Application/src clients/Admin/src--clients/Application/src 1293 clients/Landing/src clients/Landing/src clients/Admin/src--clients/Landing/src 292 clients/Application/src--clients/Landing/src 62 services/shared-services/tenant-management-service services/shared-services/tenant-management-service services/shared-services/user-management-service services/shared-services/user-management-service services/shared-services/tenant-management-service--services/shared-services/user-management-service 466 services/shared-services/tenant-registration-service services/shared-services/tenant-registration-service services/shared-services/tenant-management-service--services/shared-services/tenant-registration-service 386 services/shared-services/tenant-registration-service--services/shared-services/user-management-service 214 services/application-services/order-service services/application-services/order-service services/application-services/order-service--services/shared-services/tenant-management-service 266 services/application-services/order-service--services/shared-services/user-management-service 286 services/application-services/product-service services/application-services/product-service services/application-services/order-service--services/application-services/product-service 370 services/application-services/product-service--services/shared-services/tenant-management-service 266 services/application-services/product-service--services/shared-services/user-management-service 286 resources/templates resources/templates resources/templates--services/shared-services/tenant-management-service 68 resources/templates--services/shared-services/user-management-service 68 resources/templates--services/shared-services/tenant-registration-service 102

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 162 duplicates...
Size#FoldersFilesLinesCode
82 x 2 services/shared-services.../amazonaws/saas/eks/dto
services/shared-services.../amazonaws/saas/eks/dto
TenantDetails.java
TenantDetails.java
21:166 (100%)
21:166 (100%)
view
74 x 2 services/shared-services.../amazonaws/saas/eks/dto
services/shared-services.../amazonaws/saas/eks/dto
Tenant.java
Tenant.java
23:144 (100%)
23:144 (100%)
view
60 x 2 clients/Admin/src/app/views/dashboard
clients/Application/src/app/views/dashboard
dashboard.component.ts
dashboard.component.ts
126:195 (40%)
79:147 (51%)
view
54 x 2 services/shared-services.../amazonaws/saas/eks/dto
services/shared-services.../amazonaws/saas/eks/dto
TenantDetails.java
TenantDetails.java
38:142 (65%)
37:141 (70%)
view
54 x 2 services/shared-services.../amazonaws/saas/eks/dto
services/shared-services.../amazonaws/saas/eks/dto
TenantDetails.java
TenantDetails.java
38:142 (65%)
37:141 (70%)
view
53 x 2 clients/Admin/src/app/tenants
clients/Landing/src/app/register
create.component.ts
register.component.ts
30:99 (88%)
28:97 (91%)
view
52 x 2 clients/Admin/src/app/users/user-create
clients/Application/src/app/users/user-create
user-create.component.html
user-create.component.html
1:66 (100%)
1:66 (100%)
view
48 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
48 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
48 x 2 services/shared-services...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
48 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
48 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
48 x 2 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
JwtConfig.java
JwtConfig.java
22:104 (100%)
22:104 (100%)
view
43 x 2 clients/Admin/src/app/tenants
clients/Landing/src/app/register
create.component.html
register.component.html
58:108 (44%)
66:116 (37%)
view
39 x 2 clients/Admin/src/app/views/auth/login-info
clients/Application/src/app/views/auth/login-info
login-info.component.html
login-info.component.html
1:60 (100%)
1:60 (100%)
view
39 x 2 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
54:107 (100%)
54:107 (100%)
view
38 x 2 services/shared-services...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
47:100 (100%)
47:100 (100%)
view
35 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
59:107 (89%)
51:100 (92%)
view
35 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
59:107 (89%)
51:100 (92%)
view
35 x 2 services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
59:107 (89%)
51:100 (92%)
view
Duplicated Units
The list of top 11 duplicated units.
See data for all 11 unit duplicates...
Size#FoldersFilesLinesCode
31 x 4 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
TokenProcessor.java
TokenProcessor.java
TokenProcessor.java
TokenProcessor.java
63:100 
63:100 
55:93 
55:93 
view
24 x 2 clients/Admin/src/app
clients/Application/src/app
app.component.ts
app.component.ts
38:64 
38:64 
view
22 x 2 clients/Admin/src/app/tenants
clients/Landing/src/app/register
create.component.ts
register.component.ts
47:71 
45:69 
view
15 x 2 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
TokenManager.java
TokenManager.java
35:54 
37:56 
view
13 x 4 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
AuthFilter.java
AuthFilter.java
AuthFilter.java
AuthFilter.java
45:60 
45:60 
44:59 
45:60 
view
9 x 6 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
services/shared-services...amazonaws/saas/eks/auth
services/shared-services.../com/amazonaws/saas/eks
services/shared-services...amazonaws/saas/eks/auth
ProductSecurityConfig.java
OrderSecurityConfig.java
RegistrationSecurityConfig.java
UserManagementSecurityConfig.java
TenantManagementApplication.java
TenantManagementSecurityConfig.java
46:55 
46:55 
40:49 
45:54 
34:43 
46:55 
view
9 x 2 services/shared-services...amazonaws/saas/eks/util
services/shared-services...amazonaws/saas/eks/util
EksSaaSUtil.java
EksSaaSUtil.java
27:39 
42:55 
view
8 x 2 clients/Admin/src/app/views/dashboard
clients/Application/src/app/views/dashboard
dashboard.component.ts
dashboard.component.ts
184:194 
137:146 
view
7 x 2 clients/Admin/src/app/views/auth/login-info
clients/Application/src/app/views/auth/login-info
login-info.component.ts
login-info.component.ts
38:45 
38:45 
view
7 x 2 clients/Admin/src/app/tenants
clients/Landing/src/app/register
create.component.ts
register.component.ts
93:100 
91:98 
view
6 x 2 services/application-ser...amazonaws/saas/eks/auth
services/application-ser...amazonaws/saas/eks/auth
ProductSecurityConfig.java
OrderSecurityConfig.java
36:43 
36:43 
view