merlimat commented on a change in pull request #3752: revise the schema default 
type not null
URL: https://github.com/apache/pulsar/pull/3752#discussion_r263034112
 
 

 ##########
 File path: 
pulsar-client-api/src/main/java/org/apache/pulsar/client/api/Schema.java
 ##########
 @@ -167,49 +167,95 @@ default T decode(byte[] bytes, byte[] schemaVersion) {
     }
 
     /**
-     * Create a Avro schema type by extracting the fields of the specified 
class.
+     * Create a allow null Avro schema type by extracting the fields of the 
specified class.
      *
      * @param clazz the POJO class to be used to extract the Avro schema
      * @return a Schema instance
      */
     static <T> Schema<T> AVRO(Class<T> clazz) {
-        return DefaultImplementation.newAvroSchema(clazz);
+        return DefaultImplementation.newAvroSchema(clazz, true);
     }
 
     /**
-     * Create a JSON schema type by extracting the fields of the specified 
class.
+     * Create a Avro schema type by extracting the fields of the specified 
class.
+     *
+     * @param clazz the POJO class to be used to extract the Avro schema
+     *              allowNull the create a allow null or not null Avro schema
+     * @return a Schema instance
+     */
+    static <T> Schema<T> AVRO(Class<T> clazz, Boolean allowNull) {
+        return DefaultImplementation.newAvroSchema(clazz, allowNull);
+    }
+
+
+    /**
+     * Create a allow null JSON schema type by extracting the fields of the 
specified class.
      *
      * @param clazz the POJO class to be used to extract the JSON schema
      * @return a Schema instance
      */
     static <T> Schema<T> JSON(Class<T> clazz) {
-        return DefaultImplementation.newJSONSchema(clazz);
+        return DefaultImplementation.newJSONSchema(clazz, true);
+    }
+
+    /**
+     * Create a allow null JSON schema type by extracting the fields of the 
specified class.
+     *
+     * @param clazz the POJO class to be used to extract the JSON schema
+     *              allowNull the create a allow null or not null JSON schema
+     * @return a Schema instance
+     */
+    static <T> Schema<T> JSON(Class<T> clazz, Boolean allowNull) {
 
 Review comment:
   Since there's is no standard for JSON schemas, I'd prefer to leave it for 
now with the fixed `allowNull=true` and don't offer the option here

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to