You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2010/08/18 23:35:15 UTC
svn commit: r986957 - in /avro/trunk: CHANGES.txt
lang/java/src/java/org/apache/avro/Schema.java
lang/java/src/test/java/org/apache/avro/TestSchema.java
Author: cutting
Date: Wed Aug 18 21:35:15 2010
New Revision: 986957
URL: http://svn.apache.org/viewvc?rev=986957&view=rev
Log:
AVRO-612. Java: Preserve field documentation when writing schemas.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/src/java/org/apache/avro/Schema.java
avro/trunk/lang/java/src/test/java/org/apache/avro/TestSchema.java
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=986957&r1=986956&r2=986957&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Wed Aug 18 21:35:15 2010
@@ -148,6 +148,8 @@ Avro 1.4.0 (unreleased)
AVRO-609. Java: Fix JsonToBinaryFragmentTool to flush output. (cutting)
+ AVRO-612. Java: Preserve field documentation when writing schemas. (cutting)
+
Avro 1.3.3 (7 June 2010)
IMPROVEMENTS
Modified: avro/trunk/lang/java/src/java/org/apache/avro/Schema.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/java/org/apache/avro/Schema.java?rev=986957&r1=986956&r2=986957&view=diff
==============================================================================
--- avro/trunk/lang/java/src/java/org/apache/avro/Schema.java (original)
+++ avro/trunk/lang/java/src/java/org/apache/avro/Schema.java Wed Aug 18 21:35:15 2010
@@ -617,6 +617,8 @@ public abstract class Schema {
gen.writeStringField("name", f.name());
gen.writeFieldName("type");
f.schema().toJson(names, gen);
+ if (f.doc() != null)
+ gen.writeStringField("doc", f.doc());
if (f.defaultValue() != null) {
gen.writeFieldName("default");
gen.writeTree(f.defaultValue());
Modified: avro/trunk/lang/java/src/test/java/org/apache/avro/TestSchema.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/src/test/java/org/apache/avro/TestSchema.java?rev=986957&r1=986956&r2=986957&view=diff
==============================================================================
--- avro/trunk/lang/java/src/test/java/org/apache/avro/TestSchema.java (original)
+++ avro/trunk/lang/java/src/test/java/org/apache/avro/TestSchema.java Wed Aug 18 21:35:15 2010
@@ -373,6 +373,20 @@ public class TestSchema {
}
@Test
+ public void testFieldDocs() {
+ String schemaStr = "{\"name\": \"Rec\",\"type\": \"record\",\"fields\" : ["+
+ "{\"name\": \"f\", \"type\": \"int\", \"doc\": \"test\"}]}";
+
+ // check field doc is parsed correctly
+ Schema schema = Schema.parse(schemaStr);
+ assertEquals("test", schema.getField("f").doc());
+
+ // check print/read cycle preserves field doc
+ schema = Schema.parse(schema.toString());
+ assertEquals("test", schema.getField("f").doc());
+ }
+
+ @Test
public void testAliases() throws Exception {
String t1 = "{\"type\":\"record\",\"name\":\"a.b\","
+"\"fields\":[{\"name\":\"f\",\"type\":\"long\"}]}";