diff --git a/airbyte-protocol/protocol-models/src/main/resources/airbyte_protocol/v0/airbyte_protocol.yaml b/airbyte-protocol/protocol-models/src/main/resources/airbyte_protocol/v0/airbyte_protocol.yaml new file mode 120000 index 000000000000..c327ab20a10c --- /dev/null +++ b/airbyte-protocol/protocol-models/src/main/resources/airbyte_protocol/v0/airbyte_protocol.yaml @@ -0,0 +1 @@ +../airbyte_protocol.yaml \ No newline at end of file diff --git a/airbyte-protocol/protocol-models/src/test/java/io/airbyte/protocol/models/AirbyteProtocolSchemaTest.java b/airbyte-protocol/protocol-models/src/test/java/io/airbyte/protocol/models/AirbyteProtocolSchemaTest.java index 5f9529335d50..01ac97efafbc 100644 --- a/airbyte-protocol/protocol-models/src/test/java/io/airbyte/protocol/models/AirbyteProtocolSchemaTest.java +++ b/airbyte-protocol/protocol-models/src/test/java/io/airbyte/protocol/models/AirbyteProtocolSchemaTest.java @@ -4,8 +4,11 @@ package io.airbyte.protocol.models; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +import io.airbyte.commons.json.Jsons; +import io.airbyte.protocol.models.AirbyteMessage.Type; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -33,4 +36,16 @@ void testJsonSchemaType() { } } + @Test + void testVersionedObjectsAccessibility() { + final var message = new io.airbyte.protocol.models.AirbyteMessage() + .withType(Type.SPEC); + final var messageV0 = new io.airbyte.protocol.models.v0.AirbyteMessage() + .withType(io.airbyte.protocol.models.v0.AirbyteMessage.Type.SPEC); + + // This only works as long as the default version and v0 are equal + final var deserializedMessage = Jsons.deserialize(Jsons.serialize(message), io.airbyte.protocol.models.v0.AirbyteMessage.class); + assertEquals(messageV0, deserializedMessage); + } + }