[ 
https://issues.apache.org/jira/browse/AVRO-2723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17054576#comment-17054576
 ] 

Kengo Seki commented on AVRO-2723:
----------------------------------

bq. should I add implementation for `ReflectData.AllowDefaults` (please see 
class DefaultReflector above) ?

That sounds good to me. But I'm not sure if {{AllowDefaults}} is a suitable 
name, because users can also specify default values using the {{AvroDefault}} 
annotations instead of that class. So {{UseInitialValueAsDefault}} or something 
might be more precise?

bq. Make another PR to improve the documentation, right?

Yes please, that's very helpful! And before that, would you file a 
corresponding JIRA issue and explain how to reproduce those errors first?
Because I didn't see them when I ran {{mvn javadoc:aggregate}} in a Docker 
container, though many warnings were shown as follows. Maybe you're using Java 
11?

{code}
~/avro$ ./build.sh docker

(snip)

sekikn@07b11f942aed:~/avro$ mvn javadoc:aggregate

(snip)

48 warnings
[WARNING] Javadoc Warnings
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/message/BinaryMessageEncoder.java:54:
 warning - Tag @link: can't find encode(D) in 
org.apache.avro.message.BinaryMessageEncoder
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/message/BinaryMessageEncoder.java:76:
 warning - Tag @link: can't find encode(D) in 
org.apache.avro.message.BinaryMessageEncoder
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/message/RawMessageEncoder.java:58:
 warning - Tag @link: can't find encode(D) in 
org.apache.avro.message.RawMessageEncoder
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/message/RawMessageEncoder.java:80:
 warning - Tag @link: can't find encode(D) in 
org.apache.avro.message.RawMessageEncoder
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/reflect/MapEntry.java:34:
 warning - Tag @link: reference not found: Map.Entry
[WARNING] 
/home/sekikn/avro/lang/java/compiler/src/main/java/org/apache/avro/compiler/schema/SchemaVisitor.java:32:
 warning - @return tag has no arguments.
[WARNING] 
/home/sekikn/avro/lang/java/compiler/src/main/java/org/apache/avro/compiler/schema/SchemaVisitor.java:40:
 warning - @return tag has no arguments.
[WARNING] 
/home/sekikn/avro/lang/java/compiler/src/main/java/org/apache/avro/compiler/schema/SchemaVisitor.java:48:
 warning - @return tag has no arguments.
[WARNING] 
/home/sekikn/avro/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java:813:
 warning - @Deprecated is an unknown tag -- same as a known tag except for case.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:86:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:94:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:102:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:110:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:119:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:128:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:137:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:146:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:154:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:164:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:171:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:180:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:180:
 warning - @readonly is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java:180:
 warning - @required is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/target/generated-sources/plugin/org/apache/avro/mojo/HelpMojo.java:29:
 warning - @goal is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/target/generated-sources/plugin/org/apache/avro/mojo/HelpMojo.java:29:
 warning - @requiresProject is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/target/generated-sources/plugin/org/apache/avro/mojo/HelpMojo.java:29:
 warning - @threadSafe is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/IDLProtocolMojo.java:44:
 warning - @goal is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/IDLProtocolMojo.java:44:
 warning - @requiresDependencyResolution is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/IDLProtocolMojo.java:44:
 warning - @phase is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/IDLProtocolMojo.java:44:
 warning - @threadSafe is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:42:
 warning - @goal is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:42:
 warning - @phase is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:42:
 warning - @threadSafe is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:88:
 warning - @parameter is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:88:
 warning - @readonly is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/InduceMojo.java:88:
 warning - @required is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/ProtocolMojo.java:39:
 warning - @goal is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/ProtocolMojo.java:39:
 warning - @phase is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/ProtocolMojo.java:39:
 warning - @requiresDependencyResolution is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/ProtocolMojo.java:39:
 warning - @threadSafe is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/SchemaMojo.java:39:
 warning - @goal is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/SchemaMojo.java:39:
 warning - @phase is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/SchemaMojo.java:39:
 warning - @requiresDependencyResolution is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/SchemaMojo.java:39:
 warning - @threadSafe is an unknown tag.
