[
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)