Repository: incubator-gobblin Updated Branches: refs/heads/master e386cf67e -> b11be3d60
[GOBBLIN-468] Fix bug with enum for json to avro converter Closes #2341 from jack-moseley/enum-fix Project: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/commit/b11be3d6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/tree/b11be3d6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/diff/b11be3d6 Branch: refs/heads/master Commit: b11be3d60131b8ac5b35f901945b2dd6341bd2f2 Parents: e386cf6 Author: Jack Moseley <[email protected]> Authored: Wed Apr 18 10:16:34 2018 -0700 Committer: Hung Tran <[email protected]> Committed: Wed Apr 18 10:16:34 2018 -0700 ---------------------------------------------------------------------- .../JsonElementConversionWithAvroSchemaFactory.java | 2 ++ .../JsonRecordAvroSchemaToAvroConverterTest.java | 2 ++ .../test/resources/converter/jsonToAvroRecord.json | 3 ++- .../test/resources/converter/jsonToAvroSchema.avsc | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b11be3d6/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java ---------------------------------------------------------------------- diff --git a/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java b/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java index cc51874..f7a8e80 100644 --- a/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java +++ b/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java @@ -154,6 +154,8 @@ public class JsonElementConversionWithAvroSchemaFactory extends JsonElementConve this.enumSet.addAll(schemaNode.getEnumSymbols()); this.enumName = schemaNode.getType().getName(); + + this.schema = schemaNode; } @Override http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b11be3d6/gobblin-core/src/test/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverterTest.java ---------------------------------------------------------------------- diff --git a/gobblin-core/src/test/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverterTest.java b/gobblin-core/src/test/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverterTest.java index ed2dbb6..f59de8c 100644 --- a/gobblin-core/src/test/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverterTest.java +++ b/gobblin-core/src/test/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverterTest.java @@ -83,5 +83,7 @@ public class JsonRecordAvroSchemaToAvroConverterTest { GenericRecord recordInArray = (GenericRecord) (((GenericArray) record.get("arrayOfRecords")).get(0)); Assert.assertEquals(recordInArray.get("field1").toString(), "test1"); + + Assert.assertEquals((record.get("enumField")).toString(), "ENUM2"); } } http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b11be3d6/gobblin-core/src/test/resources/converter/jsonToAvroRecord.json ---------------------------------------------------------------------- diff --git a/gobblin-core/src/test/resources/converter/jsonToAvroRecord.json b/gobblin-core/src/test/resources/converter/jsonToAvroRecord.json index 7ab2c50..bbdd232 100644 --- a/gobblin-core/src/test/resources/converter/jsonToAvroRecord.json +++ b/gobblin-core/src/test/resources/converter/jsonToAvroRecord.json @@ -20,5 +20,6 @@ "field1": "test3", "field2": "test4" } - ] + ], + "enumField": "ENUM2" } http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b11be3d6/gobblin-core/src/test/resources/converter/jsonToAvroSchema.avsc ---------------------------------------------------------------------- diff --git a/gobblin-core/src/test/resources/converter/jsonToAvroSchema.avsc b/gobblin-core/src/test/resources/converter/jsonToAvroSchema.avsc index 0198eb8..2502f33 100644 --- a/gobblin-core/src/test/resources/converter/jsonToAvroSchema.avsc +++ b/gobblin-core/src/test/resources/converter/jsonToAvroSchema.avsc @@ -97,6 +97,21 @@ ] } } + }, + { + "name": "enumField", + "type": [ + "null", + { + "name": "enum", + "symbols": [ + "ENUM1", + "ENUM2", + "ENUM3" + ], + "type": "enum" + } + ] } ] }
