Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/asyncapi v3 UI fixes #539

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
import io.github.stavshamir.springwolf.asyncapi.v3.jackson.model.channel.message.MessageHeadersSerializer;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.MultiFormatSchema;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.SchemaObject;
import lombok.EqualsAndHashCode;
import lombok.Getter;

@Getter
@JsonSerialize(using = MessageHeadersSerializer.class)
@EqualsAndHashCode
public class MessageHeaders {
private MultiFormatSchema multiFormatSchema;
private SchemaObject schema;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
import io.github.stavshamir.springwolf.asyncapi.v3.jackson.model.channel.message.MessagePayloadSerializer;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.MultiFormatSchema;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.SchemaObject;
import lombok.EqualsAndHashCode;
import lombok.Getter;

@Getter
@JsonSerialize(using = MessagePayloadSerializer.class)
@EqualsAndHashCode
public class MessagePayload {
private MultiFormatSchema multiFormatSchema;
private SchemaObject schema;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.MessageBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.OperationBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelObject;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ServerReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageHeaders;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageObject;
Expand Down Expand Up @@ -189,9 +190,9 @@ private Operation buildOperation(AsyncOperation asyncOperation, Method method, S
MessageObject message = buildMessage(asyncOperation, method);

return Operation.builder()
.channel(ChannelReference.fromChannel(channelName))
.description(description)
.title(operationTitle)
// FIXME: We can use the message reference once everything else works
.messages(List.of(MessageReference.fromMessage(message)))
.bindings(opBinding)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.MessageBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.OperationBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelObject;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.Message;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageHeaders;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageObject;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessagePayload;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.operation.Operation;
import io.github.stavshamir.springwolf.asyncapi.v3.model.operation.OperationAction;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.MultiFormatSchema;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.SchemaReference;
import io.github.stavshamir.springwolf.schemas.SchemasService;
Expand Down Expand Up @@ -164,7 +166,16 @@ private ChannelObject buildChannelItem(ClassAnnotation classAnnotation, Map<Stri
private Operation buildOperation(ClassAnnotation classAnnotation, Map<String, Message> messages) {
Map<String, OperationBinding> operationBinding = bindingFactory.buildOperationBinding(classAnnotation);
Map<String, OperationBinding> opBinding = operationBinding != null ? new HashMap<>(operationBinding) : null;
String channelName = bindingFactory.getChannelName(classAnnotation);

// var messageReferences = messages.values().stream().map(m -> MessageReference.fromMessage(m)).toList();

// FIXME
return Operation.builder().bindings(opBinding) /*.messages(messages)*/.build();
return Operation.builder()
.action(OperationAction.RECEIVE)
.channel(ChannelReference.fromChannel(channelName))
// .messages(messageReferences)
.bindings(opBinding)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.MessageBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.bindings.OperationBinding;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelObject;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.ChannelReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageHeaders;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageObject;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessagePayload;
import io.github.stavshamir.springwolf.asyncapi.v3.model.channel.message.MessageReference;
import io.github.stavshamir.springwolf.asyncapi.v3.model.operation.Operation;
import io.github.stavshamir.springwolf.asyncapi.v3.model.operation.OperationAction;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.MultiFormatSchema;
import io.github.stavshamir.springwolf.asyncapi.v3.model.schema.SchemaReference;
import io.github.stavshamir.springwolf.schemas.SchemasService;
Expand Down Expand Up @@ -132,8 +134,11 @@ private ChannelObject buildChannelItem(MethodAnnotation annotation, MessageObjec
private Operation buildOperation(MethodAnnotation annotation, MessageObject message) {
Map<String, OperationBinding> operationBinding = bindingFactory.buildOperationBinding(annotation);
Map<String, OperationBinding> opBinding = operationBinding != null ? new HashMap<>(operationBinding) : null;
String channelName = bindingFactory.getChannelName(annotation);

return Operation.builder()
.action(OperationAction.RECEIVE)
.channel(ChannelReference.fromChannel(channelName))
.messages(List.of(MessageReference.fromMessage(message)))
.bindings(opBinding)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"channels": {
"another-queue": {
"messages": {
"another-queue_publish_receiveAnotherPayload.message": {
"io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand Down Expand Up @@ -69,7 +69,7 @@
},
"example-producer-channel-publisher": {
"messages": {
"example-producer-channel-publisher_subscribe.message": {
"io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand All @@ -92,7 +92,7 @@
},
"example-queue": {
"messages": {
"example-queue_publish_receiveExamplePayload.message": {
"io.github.stavshamir.springwolf.example.amqp.dtos.ExamplePayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand Down Expand Up @@ -134,7 +134,7 @@
},
"example-topic-routing-key": {
"messages": {
"example-topic-routing-key_publish_bindingsExample.message": {
"io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand Down Expand Up @@ -176,7 +176,7 @@
},
"multi-payload-queue": {
"messages": {
"multi-payload-queue_publish_bindingsBeanExample.message.0": {
"io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand All @@ -194,7 +194,7 @@
}
}
},
"multi-payload-queue_publish_bindingsBeanExample.message.1": {
"io.github.stavshamir.springwolf.example.amqp.dtos.ExamplePayloadDto": {
"headers": {
"$ref": "#/components/schemas/HeadersNotDocumented"
},
Expand Down Expand Up @@ -307,13 +307,9 @@
},
"operations": {
"another-queue_publish_receiveAnotherPayload": {
"action": "receive",
"channel": {
"$ref": "#/channels/another-queue"
},
"description": "Auto-generated description",
"bindings": {
"amqp": {
"expiration": 0,
"cc": [
"another-queue"
],
Expand All @@ -322,22 +318,20 @@
},
"messages": [
{
"$ref": "#/channels/another-queue/messages/another-queue_publish_receiveAnotherPayload.message"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto"
}
]
},
"example-producer-channel-publisher_subscribe": {
"example-producer-channel-publisher": {
"action": "send",
"channel": {
"$ref": "#/channels/example-producer-channel-publisher"
},
"title": "example-producer-channel-publisher_subscribe",
"description": "Custom, optional description defined in the AsyncPublisher annotation",
"bindings": {
"amqp": {
"expiration": 0,
"cc": [],
"cc": [ ],
"priority": 0,
"deliveryMode": 1,
"deliveryMode": 0,
"mandatory": false,
"timestamp": false,
"ack": false,
Expand All @@ -346,18 +340,14 @@
},
"messages": [
{
"$ref": "#/channels/example-producer-channel-publisher/messages/example-producer-channel-publisher_subscribe.message"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto"
}
]
},
"example-queue_publish_receiveExamplePayload": {
"action": "receive",
"channel": {
"$ref": "#/channels/example-queue"
},
"description": "Auto-generated description",
"bindings": {
"amqp": {
"expiration": 0,
"cc": [
"example-queue"
],
Expand All @@ -366,18 +356,14 @@
},
"messages": [
{
"$ref": "#/channels/example-queue/messages/example-queue_publish_receiveExamplePayload.message"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.ExamplePayloadDto"
}
]
},
"example-topic-routing-key_publish_bindingsExample": {
"action": "receive",
"channel": {
"$ref": "#/channels/example-topic-routing-key"
},
"description": "Auto-generated description",
"bindings": {
"amqp": {
"expiration": 0,
"cc": [
"example-topic-routing-key"
],
Expand All @@ -386,18 +372,14 @@
},
"messages": [
{
"$ref": "#/channels/example-topic-routing-key/messages/example-topic-routing-key_publish_bindingsExample.message"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto"
}
]
},
"multi-payload-queue_publish_bindingsBeanExample": {
"action": "receive",
"channel": {
"$ref": "#/channels/multi-payload-queue"
},
"description": "Auto-generated description",
"bindings": {
"amqp": {
"expiration": 0,
"cc": [
"example-topic-routing-key"
],
Expand All @@ -406,10 +388,10 @@
},
"messages": [
{
"$ref": "#/channels/multi-payload-queue/messages/multi-payload-queue_publish_bindingsBeanExample.message.0"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.ExamplePayloadDto"
},
{
"$ref": "#/channels/multi-payload-queue/messages/multi-payload-queue_publish_bindingsBeanExample.message.1"
"$ref": "#/components/messages/io.github.stavshamir.springwolf.example.amqp.dtos.AnotherPayloadDto"
}
]
}
Expand Down
Loading
Loading