awslabs / kinesis-aggregation
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
  • 38% duplication:
    • 2,619 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,008 duplicated lines
  • 19 duplicates
system38% (1,008 lines)
Duplication per Extension
java58% (586 lines)
go90% (320 lines)
js9% (58 lines)
py6% (44 lines)
Duplication per Component (primary)
java/KinesisAggregator87% (254 lines)
java/KinesisAggregatorV290% (254 lines)
go/v290% (160 lines)
go/records100% (131 lines)
java/KinesisTestProducers28% (66 lines)
node/example30% (46 lines)
python/aws_kinesis_agg9% (44 lines)
go/deaggregator64% (29 lines)
node/lib2% (12 lines)
java/KinesisDeaggregator11% (6 lines)
java/KinesisDeaggregatorV28% (6 lines)
java/KinesisLambdaForwarder0% (0 lines)
java/KinesisTestConsumers0% (0 lines)
node0% (0 lines)
python0% (0 lines)

Duplication Between Components (50+ lines)

G java/KinesisAggregator java/KinesisAggregator java/KinesisAggregatorV2 java/KinesisAggregatorV2 java/KinesisAggregator--java/KinesisAggregatorV2 508 go/records go/records go/v2 go/v2 go/records--go/v2 262 go/deaggregator go/deaggregator go/deaggregator--go/v2 58

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 19 longest duplicates.
See data for all 19 duplicates...
Size#FoldersFilesLinesCode
131 x 2 go/records
go/v2/records
records.pb.go
records.pb.go
13:213 (100%)
13:213 (100%)
view
108 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
53:326 (47%)
56:329 (49%)
view
43 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
485:596 (18%)
479:590 (19%)
view
32 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
408:472 (14%)
402:466 (14%)
view
29 x 2 go/deaggregator
go/v2/deaggregator
deaggregator.go
deaggregator.go
28:78 (64%)
28:78 (64%)
view
28 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
RecordAggregator.java
RecordAggregator.java
182:258 (43%)
176:249 (44%)
view
27 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
RecordAggregator.java
RecordAggregator.java
36:145 (42%)
38:143 (42%)
view
18 x 2 java/KinesisTestProducer...zonaws/kinesis/producer
java/KinesisTestProducer...zonaws/kinesis/producer
SampleAggregatorProducer.java
SampleAggregatorProducerKCLCompliant....
35:65 (30%)
35:65 (38%)
view
16 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
336:361 (7%)
339:364 (7%)
view
15 x 2 python/aws_kinesis_agg
python/aws_kinesis_agg
kpl_pb2.py
kpl_pb2.py
68:82 (9%)
156:170 (9%)
view
14 x 2 python/aws_kinesis_agg
python/aws_kinesis_agg
kpl_pb2.py
kpl_pb2.py
69:82 (9%)
106:119 (9%)
view
14 x 2 python/aws_kinesis_agg
python/aws_kinesis_agg
kpl_pb2.py
kpl_pb2.py
106:119 (9%)
157:170 (9%)
view
9 x 2 node/example
node/example
sample-aggregation.js
sample-deaggregation.js
13:28 (14%)
15:30 (9%)
view
9 x 2 java/KinesisTestProducer...zonaws/kinesis/producer
java/KinesisTestProducer...zonaws/kinesis/producer
SampleAggregatorProducer.java
SampleAggregatorProducerKCLCompliant....
113:128 (15%)
88:103 (19%)
view
7 x 2 node/example
node/example
sample-aggregation.js
sample-deaggregation.js
32:42 (11%)
34:44 (7%)
view
7 x 2 node/example
node/example
sample-deaggregation.js
sample-deaggregation.js
107:114 (7%)
161:168 (7%)
view
6 x 2 java/KinesisTestProducer...zonaws/kinesis/producer
java/KinesisTestProducer...zonaws/kinesis/producer
SampleAggregatorProducer.java
SampleAggregatorProducer.java
79:84 (10%)
102:110 (10%)
view
6 x 2 node/lib
node/lib
kpl-agg.js
kpl-agg.js
229:234 (1%)
258:263 (1%)
view
6 x 2 java/KinesisDeaggregator/src/sample/java
java/KinesisDeaggregator...amazonaws/kinesis/deagg
EchoHandler.java
EchoHandler.java
11:20 (50%)
13:22 (40%)
view
Duplicated Units
The list of top 15 duplicated units.
See data for all 15 unit duplicates...
Size#FoldersFilesLinesCode
30 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
218:266 
221:269 
view
19 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
RecordAggregator.java
RecordAggregator.java
200:227 
191:218 
view
18 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
277:302 
280:305 
view
15 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
433:450 
427:444 
view
15 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
458:474 
452:468 
view
12 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
92:106 
95:109 
view
12 x 2 java/KinesisTestProducer...zonaws/kinesis/producer
java/KinesisTestProducer...zonaws/kinesis/producer
SampleAggregatorProducer.java
SampleAggregatorProducerKCLCompliant....
35:48 
35:48 
view
11 x 2 node/example
node/example
sample-aggregation.js
sample-deaggregation.js
12:28 
14:30 
view
10 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
484:500 
478:494 
view
10 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
548:560 
542:554 
view
8 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
165:173 
168:176 
view
8 x 2 java/KinesisTestProducer...zonaws/kinesis/producer
java/KinesisTestProducer...zonaws/kinesis/producer
SampleAggregatorProducer.java
SampleAggregatorProducerKCLCompliant....
54:66 
54:66 
view
7 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
418:425 
412:419 
view
7 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
RecordAggregator.java
RecordAggregator.java
138:146 
136:144 
view
6 x 2 java/KinesisAggregator/s...m/amazonaws/kinesis/agg
java/KinesisAggregatorV2...m/amazonaws/kinesis/agg
AggRecord.java
AggRecord.java
530:537 
524:531 
view