@@ -295,11 +295,11 @@ protected void calculatePath(List<RouterOperation> routerOperationList) {
295
295
LOGGER .error (e .getMessage ());
296
296
}
297
297
if (handlerMethod != null && isPackageToScan (handlerMethod .getBeanType ().getPackage ()) && isPathToMatch (routerOperation .getPath ()))
298
- calculatePath (handlerMethod , routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethod ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
298
+ calculatePath (handlerMethod , routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethods ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
299
299
}
300
300
}
301
301
else if (StringUtils .isNotBlank (routerOperation .getOperation ().operationId ()) && isPathToMatch (routerOperation .getPath ())) {
302
- calculatePath (routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethod ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
302
+ calculatePath (routerOperation .getPath (), new HashSet <>(Arrays .asList (routerOperation .getMethods ())), routerOperation .getOperation (), routerOperation .getConsumes (), routerOperation .getProduces (), routerOperation .getHeaders ());
303
303
}
304
304
}
305
305
}
@@ -506,30 +506,30 @@ protected void mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<o
506
506
.collect (Collectors .toList ());
507
507
if (routerFunctionDataList .size () == 1 )
508
508
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
509
- else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getMethod ())) {
509
+ else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getMethods ())) {
510
510
// PATH + METHOD
511
511
routerFunctionDataList = routerFunctionDatas .stream ()
512
512
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
513
- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] ))
513
+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () ))
514
514
.collect (Collectors .toList ());
515
515
if (routerFunctionDataList .size () == 1 )
516
516
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
517
517
else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getProduces ())) {
518
518
// PATH + METHOD + PRODUCES
519
519
routerFunctionDataList = routerFunctionDatas .stream ()
520
520
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
521
- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
522
- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
521
+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
522
+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
523
523
.collect (Collectors .toList ());
524
524
if (routerFunctionDataList .size () == 1 )
525
525
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
526
526
else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getConsumes ())) {
527
527
// PATH + METHOD + PRODUCES + CONSUMES
528
528
routerFunctionDataList = routerFunctionDatas .stream ()
529
529
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
530
- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
531
- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] )
532
- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
530
+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
531
+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ())
532
+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
533
533
.collect (Collectors .toList ());
534
534
if (routerFunctionDataList .size () == 1 )
535
535
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -539,8 +539,8 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
539
539
// PATH + METHOD + CONSUMES
540
540
routerFunctionDataList = routerFunctionDatas .stream ()
541
541
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
542
- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
543
- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
542
+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
543
+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
544
544
.collect (Collectors .toList ());
545
545
if (routerFunctionDataList .size () == 1 )
546
546
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -550,17 +550,17 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
550
550
// PATH + PRODUCES
551
551
routerFunctionDataList = routerFunctionDatas .stream ()
552
552
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
553
- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
553
+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
554
554
.collect (Collectors .toList ());
555
555
if (routerFunctionDataList .size () == 1 )
556
556
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
557
557
else if (routerFunctionDataList .size () > 1 && ArrayUtils .isNotEmpty (routerOperation .getConsumes ())) {
558
558
// PATH + PRODUCES + CONSUMES
559
559
routerFunctionDataList = routerFunctionDatas .stream ()
560
560
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
561
- && routerFunctionData1 .getMethods ()[ 0 ]. equals ( routerOperation . getMethod ()[ 0 ] )
562
- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] )
563
- && routerFunctionData1 .getProduces ()[ 0 ]. equals ( routerOperation .getProduces ()[ 0 ] ))
561
+ && isEqualMethods ( routerOperation .getMethods (), routerFunctionData1 . getMethods () )
562
+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ())
563
+ && isEqualArrays ( routerFunctionData1 .getProduces (), routerOperation .getProduces ()))
564
564
.collect (Collectors .toList ());
565
565
if (routerFunctionDataList .size () == 1 )
566
566
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -570,7 +570,7 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
570
570
// PATH + CONSUMES
571
571
routerFunctionDataList = routerFunctionDatas .stream ()
572
572
.filter (routerFunctionData1 -> routerFunctionData1 .getPath ().equals (routerOperation .getPath ())
573
- && routerFunctionData1 .getConsumes ()[ 0 ]. equals ( routerOperation .getConsumes ()[ 0 ] ))
573
+ && isEqualArrays ( routerFunctionData1 .getConsumes (), routerOperation .getConsumes ()))
574
574
.collect (Collectors .toList ());
575
575
if (routerFunctionDataList .size () == 1 )
576
576
fillRouterOperation (routerFunctionDataList .get (0 ), routerOperation );
@@ -579,15 +579,27 @@ else if (routerFunctionDataList.size() > 1 && ArrayUtils.isNotEmpty(routerOperat
579
579
}
580
580
}
581
581
582
+ private boolean isEqualArrays (String [] array1 , String [] array2 ) {
583
+ Arrays .sort (array1 );
584
+ Arrays .sort (array2 );
585
+ return Arrays .equals (array1 ,array2 );
586
+ }
587
+
588
+ private boolean isEqualMethods (RequestMethod [] requestMethods1 , RequestMethod [] requestMethods2 ) {
589
+ Arrays .sort (requestMethods1 );
590
+ Arrays .sort (requestMethods2 );
591
+ return Arrays .equals (requestMethods1 ,requestMethods2 );
592
+ }
593
+
582
594
private void fillRouterOperation (RouterFunctionData routerFunctionData , org .springdoc .core .models .RouterOperation routerOperation ) {
583
595
if (ArrayUtils .isEmpty (routerOperation .getConsumes ()))
584
596
routerOperation .setConsumes (routerFunctionData .getConsumes ());
585
597
if (ArrayUtils .isEmpty (routerOperation .getProduces ()))
586
598
routerOperation .setProduces (routerFunctionData .getProduces ());
587
599
if (ArrayUtils .isEmpty (routerOperation .getHeaders ()))
588
600
routerOperation .setHeaders (routerFunctionData .getHeaders ());
589
- if (ArrayUtils .isEmpty (routerOperation .getMethod ()))
590
- routerOperation .setMethod (routerFunctionData .getMethods ());
601
+ if (ArrayUtils .isEmpty (routerOperation .getMethods ()))
602
+ routerOperation .setMethods (routerFunctionData .getMethods ());
591
603
}
592
604
593
605
}
0 commit comments