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

fix: properly support multiple types in asyncapi 2.6.0 #153

Closed
wants to merge 3 commits into from
Closed
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
24 changes: 5 additions & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,15 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries

# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

# CMake
cmake-build-debug/

# Mongo Explorer plugin:
.idea/**/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
Expand Down
10 changes: 0 additions & 10 deletions .idea/.gitignore

This file was deleted.

14 changes: 0 additions & 14 deletions .idea/compiler.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/kotlinScripting.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/kotlinc.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

2 changes: 1 addition & 1 deletion asyncapi-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<artifactId>asyncapi</artifactId>
<groupId>com.asyncapi</groupId>
<version>1.0.0-EAP-2</version>
<version>1.0.0-EAP-3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define ChannelBinding compatible objects.
*/
public interface ChannelBindingValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define CorrelationId compatible objects.
*/
public interface CorrelationIdValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define MessageBinding compatible objects.
*/
public interface MessageBindingValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define MessageTrait compatible objects.
*/
public interface MessageTraitValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define Message compatible objects.
*/
public interface MessageValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define OperationBinding compatible objects.
*/
public interface OperationBindingValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define OperationTrait compatible objects.
*/
public interface OperationTraitValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define Message compatible objects.
*/
public interface ParameterValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define Schema compatible objects.
*/
public interface SchemaValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define SecurityScheme compatible objects.
*/
public interface SecuritySchemeValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define ServerBinding compatible objects.
*/
public interface ServerBindingValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define Server compatible objects.
*/
public interface ServerValue {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.asyncapi.v2;

/**
* Interface to define ServerVariable compatible objects.
*/
public interface ServerVariableValue {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
package com.asyncapi.v2._6_0.model;

import com.asyncapi.v2.ChannelBindingValue;
import com.asyncapi.v2.CorrelationIdValue;
import com.asyncapi.v2.MessageBindingValue;
import com.asyncapi.v2.MessageTraitValue;
import com.asyncapi.v2.MessageValue;
import com.asyncapi.v2.OperationBindingValue;
import com.asyncapi.v2.OperationTraitValue;
import com.asyncapi.v2.ParameterValue;
import com.asyncapi.v2.SchemaValue;
import com.asyncapi.v2.SecuritySchemeValue;
import com.asyncapi.v2.ServerBindingValue;
import com.asyncapi.v2.ServerValue;
import com.asyncapi.v2.ServerVariableValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
Expand All @@ -26,7 +39,7 @@
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public class Reference {
public class Reference implements ChannelBindingValue, CorrelationIdValue, MessageValue, MessageBindingValue, MessageTraitValue, OperationBindingValue, OperationTraitValue, ParameterValue, SchemaValue, SecuritySchemeValue, ServerValue, ServerBindingValue, ServerVariableValue {

/**
* Required.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.asyncapi.v2._6_0.model.channel;

import com.asyncapi.v2.ChannelBindingValue;
import com.asyncapi.v2.ExtendableObject;
import com.asyncapi.v2.ParameterValue;
import com.asyncapi.v2._6_0.jackson.model.channel.ChannelParametersDeserializer;
import com.asyncapi.v2._6_0.model.channel.operation.Operation;
import com.asyncapi.v2.binding.channel.ChannelBinding;
Expand Down Expand Up @@ -79,7 +81,7 @@ public class ChannelItem extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = ChannelParametersDeserializer.class)
private Map<String, Object> parameters;
private Map<String, ParameterValue> parameters;

/**
* A map where the keys describe the name of the protocol and the values describe protocol-specific definitions for the channel.
Expand All @@ -92,6 +94,6 @@ public class ChannelItem extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = ChannelBindingsDeserializer.class)
private Map<String, Object> bindings;
private Map<String, ChannelBindingValue> bindings;

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.asyncapi.v2._6_0.model.channel;

import com.asyncapi.v2.ExtendableObject;
import com.asyncapi.v2.ParameterValue;
import com.asyncapi.v2._6_0.jackson.model.schema.SchemaDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.AllArgsConstructor;
Expand All @@ -22,7 +23,7 @@
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Parameter extends ExtendableObject {
public class Parameter extends ExtendableObject implements ParameterValue {

/**
* A verbose explanation of the parameter. <a href="https://spec.commonmark.org/">CommonMark syntax</a> can be used for rich text representation.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.asyncapi.v2._6_0.model.channel.message;

import com.asyncapi.v2.CorrelationIdValue;
import com.asyncapi.v2.ExtendableObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
Expand All @@ -23,7 +24,7 @@
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CorrelationId extends ExtendableObject {
public class CorrelationId extends ExtendableObject implements CorrelationIdValue {

/**
* An optional description of the identifier. <a href="https://spec.commonmark.org/">CommonMark syntax</a> can be used for rich text representation.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.asyncapi.v2._6_0.model.channel.message;

import com.asyncapi.v2.ExtendableObject;
import com.asyncapi.v2.MessageBindingValue;
import com.asyncapi.v2.MessageTraitValue;
import com.asyncapi.v2.MessageValue;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageCorrelationIdDeserializer;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageHeadersDeserializer;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessagePayloadDeserializer;
Expand Down Expand Up @@ -32,7 +35,7 @@
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Message extends ExtendableObject {
public class Message extends ExtendableObject implements MessageValue {

/**
* Unique string used to identify the message.
Expand Down Expand Up @@ -155,7 +158,7 @@ public class Message extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = MessageBindingsDeserializer.class)
private Map<String, Object> bindings;
private Map<String, MessageBindingValue> bindings;

/**
* List of examples.
Expand All @@ -176,6 +179,5 @@ public class Message extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = MessageTraitsDeserializer.class)
private List<Object> traits;

private List<MessageTraitValue> traits;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.asyncapi.v2._6_0.model.channel.message;

import com.asyncapi.v2.ExtendableObject;
import com.asyncapi.v2.MessageBindingValue;
import com.asyncapi.v2.MessageTraitValue;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageCorrelationIdDeserializer;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageHeadersDeserializer;
import com.asyncapi.v2._6_0.model.ExternalDocumentation;
Expand Down Expand Up @@ -36,7 +38,7 @@
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MessageTrait extends ExtendableObject {
public class MessageTrait extends ExtendableObject implements MessageTraitValue {

/**
* Unique string used to identify the message.
Expand Down Expand Up @@ -145,7 +147,7 @@ public class MessageTrait extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = MessageBindingsDeserializer.class)
private Map<String, Object> bindings;
private Map<String, MessageBindingValue> bindings;

/**
* List of examples.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.asyncapi.v2._6_0.model.channel.message;

import com.asyncapi.v2.MessageValue;
import com.asyncapi.v2._6_0.jackson.model.channel.message.MessagesDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -31,6 +32,6 @@ public class OneOfMessages {
*/
@NotNull
@JsonDeserialize(using = MessagesDeserializer.class)
private List<Object> oneOf;
private List<MessageValue> oneOf;

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.asyncapi.v2._6_0.model.channel.operation;

import com.asyncapi.v2.ExtendableObject;
import com.asyncapi.v2.OperationBindingValue;
import com.asyncapi.v2.OperationTraitValue;
import com.asyncapi.v2._6_0.jackson.model.channel.operation.OperationMessageDeserializer;
import com.asyncapi.v2._6_0.jackson.model.channel.operation.OperationTraitsDeserializer;
import com.asyncapi.v2._6_0.model.ExternalDocumentation;
Expand Down Expand Up @@ -93,7 +95,7 @@ public class Operation extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = OperationBindingsDeserializer.class)
private Map<String, Object> bindings;
private Map<String, OperationBindingValue> bindings;

/**
* A list of traits to apply to the operation object.
Expand All @@ -107,7 +109,7 @@ public class Operation extends ExtendableObject {
*/
@Nullable
@JsonDeserialize(using = OperationTraitsDeserializer.class)
private List<Object> traits;
private List<OperationTraitValue> traits;

/**
* A definition of the message that will be published or received by this operation.
Expand All @@ -124,5 +126,4 @@ public class Operation extends ExtendableObject {
@Nullable
@JsonDeserialize(using = OperationMessageDeserializer.class)
private Object message;

}
Loading