[WARNING] 
/home/sekikn/avro/lang/java/mapred/src/main/java/org/apache/avro/mapred/tether/TetherJob.java:94:
 warning - @return tag has no arguments.
[WARNING] 
/home/sekikn/avro/lang/java/mapred/src/main/java/org/apache/avro/hadoop/io/AvroSequenceFile.java:80:
 warning - Tag @link: reference not found: org.apache.hadoop.io.Serialization
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/reflect/MapEntry.java:34:
 warning - Tag @link: reference not found: Map.Entry
[WARNING] 
/home/sekikn/avro/lang/java/avro/src/main/java/org/apache/avro/reflect/MapEntry.java:34:
 warning - Tag @link: reference not found: Map.Entry
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Avro Toplevel ............................... SUCCESS [ 54.226 s]
[INFO] Apache Avro Java ................................... SKIPPED
[INFO] Apache Avro ........................................ SKIPPED
[INFO] Apache Avro Compiler ............................... SKIPPED
[INFO] Apache Avro Maven Plugin ........................... SKIPPED
[INFO] Apache Avro IPC .................................... SKIPPED
[INFO] Apache Avro IPC Jetty .............................. SKIPPED
[INFO] Apache Avro IPC Netty .............................. SKIPPED
[INFO] Trevni Java ........................................ SKIPPED
[INFO] Trevni Java Core ................................... SKIPPED
[INFO] Apache Avro Mapred API ............................. SKIPPED
[INFO] Trevni Java Avro ................................... SKIPPED
[INFO] Trevni Specification ............................... SKIPPED
[INFO] Apache Avro Tools .................................. SKIPPED
[INFO] Apache Avro Protobuf Compatibility ................. SKIPPED
[INFO] Apache Avro Thrift Compatibility ................... SKIPPED
[INFO] Apache Avro Maven Archetypes ....................... SKIPPED
[INFO] Apache Avro Maven Service Archetype ................ SKIPPED
[INFO] Apache Avro gRPC ................................... SKIPPED
[INFO] Avro Integration Tests ............................. SKIPPED
[INFO] Apache Avro Codegen Test dependencies .............. SKIPPED
[INFO] Apache Avro Codegen Test ........................... SKIPPED
[INFO] Apache Avro Performance Test Suite ................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 58.184 s
[INFO] Finished at: 2020-03-08T13:55:47+00:00
[INFO] Final Memory: 194M/2844M
[INFO] ------------------------------------------------------------------------
{code}

> Avro Java: Obtaining default field values for POJO objects with ReflectData
> ---------------------------------------------------------------------------
>
>                 Key: AVRO-2723
>                 URL: https://issues.apache.org/jira/browse/AVRO-2723
>             Project: Apache Avro
>          Issue Type: New Feature
>          Components: java
>    Affects Versions: 1.9.1
>            Reporter: Andy Le
>            Priority: Critical
>         Attachments: Screen Shot 2020-03-08 at 16.13.29.png
>
>
> Hi guys,
>  
> I've got a simple app using Avro Reflection:
>  
> {code:java}
> public class App {
>   public static void main(String[] args) {
>     testReflection();
>   }
>   static class User {
>     public String first = "Andy";
>     public String last = "Le";
>   }
>   static void testReflection(){
>     // get the reflected schema for packets
>     Schema schema = ReflectData.AllowNull.get().getSchema(User.class);
>     System.out.println(schema.toString(true));
>   }
> {code}
> The output on console will be:
> {noformat}
> {
>   "type" : "record",
>   "name" : "User",
>   "namespace" : "App",
>   "fields" : [ {
>     "name" : "first",
>     "type" : [ "null", "string" ],
>     "default" : null
>   }, {
>     "name" : "last",
>     "type" : [ "null", "string" ],
>     "default" : null
>   } ]
> }
> {noformat}
>  
> As you can see, there's no default values for fields. Would you please tell 
> me how to obtain such values?
> Thank you.
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to