You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2022/06/21 01:58:28 UTC

[GitHub] [pulsar] congbobo184 commented on issue #16058: PIP-177: Add the classLoader field for SchemaDefinition

congbobo184 commented on issue #16058:
URL: https://github.com/apache/pulsar/issues/16058#issuecomment-1161088628

   +1 (none-binding)  Thanks, 
   Bo
   
   > 2022年6月14日 下午9:54,Cong Zhao ***@***.***> 写道:
   > 
   > 
   > 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 <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
   > 
   > public class SchemaDefinition {
   >     //....
   > 
   >     /**
   >      * Set schema of pojo classLoader.
   >      *
   >      * @param classLoader pojo classLoader
   >      *
   >      * @return schema definition builder
   >      */
   >     SchemaDefinitionBuilder<T> withClassLoader(ClassLoader classLoader);
   > }
   > public class SchemaDefinition {
   >     //....
   > 
   >     /**
   >      * Get pojo classLoader.
   >      *
   >      * @return pojo schema
   >      */
   >     ClassLoader getClassLoader();
   > }
   > Implementation
   > 
   > Add the classloader field for SchemaDefinition.
   > 
   > —
   > Reply to this email directly, view it on GitHub <https://github.com/apache/pulsar/issues/16058>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AJKEXQV6UUX2KA4HKYBUUDLVPCFJFANCNFSM5YXZWOKA>.
   > You are receiving this because you are subscribed to this thread.
   > 
   
   


-- 
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: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org