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_r264964562
########## File path: pulsar-client-api/src/main/java/org/apache/pulsar/client/api/Schema.java ########## @@ -167,25 +168,47 @@ default T decode(byte[] bytes, byte[] schemaVersion) { } /** - * Create a Avro schema type by extracting the fields of the specified class. + * Create a Avro schema type by default configuration of the 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(new SchemaDefinition<>(clazz)); } /** - * Create a JSON schema type by extracting the fields of the specified class. + * Create a Avro schema type with schema definition + * + * @param schemaDefinition the definition of the schema + * @return a Schema instance + */ + static <T> Schema<T> AVRO(SchemaDefinition<T> schemaDefinition) { Review comment: Instead of having the `SchemaDefinition<T>`, what about leaving the pojo and adding the options like: ```java Schema.AVRO(MyObject.class, AvroDefinition.builder().allowNull(false).build()); ``` This could be extended in #3766 with: ```java Schema.AVRO(MyObject.class, AvroDefinition.fromSchema("...json definition...")); ``` ---------------------------------------------------------------- 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