From c8c3127e48ee508d3dd9bfb74456a659c021e129 Mon Sep 17 00:00:00 2001 From: Timon Back Date: Sun, 11 Jun 2023 22:11:01 +0200 Subject: [PATCH] chore: Resolve java generics issues after updating to spec 2.6.0 --- .../operationdata/AbstractOperationDataScanner.java | 7 +++++-- .../cloudstream/CloudStreamFunctionChannelsScanner.java | 8 +++----- .../annotation/MethodLevelKafkaListenerScannerTest.java | 7 +++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/springwolf-core/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/operationdata/AbstractOperationDataScanner.java b/springwolf-core/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/operationdata/AbstractOperationDataScanner.java index 5e477984e..f20296744 100644 --- a/springwolf-core/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/operationdata/AbstractOperationDataScanner.java +++ b/springwolf-core/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/operationdata/AbstractOperationDataScanner.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -61,6 +62,8 @@ private ChannelItem buildChannel(List operationDataList) { // AsyncApi does not support multiple bindings on a single channel Map channelBinding = operationDataList.get(0).getChannelBinding(); Map operationBinding = operationDataList.get(0).getOperationBinding(); + Map opBinding = new HashMap<>(operationBinding); + Map chBinding = new HashMap<>(channelBinding); String operationId = operationDataList.get(0).getChannelName() + "_" + this.getOperationType().operationName; String description = operationDataList.get(0).getDescription(); @@ -72,11 +75,11 @@ private ChannelItem buildChannel(List operationDataList) { .description(description) .operationId(operationId) .message(getMessageObject(operationDataList)) - .bindings(operationBinding) + .bindings(opBinding) .build(); ChannelItem.ChannelItemBuilder channelBuilder = ChannelItem.builder() - .bindings(channelBinding); + .bindings(chBinding); channelBuilder = switch (getOperationType()) { case PUBLISH -> channelBuilder.publish(operation); case SUBSCRIBE -> channelBuilder.subscribe(operation); diff --git a/springwolf-plugins/springwolf-cloud-stream-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/cloudstream/CloudStreamFunctionChannelsScanner.java b/springwolf-plugins/springwolf-cloud-stream-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/cloudstream/CloudStreamFunctionChannelsScanner.java index 53a526d51..fc8195d16 100644 --- a/springwolf-plugins/springwolf-cloud-stream-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/cloudstream/CloudStreamFunctionChannelsScanner.java +++ b/springwolf-plugins/springwolf-cloud-stream-plugin/src/main/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/cloudstream/CloudStreamFunctionChannelsScanner.java @@ -3,9 +3,7 @@ import com.asyncapi.v2._6_0.model.channel.ChannelItem; import com.asyncapi.v2._6_0.model.channel.operation.Operation; import com.asyncapi.v2._6_0.model.server.Server; -import com.asyncapi.v2.binding.channel.ChannelBinding; import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.binding.operation.OperationBinding; import io.github.stavshamir.springwolf.asyncapi.scanners.beans.DefaultBeanMethodsScanner; import io.github.stavshamir.springwolf.asyncapi.scanners.channels.ChannelsScanner; import io.github.stavshamir.springwolf.asyncapi.types.channel.bindings.EmptyChannelBinding; @@ -88,7 +86,7 @@ private ChannelItem buildChannel(FunctionalChannelBeanData beanData, String oper .bindings(buildOperationBinding()) .build(); - Map channelBinding = buildChannelBinding(); + Map channelBinding = buildChannelBinding(); return beanData.getBeanType() == FunctionalChannelBeanData.BeanType.CONSUMER ? ChannelItem.builder().bindings(channelBinding).publish(operation).build() : ChannelItem.builder().bindings(channelBinding).subscribe(operation).build(); @@ -99,12 +97,12 @@ private ChannelItem buildChannel(FunctionalChannelBeanData beanData, String oper return Map.of(protocolName, new EmptyMessageBinding()); } - private Map buildOperationBinding() { + private Map buildOperationBinding() { String protocolName = getProtocolName(); return Map.of(protocolName, new EmptyOperationBinding()); } - private Map buildChannelBinding() { + private Map buildChannelBinding() { String protocolName = getProtocolName(); return Map.of(protocolName, new EmptyChannelBinding()); } diff --git a/springwolf-plugins/springwolf-kafka-plugin/src/test/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/annotation/MethodLevelKafkaListenerScannerTest.java b/springwolf-plugins/springwolf-kafka-plugin/src/test/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/annotation/MethodLevelKafkaListenerScannerTest.java index 7d26f67a5..0d7d80578 100644 --- a/springwolf-plugins/springwolf-kafka-plugin/src/test/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/annotation/MethodLevelKafkaListenerScannerTest.java +++ b/springwolf-plugins/springwolf-kafka-plugin/src/test/java/io/github/stavshamir/springwolf/asyncapi/scanners/channels/annotation/MethodLevelKafkaListenerScannerTest.java @@ -1,11 +1,10 @@ package io.github.stavshamir.springwolf.asyncapi.scanners.channels.annotation; -import com.asyncapi.v2.binding.operation.OperationBinding; +import com.asyncapi.v2._6_0.model.channel.ChannelItem; +import com.asyncapi.v2._6_0.model.channel.operation.Operation; import com.asyncapi.v2.binding.channel.kafka.KafkaChannelBinding; import com.asyncapi.v2.binding.message.kafka.KafkaMessageBinding; import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding; -import com.asyncapi.v2._6_0.model.channel.ChannelItem; -import com.asyncapi.v2._6_0.model.channel.operation.Operation; import io.github.stavshamir.springwolf.asyncapi.scanners.classes.ComponentClassScanner; import io.github.stavshamir.springwolf.asyncapi.types.channel.operation.message.Message; import io.github.stavshamir.springwolf.asyncapi.types.channel.operation.message.PayloadReference; @@ -140,7 +139,7 @@ void scan_componentHasKafkaListenerMethods_withGroupId() { Map actualChannels = methodLevelKafkaListenerScanner.scan(); // Then the returned collection contains a correct binding - Map actualBindings = actualChannels.get(TOPIC) + Map actualBindings = actualChannels.get(TOPIC) .getPublish() .getBindings();