From b876c0476a22be806acea18caeffb57d96d72748 Mon Sep 17 00:00:00 2001 From: Lucas Fairchild-Madar Date: Tue, 9 Jul 2024 06:26:44 -0700 Subject: [PATCH] Add avro schema parsing test to the utilities subproject to validate recursive schema issue --- .../xtable/utilities/TestAvroCompatibility.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 xtable-utilities/src/test/java/org/apache/xtable/utilities/TestAvroCompatibility.java diff --git a/xtable-utilities/src/test/java/org/apache/xtable/utilities/TestAvroCompatibility.java b/xtable-utilities/src/test/java/org/apache/xtable/utilities/TestAvroCompatibility.java new file mode 100644 index 00000000..900f287e --- /dev/null +++ b/xtable-utilities/src/test/java/org/apache/xtable/utilities/TestAvroCompatibility.java @@ -0,0 +1,14 @@ +package org.apache.xtable.utilities; + +import org.apache.avro.Schema; +import org.apache.avro.specific.SpecificData; +import org.junit.jupiter.api.Test; + +public class TestAvroCompatibility { + @Test + public void testAvroCompatibility() { + String schema = "{\"type\":\"record\",\"name\":\"HoodieCleanMetadata\",\"namespace\":\"org.apache.hudi.avro.model\",\"fields\":[{\"name\":\"startCleanTime\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}},{\"name\":\"timeTakenInMillis\",\"type\":\"long\"},{\"name\":\"totalFilesDeleted\",\"type\":\"int\"},{\"name\":\"earliestCommitToRetain\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}},{\"name\":\"lastCompletedCommitTimestamp\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"default\":\"\"},{\"name\":\"partitionMetadata\",\"type\":{\"type\":\"map\",\"values\":{\"type\":\"record\",\"name\":\"HoodieCleanPartitionMetadata\",\"fields\":[{\"name\":\"partitionPath\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}},{\"name\":\"policy\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}},{\"name\":\"deletePathPatterns\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"}}},{\"name\":\"successDeleteFiles\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"}}},{\"name\":\"failedDeleteFiles\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"}}},{\"name\":\"isPartitionDeleted\",\"type\":[\"null\",\"boolean\"],\"default\":null}]},\"avro.java.string\":\"String\"}},{\"name\":\"version\",\"type\":[\"int\",\"null\"],\"default\":1},{\"name\":\"bootstrapPartitionMetadata\",\"type\":[\"null\",{\"type\":\"map\",\"values\":\"HoodieCleanPartitionMetadata\",\"avro.java.string\":\"String\",\"default\":null}],\"default\":null}]}"; + Schema avroSchema = new Schema.Parser().parse(schema); + SpecificData specificData = SpecificData.getForSchema(avroSchema); + } +}