Skip to content

Commit

Permalink
refactor(core): update AsyncHeadersBuilder (wip)
Browse files Browse the repository at this point in the history
Co-authored-by: David Müller <[email protected]>
  • Loading branch information
timonback and sam0r040 committed Apr 12, 2024
1 parent ce3b7a6 commit 3d37f09
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,9 @@ private void processAsyncApiPayloadAnnotation(Map<String, Schema> schemas, Strin
}

private String registerString() {
String schemaName = "String";
String schemaName = String.class.getName(); // TODO: take fqn into account
StringSchema schema = new StringSchema();
schema.setName(String.class.getName());
schema.setName(schemaName);

this.schemas.put(schemaName, schema);
postProcessSchema(schema, DEFAULT_CONTENT_TYPE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ private Pair<String, SchemaObject> buildSchema(String contentType, Class<?> payl
SchemaObject schema = componentsService.resolveSchema(componentsSchemaName);
schema.setTitle(payloadType.getSimpleName());

return Pair.of(payloadType.getName(), schema);
return Pair.of(componentsSchemaName, schema);
}

private Pair<String, SchemaObject> useUnusedPayload() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void shouldUsePayloadFromAsyncOperationAnnotation() {
var result = payloadService.extractSchema(asyncOperation, null);

// then
assertThat(result.getKey()).isEqualTo("java.lang.String");
assertThat(result.getKey()).isEqualTo(schemaName);
assertThat(result.getValue()).isEqualTo(schemaObject);
}

Expand All @@ -81,7 +81,7 @@ public void shouldExtractPayloadFromMethod() {
var result = payloadService.extractSchema(asyncOperation, method);

// then
assertThat(result.getKey()).isEqualTo("java.lang.String");
assertThat(result.getKey()).isEqualTo(schemaName);
assertThat(result.getValue()).isEqualTo(schemaObject);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ void asyncListenerAnnotationIsFound() {
assertThat(asyncAPI.getChannels()).containsOnlyKeys("listener-channel");
assertThat(asyncAPI.getOperations()).containsOnlyKeys("listener-channel_receive_listen");
assertThat(asyncAPI.getComponents().getMessages()).containsOnlyKeys("java.lang.String");
assertThat(asyncAPI.getComponents().getSchemas()).containsOnlyKeys("HeadersNotDocumented", "String");
assertThat(asyncAPI.getComponents().getSchemas())
.containsOnlyKeys("HeadersNotDocumented", "java.lang.String");
}
}

Expand All @@ -63,7 +64,8 @@ void asyncPublisherAnnotationIsFound() {
assertThat(asyncAPI.getChannels()).containsOnlyKeys("publisher-channel");
assertThat(asyncAPI.getOperations()).containsOnlyKeys("publisher-channel_send_publish");
assertThat(asyncAPI.getComponents().getMessages()).containsOnlyKeys("java.lang.String");
assertThat(asyncAPI.getComponents().getSchemas()).containsOnlyKeys("HeadersNotDocumented", "String");
assertThat(asyncAPI.getComponents().getSchemas())
.containsOnlyKeys("HeadersNotDocumented", "java.lang.String");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@
},
"multi-payload-topic": {
"messages": {
"io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount": {
"$ref": "#/components/messages/io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
},
"io.github.springwolf.examples.kafka.dtos.AnotherPayloadDto": {
"$ref": "#/components/messages/io.github.springwolf.examples.kafka.dtos.AnotherPayloadDto"
},
"io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto": {
"$ref": "#/components/messages/io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto"
},
"javax.money.MonetaryAmount": {
"$ref": "#/components/messages/javax.money.MonetaryAmount"
}
}
},
Expand All @@ -80,11 +80,11 @@
},
"string-topic": {
"messages": {
"String": {
"$ref": "#/components/messages/String"
},
"io.github.springwolf.examples.kafka.consumers.StringConsumer$StringEnvelope": {
"$ref": "#/components/messages/io.github.springwolf.examples.kafka.consumers.StringConsumer$StringEnvelope"
},
"java.lang.String": {
"$ref": "#/components/messages/java.lang.String"
}
}
},
Expand Down Expand Up @@ -443,16 +443,16 @@
"type": "string",
"description": "Spring Type Id Header",
"enum": [
"javax.money.MonetaryAmount"
"io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
],
"examples": [
"javax.money.MonetaryAmount"
"io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
]
}
},
"examples": [
{
"__TypeId__": "javax.money.MonetaryAmount"
"__TypeId__": "io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
}
],
"x-json-schema": {
Expand All @@ -461,7 +461,7 @@
"__TypeId__": {
"description": "Spring Type Id Header",
"enum": [
"javax.money.MonetaryAmount"
"io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
],
"type": "string"
}
Expand All @@ -476,16 +476,16 @@
"type": "string",
"description": "Spring Type Id Header",
"enum": [
"java.lang.String"
"String"
],
"examples": [
"java.lang.String"
"String"
]
}
},
"examples": [
{
"__TypeId__": "java.lang.String"
"__TypeId__": "String"
}
],
"x-json-schema": {
Expand All @@ -494,7 +494,7 @@
"__TypeId__": {
"description": "Spring Type Id Header",
"enum": [
"java.lang.String"
"String"
],
"type": "string"
}
Expand Down Expand Up @@ -1078,6 +1078,49 @@
}
},
"messages": {
"String": {
"headers": {
"$ref": "#/components/schemas/SpringKafkaDefaultHeaders-String"
},
"payload": {
"schemaFormat": "application/vnd.aai.asyncapi+json;version=3.0.0",
"schema": {
"$ref": "#/components/schemas/String"
}
},
"name": "String",
"title": "String",
"bindings": {
"kafka": {
"bindingVersion": "0.5.0"
}
}
},
"io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount": {
"headers": {
"$ref": "#/components/schemas/SpringKafkaDefaultHeaders-MonetaryAmount"
},
"payload": {
"schemaFormat": "application/vnd.aai.asyncapi+json;version=3.0.0",
"schema": {
"$ref": "#/components/schemas/io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
}
},
"name": "io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount",
"title": "MonetaryAmount",
"bindings": {
"kafka": {
"key": {
"type": "string",
"description": "Kafka Consumer Message Key",
"examples": [
"example-key"
]
},
"bindingVersion": "0.5.0"
}
}
},
"io.github.springwolf.examples.kafka.consumers.StringConsumer$StringEnvelope": {
"headers": {
"$ref": "#/components/schemas/HeadersNotUsed"
Expand Down Expand Up @@ -1232,49 +1275,6 @@
"bindingVersion": "0.5.0"
}
}
},
"java.lang.String": {
"headers": {
"$ref": "#/components/schemas/SpringKafkaDefaultHeaders-String"
},
"payload": {
"schemaFormat": "application/vnd.aai.asyncapi+json;version=3.0.0",
"schema": {
"$ref": "#/components/schemas/String"
}
},
"name": "java.lang.String",
"title": "String",
"bindings": {
"kafka": {
"bindingVersion": "0.5.0"
}
}
},
"javax.money.MonetaryAmount": {
"headers": {
"$ref": "#/components/schemas/SpringKafkaDefaultHeaders-MonetaryAmount"
},
"payload": {
"schemaFormat": "application/vnd.aai.asyncapi+json;version=3.0.0",
"schema": {
"$ref": "#/components/schemas/io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
}
},
"name": "javax.money.MonetaryAmount",
"title": "MonetaryAmount",
"bindings": {
"kafka": {
"key": {
"type": "string",
"description": "Kafka Consumer Message Key",
"examples": [
"example-key"
]
},
"bindingVersion": "0.5.0"
}
}
}
}
},
Expand Down Expand Up @@ -1350,10 +1350,10 @@
"$ref": "#/channels/multi-payload-topic/messages/io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto"
},
{
"$ref": "#/channels/multi-payload-topic/messages/io.github.springwolf.examples.kafka.dtos.AnotherPayloadDto"
"$ref": "#/channels/multi-payload-topic/messages/io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
},
{
"$ref": "#/channels/multi-payload-topic/messages/javax.money.MonetaryAmount"
"$ref": "#/channels/multi-payload-topic/messages/io.github.springwolf.examples.kafka.dtos.AnotherPayloadDto"
}
]
},
Expand Down Expand Up @@ -1383,7 +1383,7 @@
},
"messages": [
{
"$ref": "#/channels/multi-payload-topic/messages/javax.money.MonetaryAmount"
"$ref": "#/channels/multi-payload-topic/messages/io.github.springwolf.addons.common_model_converters.converters.monetaryamount.MonetaryAmount"
}
]
},
Expand Down Expand Up @@ -1417,10 +1417,10 @@
},
"messages": [
{
"$ref": "#/channels/string-topic/messages/io.github.springwolf.examples.kafka.consumers.StringConsumer$StringEnvelope"
"$ref": "#/channels/string-topic/messages/String"
},
{
"$ref": "#/channels/string-topic/messages/java.lang.String"
"$ref": "#/channels/string-topic/messages/io.github.springwolf.examples.kafka.consumers.StringConsumer$StringEnvelope"
}
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ private Map.Entry<String, ChannelObject> toChannelEntry(FunctionalChannelBeanDat

private ChannelObject buildChannel(FunctionalChannelBeanData beanData) {
Class<?> payloadType = beanData.payloadType();
String modelName = componentsService.registerSchema(payloadType);
String modelName = componentsService.registerSchema(
payloadType); // TODO: switch to payloadService? (same for operatoinScanner)
String headerModelName = componentsService.registerSchema(AsyncHeadersNotDocumented.NOT_DOCUMENTED);

var messagePayload = MessagePayload.of(MultiFormatSchema.builder()
Expand Down

0 comments on commit 3d37f09

Please sign in to comment.