Skip to content

Commit 9bd11c1

Browse files
committed
Refactor RabbitChannelsScanner::getChannelName
1 parent 69ea06b commit 9bd11c1

File tree

1 file changed

+21
-10
lines changed
  • springwolf-plugins/springwolf-amqp-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels

1 file changed

+21
-10
lines changed

springwolf-plugins/springwolf-amqp-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/RabbitChannelsScanner.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@
1313
import java.lang.annotation.Annotation;
1414
import java.lang.reflect.Method;
1515
import java.util.Arrays;
16-
import java.util.List;
1716
import java.util.Map;
1817

19-
import static java.util.stream.Collectors.toList;
20-
2118
@Slf4j
2219
@Service
2320
public class RabbitChannelsScanner extends AbstractChannelScanner<RabbitListener>
@@ -37,14 +34,28 @@ protected Class<RabbitListener> getListenerAnnotationClass() {
3734

3835
@Override
3936
protected String getChannelName(RabbitListener annotation) {
40-
List<String> resolvedQueues = Arrays.stream(annotation.queues())
37+
if (annotation.queues().length > 0) {
38+
return getChannelNameFromQueues(annotation);
39+
}
40+
41+
return getChannelNameFromBindings(annotation);
42+
}
43+
44+
private String getChannelNameFromQueues(RabbitListener annotation) {
45+
return Arrays.stream(annotation.queues())
46+
.map(resolver::resolveStringValue)
47+
.peek(queue -> log.debug("Resolved queue name: {}", queue))
48+
.findFirst()
49+
.orElseThrow(() -> new IllegalArgumentException("No queue name was found in @RabbitListener annotation"));
50+
}
51+
52+
private String getChannelNameFromBindings(RabbitListener annotation) {
53+
return Arrays.stream(annotation.bindings())
54+
.map(binding -> binding.value().name())
4155
.map(resolver::resolveStringValue)
42-
.collect(toList());
43-
resolvedQueues.addAll(Arrays.stream(annotation.bindings())
44-
.map(bind -> bind.value().name())
45-
.collect(toList()));
46-
log.debug("Found queues: {}", String.join(", ", resolvedQueues));
47-
return resolvedQueues.get(0);
56+
.peek(queue -> log.debug("Resolved queue name: {}", queue))
57+
.findFirst()
58+
.orElseThrow(() -> new IllegalArgumentException("No queue name was found in @RabbitListener annotation"));
4859
}
4960

5061
@Override

0 commit comments

Comments
 (0)