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]

Reply via email to