Thorntail
Duplication

Intro
  • For duplication, we look at places in code where there are six 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
  • 7% duplication:
    • 29,736 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,331 duplicated lines
  • 99 duplicates
system7% (2,331 lines)
Duplication per Extension
java7% (2,331 lines)
Duplication per Component (primary)
fractions11% (1,374 lines)
core5% (520 lines)
testsuite13% (166 lines)
meta13% (120 lines)
plugins2% (79 lines)
thorntail-runner5% (40 lines)
tools1% (25 lines)
arquillian<1% (7 lines)
swarmtool0% (0 lines)
client-apis0% (0 lines)
cli0% (0 lines)
build-resources0% (0 lines)

Duplication Between Components (50+ lines)

G core core fractions fractions core--fractions 238

Download: SVG DOT (open online Graphviz editor)

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
112 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
InVMConnection.java
InVMConnection.java
85:266 (84%)
85:266 (84%)
view
78 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
MonitorService.java
MonitorService.java
84:203 (75%)
87:206 (62%)
view
46 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
SecureHttpContexts.java
SecureHttpContexts.java
89:163 (73%)
90:164 (74%)
view
43 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
BufferingSinkConduit.java
BufferingSinkConduit.java
36:105 (100%)
36:105 (100%)
view
25 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
Queries.java
Queries.java
26:70 (100%)
27:65 (100%)
view
23 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
HealthAnnotationProcessor.java
HealthAnnotationProcessor.java
45:83 (42%)
48:86 (40%)
view
23 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
MonitorServiceActivator.java
MonitorServiceActivator.java
65:100 (69%)
66:101 (69%)
view
23 x 2 core/container/src/main/...ly/swarm/container/util
fractions/javaee/datasou...arm/datasources/runtime
DriverModuleBuilder.java
DriverInfo.java
100:137 (24%)
142:181 (19%)
view
21 x 2 fractions/javaee/underto...swarm/undertow/internal
fractions/javaee/jaxrs/s...ly/swarm/jaxrs/internal
WARArchiveImpl.java
JAXRSArchiveImpl.java
84:167 (61%)
131:206 (35%)
view
19 x 2 meta/fraction-metadata/s...swarm/fractions/scanner
meta/fraction-metadata/s...swarm/fractions/scanner
ClassAndPackageScanner.java
ClassAndPackageScanner.java
96:123 (6%)
418:445 (6%)
view
18 x 2 core/container/src/main/...ly/swarm/container/util
fractions/javaee/datasou...arm/datasources/runtime
DriverModuleBuilder.java
DriverInfo.java
141:172 (19%)
185:216 (15%)
view
17 x 2 fractions/jose/src/main/...y/swarm/jose/deployment
fractions/cdi-extensions...m/cdi/config/deployment
JoseBean.java
ConfigViewBean.java
72:98 (40%)
69:95 (41%)
view
16 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
SecureHttpContexts.java
SecureHttpContexts.java
54:81 (25%)
55:83 (25%)
view
14 x 2 testsuite/testsuite-ee-s...ldfly/swarm/ee/security
testsuite/testsuite-ee-s...ldfly/swarm/ee/security
SimpleAuthenticationMechanism.java
SimpleAuthenticationMechanism.java
33:58 (100%)
33:58 (100%)
view
14 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
InVMConnection.java
InVMConnection.java
57:80 (10%)
57:80 (10%)
view
14 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
HealthAnnotationProcessor.java
HealthAnnotationProcessor.java
85:115 (25%)
88:118 (24%)
view
13 x 3 core/container/src/main/...m/container/runtime/cdi
fractions/cdi-extensions...m/cdi/config/deployment
fractions/jose/src/main/...y/swarm/jose/deployment
DeploymentScopedExtension.java
ConfigViewBean.java
JoseBean.java
70:90 (32%)
75:95 (31%)
78:98 (30%)
view
13 x 2 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
HealthAnnotationProcessor.java
HealthAnnotationProcessor.java
116:150 (24%)
123:156 (22%)
view
13 x 2 fractions/javaee/jsf/src...ildfly/swarm/jsf/detect
fractions/javaee/cdi/src...ildfly/swarm/cdi/detect
FacesXmlDetector.java
BeansXmlDetector.java
28:46 (46%)
28:46 (46%)
view
12 x 3 fractions/javaee/jpa/src...ildfly/swarm/jpa/detect
fractions/javaee/jsf/src...ildfly/swarm/jsf/detect
fractions/javaee/cdi/src...ildfly/swarm/cdi/detect
PersistenceXmlDetector.java
FacesXmlDetector.java
BeansXmlDetector.java
28:45 (50%)
28:45 (42%)
28:45 (42%)
view
Most Frequent Duplicates
The list of 18 most frequently found duplicates.
Size#FoldersFilesLinesCode
11 x 7 core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
ContainerModuleFinder.java
ContainerModuleFinder.java
ContainerModuleFinder.java
ContainerModuleFinder.java
ContainerModuleFinder.java
ContainerModuleFinder.java
ContainerModuleFinder.java
49:60 (8%)
62:73 (8%)
75:87 (8%)
89:100 (8%)
102:113 (8%)
115:126 (8%)
141:152 (8%)
view
9 x 5 core/container/src/main/...m/container/runtime/cdi
core/container/src/main/...untime/cdi/configurable
fractions/jose/src/main/...y/swarm/jose/deployment
fractions/cdi-extensions...m/cdi/config/deployment
core/spi/src/main/java/o...ldfly/swarm/spi/api/cdi
DeploymentScopedExtension.java
ConfigurableFractionBean.java
JoseBean.java
ConfigViewBean.java
CommonBean.java
75:87 (22%)
116:128 (16%)
83:95 (21%)
80:92 (21%)
80:92 (19%)
view
6 x 5 core/container/src/main/...m/container/runtime/cdi
core/container/src/main/...untime/cdi/configurable
core/spi/src/main/java/o...ldfly/swarm/spi/api/cdi
fractions/cdi-extensions...m/cdi/config/deployment
fractions/jose/src/main/...y/swarm/jose/deployment
DeploymentScopedExtension.java
ConfigurableFractionBean.java
CommonBean.java
ConfigViewBean.java
JoseBean.java
95:102 (15%)
57:64 (10%)
55:62 (13%)
51:58 (14%)
53:60 (14%)
view
7 x 5 meta/meta-spi/src/main/j.../wildfly/swarm/spi/meta
meta/meta-spi/src/main/j.../wildfly/swarm/spi/meta
fractions/javaee/jpa/src...ildfly/swarm/jpa/detect
fractions/javaee/cdi/src...ildfly/swarm/cdi/detect
fractions/javaee/jsf/src...ildfly/swarm/jsf/detect
WebXmlFractionDetector.java
PackageFractionDetector.java
PersistenceXmlDetector.java
BeansXmlDetector.java
FacesXmlDetector.java
37:47 (19%)
34:44 (14%)
33:43 (29%)
33:43 (25%)
33:43 (25%)
view
9 x 4 core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
ContainerModuleFinder.java
ApplicationModuleFinder.java
ContainerModuleFinder.java
ApplicationModuleFinder.java
39:47 (6%)
67:75 (6%)
162:170 (6%)
113:121 (6%)
view
10 x 4 core/container/src/main/...m/container/runtime/cdi
core/spi/src/main/java/o...ldfly/swarm/spi/api/cdi
fractions/jose/src/main/...y/swarm/jose/deployment
fractions/cdi-extensions...m/cdi/config/deployment
DeploymentScopedExtension.java
CommonBean.java
JoseBean.java
ConfigViewBean.java
75:90 (25%)
80:95 (21%)
83:98 (23%)
80:95 (24%)
view
6 x 4 fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/monitor/src/ma...y/swarm/monitor/runtime
fractions/microprofile/m...oprofile/health/runtime
fractions/microprofile/m...oprofile/health/runtime
MonitorService.java
MonitorService.java
MonitorService.java
MonitorService.java
131:139 (5%)
154:162 (5%)
134:142 (4%)
157:165 (4%)
view
6 x 4 fractions/microprofile/m...oprofile/health/runtime
fractions/microprofile/m...profile/metrics/runtime
fractions/microprofile/m...profile/openapi/runtime
fractions/monitor/src/ma...y/swarm/monitor/runtime
UndertowFilterCustomizer.java
MetricsInstaller.java
OpenApiUndertowFilterCustomizer.java
UndertowFilterCustomizer.java
36:43 (26%)
40:47 (27%)
37:44 (26%)
36:43 (26%)
view
6 x 4 fractions/jose/src/main/.../org/wildfly/swarm/jose
fractions/jose/src/main/.../org/wildfly/swarm/jose
fractions/jose/src/main/.../org/wildfly/swarm/jose
fractions/jose/src/main/.../org/wildfly/swarm/jose
VerificationOutput.java
SignatureInput.java
EncryptionInput.java
DecryptionOutput.java
28:35 (50%)
28:35 (50%)
28:35 (50%)
28:35 (50%)
view
7 x 4 core/container/src/main/...untime/cdi/configurable
fractions/jose/src/main/...y/swarm/jose/deployment
fractions/cdi-extensions...m/cdi/config/deployment
core/spi/src/main/java/o...ldfly/swarm/spi/api/cdi
ConfigurableFractionBean.java
JoseBean.java
ConfigViewBean.java
CommonBean.java
57:67 (12%)
53:63 (16%)
51:61 (17%)
55:65 (15%)
view
10 x 3 core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
core/bootstrap/src/main/...swarm/bootstrap/modules
ContainerModuleFinder.java
ApplicationModuleFinder.java
ContainerModuleFinder.java
50:60 (7%)
111:121 (7%)
129:139 (7%)
view
10 x 3 core/bootstrap/src/main/...org/jboss/modules/maven
core/bootstrap/src/main/...org/jboss/modules/maven
core/bootstrap/src/main/...org/jboss/modules/maven
ArtifactCoordinates.java
ArtifactCoordinates.java
ArtifactCoordinates.java
141:151 (9%)
167:177 (9%)
184:194 (9%)
view
13 x 3 core/container/src/main/...m/container/runtime/cdi
fractions/cdi-extensions...m/cdi/config/deployment
fractions/jose/src/main/...y/swarm/jose/deployment
DeploymentScopedExtension.java
ConfigViewBean.java
JoseBean.java
70:90 (32%)
75:95 (31%)
78:98 (30%)
view
9 x 3 fractions/javaee/ejb-rem...warm/ejb/remote/runtime
fractions/javaee/transac...rm/transactions/runtime
fractions/javaee/batch-j...rm/batch/jberet/runtime
RemoteEjbElytronCustomizer.java
TransactionClientElytronCustomizer.java
BatchElytronCustomizer.java
15:24 (60%)
15:24 (60%)
15:24 (56%)
view
8 x 3 core/spi/src/main/java/o...ldfly/swarm/spi/api/cdi
fractions/jose/src/main/...y/swarm/jose/deployment
fractions/cdi-extensions...m/cdi/config/deployment
CommonBean.java
JoseBean.java
ConfigViewBean.java
55:66 (17%)
53:64 (19%)
51:62 (19%)
view
12 x 3 fractions/javaee/jpa/src...ildfly/swarm/jpa/detect
fractions/javaee/jsf/src...ildfly/swarm/jsf/detect
fractions/javaee/cdi/src...ildfly/swarm/cdi/detect
PersistenceXmlDetector.java
FacesXmlDetector.java
BeansXmlDetector.java
28:45 (50%)
28:45 (42%)
28:45 (42%)
view
9 x 3 fractions/microprofile/m...oprofile/health/runtime
fractions/microprofile/m...profile/openapi/runtime
fractions/monitor/src/ma...y/swarm/monitor/runtime
UndertowFilterCustomizer.java
OpenApiUndertowFilterCustomizer.java
UndertowFilterCustomizer.java
32:43 (39%)
33:44 (39%)
32:43 (39%)
view
9 x 3 core/container/src/main/...warm/container/internal
fractions/javaee/underto...swarm/undertow/internal
fractions/javaee/jaxrs/s...ly/swarm/jaxrs/internal
JARArchiveImpl.java
WARArchiveImpl.java
JAXRSArchiveImpl.java
63:97 (45%)
54:76 (26%)
66:88 (15%)
view