-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pulsar IO: allow Sinks to use native AVRO and JSON #11322
Conversation
...ons/runtime-all/src/test/java/org/apache/pulsar/functions/instance/JavaInstanceDepsTest.java
Show resolved
Hide resolved
Thanks for your contribution. For this PR, do we need to update docs? (The PR template contains info about doc, which helps others know more about the changes. Can you provide doc info in future PR descriptions? Thanks) |
The Sink should be able to manage the result of GenericRecord.getNativeObject(). In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime. The same problem applies in the case of a JsonNode returned by getNativeObject();
@Anonymitaet when we will find a good solution for this problem I will be happy to help with the docs. currently this is only a draft |
910014a
to
01dea55
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏼
)" This reverts commit f35766f.
The Sink should be able to manage the result of GenericRecord.getNativeObject(). In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime. The same problem applies in the case of a JsonNode returned by getNativeObject(); *Modifications* - Add AVRO to the list of classes (like slf4j) to be loaded from the Pulsar runtime (this in turn imports Commons Compress and Jackson Databind). - Enhance the existing integration tests, that tested about the Schema definition, but it didn't actually try to "use" the `org.apache.avro.GenericRecord` object as well as the `Jackson JsonNode` object
The Sink should be able to manage the result of GenericRecord.getNativeObject(). In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime. The same problem applies in the case of a JsonNode returned by getNativeObject(); *Modifications* - Add AVRO to the list of classes (like slf4j) to be loaded from the Pulsar runtime (this in turn imports Commons Compress and Jackson Databind). - Enhance the existing integration tests, that tested about the Schema definition, but it didn't actually try to "use" the `org.apache.avro.GenericRecord` object as well as the `Jackson JsonNode` object (cherry picked from commit f35766f)
The Sink should be able to manage the result of GenericRecord.getNativeObject(). In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime. The same problem applies in the case of a JsonNode returned by getNativeObject(); *Modifications* - Add AVRO to the list of classes (like slf4j) to be loaded from the Pulsar runtime (this in turn imports Commons Compress and Jackson Databind). - Enhance the existing integration tests, that tested about the Schema definition, but it didn't actually try to "use" the `org.apache.avro.GenericRecord` object as well as the `Jackson JsonNode` object
The Sink should be able to manage the result of GenericRecord.getNativeObject(). In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime. The same problem applies in the case of a JsonNode returned by getNativeObject(); *Modifications* - Add AVRO to the list of classes (like slf4j) to be loaded from the Pulsar runtime (this in turn imports Commons Compress and Jackson Databind). - Enhance the existing integration tests, that tested about the Schema definition, but it didn't actually try to "use" the `org.apache.avro.GenericRecord` object as well as the `Jackson JsonNode` object (cherry picked from commit f35766f)
The Sink should be able to manage the result of GenericRecord.getNativeObject().
In order to do this Apache AVRO must be loaded from the same classloader that is loading Apache Pulsar Runtime.
The same problem applies in the case of a JsonNode returned by getNativeObject();
Modifications
org.apache.avro.GenericRecord
object as well as theJackson JsonNode
object