This is an automated email from the ASF dual-hosted git repository.

fokko pushed a commit to branch branch-1.9
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/branch-1.9 by this push:
     new 63d5148  AVRO-2392: enble joda micros logical types supports (#517)
63d5148 is described below

commit 63d51487daad17458a0edcec1c65ae76619de76e
Author: Shameera Yodage <[email protected]>
AuthorDate: Fri May 31 13:53:03 2019 -0400

    AVRO-2392: enble joda micros logical types supports (#517)
---
 .../avro/compiler/specific/SpecificCompiler.java   |  2 ++
 .../compiler/specific/TestSpecificCompiler.java    | 22 ++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git 
a/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
 
b/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
index 19fce11..ef8e951 100644
--- 
a/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
+++ 
b/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
@@ -102,7 +102,9 @@ public class SpecificCompiler {
       void addLogicalTypeConversions(SpecificData specificData) {
         specificData.addLogicalTypeConversion(new 
JodaTimeConversions.DateConversion());
         specificData.addLogicalTypeConversion(new 
JodaTimeConversions.TimeConversion());
+        specificData.addLogicalTypeConversion(new 
JodaTimeConversions.TimeMicrosConversion());
         specificData.addLogicalTypeConversion(new 
JodaTimeConversions.TimestampConversion());
+        specificData.addLogicalTypeConversion(new 
JodaTimeConversions.TimestampMicrosConversion());
       }
     },
     JSR310 {
diff --git 
a/lang/java/compiler/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java
 
b/lang/java/compiler/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java
index eb4b93d..34d8f1e 100644
--- 
a/lang/java/compiler/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java
+++ 
b/lang/java/compiler/src/test/java/org/apache/avro/compiler/specific/TestSpecificCompiler.java
@@ -435,15 +435,21 @@ public class TestSpecificCompiler {
 
     Schema dateSchema = 
LogicalTypes.date().addToSchema(Schema.create(Schema.Type.INT));
     Schema timeSchema = 
LogicalTypes.timeMillis().addToSchema(Schema.create(Schema.Type.INT));
+    Schema timeMicroSchema = 
LogicalTypes.timeMicros().addToSchema(Schema.create(Schema.Type.LONG));
     Schema timestampSchema = 
LogicalTypes.timestampMillis().addToSchema(Schema.create(Schema.Type.LONG));
+    Schema timestampMicrosSchema = 
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
     // Date/time types should always use upper level java classes, even though
     // their underlying representations are primitive types
     Assert.assertEquals("Should use Joda LocalDate for date type", 
"org.joda.time.LocalDate",
         compiler.javaUnbox(dateSchema));
     Assert.assertEquals("Should use Joda LocalTime for time-millis type", 
"org.joda.time.LocalTime",
         compiler.javaUnbox(timeSchema));
+    Assert.assertEquals("Should use Joda DateTime for timestamp-millis type", 
"org.joda.time.LocalTime",
+        compiler.javaUnbox(timeMicroSchema));
     Assert.assertEquals("Should use Joda DateTime for timestamp-millis type", 
"org.joda.time.DateTime",
         compiler.javaUnbox(timestampSchema));
+    Assert.assertEquals("Should use Joda DateTime for timestamp-millis type", 
"org.joda.time.DateTime",
+        compiler.javaUnbox(timestampMicrosSchema));
   }
 
   @Test
@@ -638,7 +644,9 @@ public class TestSpecificCompiler {
 
     Schema dateSchema = 
LogicalTypes.date().addToSchema(Schema.create(Schema.Type.INT));
     Schema timeSchema = 
LogicalTypes.timeMillis().addToSchema(Schema.create(Schema.Type.INT));
+    Schema timeMicroSchema = 
LogicalTypes.timeMicros().addToSchema(Schema.create(Schema.Type.LONG));
     Schema timestampSchema = 
LogicalTypes.timestampMillis().addToSchema(Schema.create(Schema.Type.LONG));
+    Schema timestampMicrosSchema = 
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
     Schema decimalSchema = LogicalTypes.decimal(9, 
2).addToSchema(Schema.create(Schema.Type.BYTES));
     Schema uuidSchema = 
LogicalTypes.uuid().addToSchema(Schema.create(Schema.Type.STRING));
 
@@ -646,9 +654,15 @@ public class TestSpecificCompiler {
         "new org.apache.avro.data.JodaTimeConversions.DateConversion()", 
compiler.conversionInstance(dateSchema));
     Assert.assertEquals("Should use time conversion for time type",
         "new org.apache.avro.data.JodaTimeConversions.TimeConversion()", 
compiler.conversionInstance(timeSchema));
+    Assert.assertEquals("Should use time conversion for time type",
+        "new org.apache.avro.data.JodaTimeConversions.TimeMicrosConversion()",
+        compiler.conversionInstance(timeMicroSchema));
     Assert.assertEquals("Should use timestamp conversion for date type",
         "new org.apache.avro.data.JodaTimeConversions.TimestampConversion()",
         compiler.conversionInstance(timestampSchema));
+    Assert.assertEquals("Should use timestamp conversion for date type",
+        "new 
org.apache.avro.data.JodaTimeConversions.TimestampMicrosConversion()",
+        compiler.conversionInstance(timestampMicrosSchema));
     Assert.assertEquals("Should use null for decimal if the flag is off", 
"null",
         compiler.conversionInstance(decimalSchema));
     Assert.assertEquals("Should use null for decimal if the flag is off", 
"null",
@@ -662,7 +676,9 @@ public class TestSpecificCompiler {
 
     Schema dateSchema = 
LogicalTypes.date().addToSchema(Schema.create(Schema.Type.INT));
     Schema timeSchema = 
LogicalTypes.timeMillis().addToSchema(Schema.create(Schema.Type.INT));
+    Schema timeMicroSchema = 
LogicalTypes.timeMicros().addToSchema(Schema.create(Schema.Type.LONG));
     Schema timestampSchema = 
LogicalTypes.timestampMillis().addToSchema(Schema.create(Schema.Type.LONG));
+    Schema timestampMicrosSchema = 
LogicalTypes.timestampMicros().addToSchema(Schema.create(Schema.Type.LONG));
     Schema decimalSchema = LogicalTypes.decimal(9, 
2).addToSchema(Schema.create(Schema.Type.BYTES));
     Schema uuidSchema = 
LogicalTypes.uuid().addToSchema(Schema.create(Schema.Type.STRING));
 
@@ -670,9 +686,15 @@ public class TestSpecificCompiler {
         "new org.apache.avro.data.JodaTimeConversions.DateConversion()", 
compiler.conversionInstance(dateSchema));
     Assert.assertEquals("Should use time conversion for time type",
         "new org.apache.avro.data.JodaTimeConversions.TimeConversion()", 
compiler.conversionInstance(timeSchema));
+    Assert.assertEquals("Should use time conversion for time type",
+        "new org.apache.avro.data.JodaTimeConversions.TimeMicrosConversion()",
+        compiler.conversionInstance(timeMicroSchema));
     Assert.assertEquals("Should use timestamp conversion for date type",
         "new org.apache.avro.data.JodaTimeConversions.TimestampConversion()",
         compiler.conversionInstance(timestampSchema));
+    Assert.assertEquals("Should use timestamp conversion for date type",
+        "new 
org.apache.avro.data.JodaTimeConversions.TimestampMicrosConversion()",
+        compiler.conversionInstance(timestampMicrosSchema));
     Assert.assertEquals("Should use null for decimal if the flag is off",
         "new org.apache.avro.Conversions.DecimalConversion()", 
compiler.conversionInstance(decimalSchema));
     Assert.assertEquals("Should use null for decimal if the flag is off", 
"null",

Reply via email to