coderzc opened a new issue, #16058: URL: https://github.com/apache/pulsar/issues/16058
## Motivation Now, don‘t register logical type conversions when use `SchemaDefinition.<T>builder().withJsonDef()` to create the schema, beacase it without classLoader param. See: https://github.com/apache/pulsar/blob/04aa9e8e51869d1621a7e25402a656084eebfc09/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/reader/AvroReader.java#L58-L68 We can add the classLoader field for SchemaDefinition, user can manually pass a classLoader to register logical type conversions ## Goal This proposes to add the classLoader field for SchemaDefinition. When using `SchemaDefinition.<T>builder().withJsonDef()` to create the schema it must manually specify a classLoader otherwise, the converter will not work. The priority of the classLoader field will be higher than by the `pojoClass.getClassLoader()`. ## API Changes ```java public class SchemaDefinition { //.... /** * Set schema of pojo classLoader. * * @param classLoader pojo classLoader * * @return schema definition builder */ SchemaDefinitionBuilder<T> withClassLoader(ClassLoader classLoader); } ``` ```java public class SchemaDefinition { //.... /** * Get pojo classLoader. * * @return pojo schema */ ClassLoader getClassLoader(); } ``` ## Implementation Add the classloader field for SchemaDefinition. -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
