From 3414eae643517591015e3a6154c726c31f2d3095 Mon Sep 17 00:00:00 2001 From: Daniil Guitelson Date: Tue, 29 Aug 2017 12:13:42 +0300 Subject: [PATCH 1/3] AVRO-2069: Use primitive fields in generated getters & setters in Java code --- .../compiler/specific/templates/java/classic/record.vm | 6 +++--- .../org/apache/avro/message/TestCustomSchemaStore.java | 2 +- .../avro/specific/TestSpecificRecordBuilder.java | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm b/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm index ccec4b60c1d..c4d51ede348 100644 --- a/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm +++ b/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm @@ -190,7 +190,7 @@ public class ${this.mangle($schema.getName())}#if ($schema.isError()) extends or #else * @return The value of the '${this.mangle($field.name(), $schema.isError())}' field. #end */ - public ${this.javaType($field.schema())} ${this.generateGetMethod($schema, $field)}() { + public ${this.javaUnbox($field.schema())} ${this.generateGetMethod($schema, $field)}() { return ${this.mangle($field.name(), $schema.isError())}; } @@ -201,7 +201,7 @@ public class ${this.mangle($schema.getName())}#if ($schema.isError()) extends or #end * @param value the value to set. */ - public void ${this.generateSetMethod($schema, $field)}(${this.javaType($field.schema())} value) { + public void ${this.generateSetMethod($schema, $field)}(${this.javaUnbox($field.schema())} value) { this.${this.mangle($field.name(), $schema.isError())} = value; } #end @@ -333,7 +333,7 @@ public class ${this.mangle($schema.getName())}#if ($schema.isError()) extends or #end * @return The value. */ - public ${this.javaType($field.schema())} ${this.generateGetMethod($schema, $field)}() { + public ${this.javaUnbox($field.schema())} ${this.generateGetMethod($schema, $field)}() { return ${this.mangle($field.name(), $schema.isError())}; } diff --git a/lang/java/ipc/src/test/java/org/apache/avro/message/TestCustomSchemaStore.java b/lang/java/ipc/src/test/java/org/apache/avro/message/TestCustomSchemaStore.java index ba960442a68..5de9d6a389d 100644 --- a/lang/java/ipc/src/test/java/org/apache/avro/message/TestCustomSchemaStore.java +++ b/lang/java/ipc/src/test/java/org/apache/avro/message/TestCustomSchemaStore.java @@ -62,7 +62,7 @@ public void testCompatibleReadWithSchemaFromSchemaStore() throws Exception { // Should work assertEquals(nestedEvolve1.getRootName(), "RootName"); assertEquals(nestedEvolve1.getNested().getName(), "Name"); - assertEquals(nestedEvolve1.getNested().getValue(), Long.valueOf(1)); + assertEquals(nestedEvolve1.getNested().getValue(), 1); } @Test(expected = MissingSchemaException.class) diff --git a/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java b/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java index 73057571f31..686d8aa6802 100644 --- a/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java +++ b/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java @@ -48,7 +48,7 @@ public void testSpecificBuilder() { Assert.assertTrue(builder.hasName()); Assert.assertEquals("James Gosling", builder.getName().toString()); Assert.assertTrue(builder.hasYearOfBirth()); - Assert.assertEquals(new Integer(1955), builder.getYearOfBirth()); + Assert.assertEquals(1955, builder.getYearOfBirth()); Assert.assertFalse(builder.hasCountry()); Assert.assertNull(builder.getCountry()); Assert.assertTrue(builder.hasState()); @@ -60,7 +60,7 @@ public void testSpecificBuilder() { Person person = builder.build(); Assert.assertEquals("James Gosling", person.getName().toString()); - Assert.assertEquals(new Integer(1955), person.getYearOfBirth()); + Assert.assertEquals(1955, person.getYearOfBirth()); Assert.assertEquals("US", person.getCountry().toString()); // country should default to "US" Assert.assertEquals("CA", person.getState().toString()); Assert.assertNotNull(person.getFriends()); // friends should default to an empty list @@ -76,7 +76,7 @@ public void testSpecificBuilder() { Person.Builder builderCopy = Person.newBuilder(person); Assert.assertEquals("James Gosling", builderCopy.getName().toString()); - Assert.assertEquals(new Integer(1955), builderCopy.getYearOfBirth()); + Assert.assertEquals(1955, builderCopy.getYearOfBirth()); Assert.assertEquals("US", builderCopy.getCountry().toString()); // country should default to "US" Assert.assertEquals("CA", builderCopy.getState().toString()); Assert.assertNotNull(builderCopy.getFriends()); // friends should default to an empty list @@ -103,13 +103,13 @@ public void testUnions() { .setProduct(product) .build()) .build(); - Assert.assertEquals(datetime, p.getDatetime().longValue()); + Assert.assertEquals(datetime, p.getDatetime()); Assert.assertEquals(ProductPage.class, p.getPageContext().getClass()); Assert.assertEquals(product, ((ProductPage)p.getPageContext()).getProduct()); PageView p2 = PageView.newBuilder(p).build(); - Assert.assertEquals(datetime, p2.getDatetime().longValue()); + Assert.assertEquals(datetime, p2.getDatetime()); Assert.assertEquals(ProductPage.class, p2.getPageContext().getClass()); Assert.assertEquals(product, ((ProductPage)p2.getPageContext()).getProduct()); From c642adaf3d29183049cd4ad2e0012b002d95d7c6 Mon Sep 17 00:00:00 2001 From: Daniil Guitelson Date: Wed, 30 Aug 2017 18:37:41 +0300 Subject: [PATCH 2/3] AVRO-2069: Use primitive fields in generated getters & setters in Java code Fix broken unit tests in TestSpecificCompilerTool --- .../output-string/avro/examples/baseball/Player.java | 6 +++--- lang/java/tools/src/test/compiler/output/Player.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java index 4dff5ef5053..f108c211845 100644 --- a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java +++ b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java @@ -107,7 +107,7 @@ public void put(int field$, java.lang.Object value$) { * Gets the value of the 'number' field. * @return The number of the player */ - public java.lang.Integer getNumber() { + public int getNumber() { return number; } @@ -116,7 +116,7 @@ public java.lang.Integer getNumber() { * The number of the player * @param value the value to set. */ - public void setNumber(java.lang.Integer value) { + public void setNumber(int value) { this.number = value; } @@ -272,7 +272,7 @@ private Builder(avro.examples.baseball.Player other) { * The number of the player * @return The value. */ - public java.lang.Integer getNumber() { + public int getNumber() { return number; } diff --git a/lang/java/tools/src/test/compiler/output/Player.java b/lang/java/tools/src/test/compiler/output/Player.java index 26fcbc0d559..133ea94d2f7 100644 --- a/lang/java/tools/src/test/compiler/output/Player.java +++ b/lang/java/tools/src/test/compiler/output/Player.java @@ -107,7 +107,7 @@ public void put(int field$, java.lang.Object value$) { * Gets the value of the 'number' field. * @return The number of the player */ - public java.lang.Integer getNumber() { + public int getNumber() { return number; } @@ -116,7 +116,7 @@ public java.lang.Integer getNumber() { * The number of the player * @param value the value to set. */ - public void setNumber(java.lang.Integer value) { + public void setNumber(int value) { this.number = value; } @@ -272,7 +272,7 @@ private Builder(avro.examples.baseball.Player other) { * The number of the player * @return The value. */ - public java.lang.Integer getNumber() { + public int getNumber() { return number; } From 500c28c212d20e40fe48b6229cfc7764631f56e8 Mon Sep 17 00:00:00 2001 From: Daniil Guitelson Date: Fri, 1 Sep 2017 17:37:10 +0300 Subject: [PATCH 3/3] AVRO-2069: Use primitive fields in generated getters & setters in Java code Fix broken unit tests in TestSpecificCompilerTool after migrating to org.junit.Test --- .../org/apache/avro/specific/TestSpecificRecordBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java b/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java index bb836a8e4a3..d5a57f0c349 100644 --- a/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java +++ b/lang/java/ipc/src/test/java/org/apache/avro/specific/TestSpecificRecordBuilder.java @@ -141,10 +141,10 @@ public void testInterop() { Assert.assertEquals(interop.getArrayField(), copy.getArrayField()); Assert.assertEquals(interop.getBoolField(), copy.getBoolField()); Assert.assertEquals(interop.getBytesField(), copy.getBytesField()); - Assert.assertEquals(interop.getDoubleField(), copy.getDoubleField()); + Assert.assertEquals(interop.getDoubleField(), copy.getDoubleField(), 0.001); Assert.assertEquals(interop.getEnumField(), copy.getEnumField()); Assert.assertEquals(interop.getFixedField(), copy.getFixedField()); - Assert.assertEquals(interop.getFloatField(), copy.getFloatField()); + Assert.assertEquals(interop.getFloatField(), copy.getFloatField(), 0.001); Assert.assertEquals(interop.getIntField(), copy.getIntField()); Assert.assertEquals(interop.getLongField(), copy.getLongField()); Assert.assertEquals(interop.getMapField(), copy.getMapField());