Vikas, If you are using Confluent Schema Registry, there is a way to do this by using the Confluent libraries, namely `ProtobufSchema.toDescriptor()`. But it's best that you ask this question in the Confluent Community slack forum or at https://forum.confluent.io/.
Robert On Monday, 8 August 2022 at 10:51:39 UTC-7 [email protected] wrote: > Ah, got it, Matt. That's what I was suspecting but wanted to avoid and see > if there is any way around it. Thanks for patiently understanding and > responding to my queries! > > Thanks, > Vikas > > On Monday, August 8, 2022 at 10:35:55 AM UTC-7 [email protected] wrote: > >> Vikas~ >> >> You are asking how to dynamically compile a .proto message into a >> descriptor that you can load at runtime. I don't have a good answer here >> short of launching `protoc` as a subprocess. >> >> Matt >> >> On Mon, Aug 8, 2022 at 1:29 PM Vikas Dahiya <[email protected]> wrote: >> >>> Thanks, Matt! >>> >>> The schema I have is in string format. Here is the snippet of the same >>> >>> syntax = "proto3"; >>> package com.company.qna.enriched; >>> >>> import "imports/user/token_status.proto"; >>> import "validate/validate.proto"; >>> import "google/protobuf/timestamp.proto"; >>> >>> message QuestionViewEnriched { >>> string event_id = 1 [(validate.rules).string.uuid = true]; >>> string source = 2 [(validate.rules).string.min_len = 3]; >>> string event_type = 3 [(validate.rules).string.prefix = "com.chegg"]; >>> .google.protobuf.Timestamp event_time = 4; >>> string chegg_user_uuid = 21 [(validate.rules).string.uuid = true]; >>> string chegg_visitor_id = 22 [(validate.rules).string.uuid = true]; >>> string chegg_session_id = 23; >>> string client_ip_address = 24 [(validate.rules).string.ip = true]; >>> string user_agent = 25 [(validate.rules).string.well_known_regex = >>> HTTP_HEADER_VALUE]; >>> string language = 26 [(validate.rules).string.well_known_regex = >>> HTTP_HEADER_VALUE]; >>> string experiments = 27; >>> bool is_internal_user = 28; >>> string device_class = 29; >>> com.company.user.TokenStatus access_token_status = 30; >>> com.company.user.TokenStatus id_token_status = 31; >>> string url = 41; >>> string referral_url = 42; >>> } >>> >>> On Saturday, August 6, 2022 at 1:20:20 PM UTC-7 [email protected] wrote: >>> >>>> Vikas~ >>>> >>>> I suspect your best bet is: >>>> >>>> ``` >>>> Schema<?> s = .... >>>> Object o = s.newInstance(); >>>> if (o instanceof MessageOrBuilder) { >>>> return ((MessageOrBuilder)o).getDescriptorForType(); >>>> } >>>> return nullptr; >>>> ``` >>>> >>>> If you are using the JavaLite runtime, you may not have descriptor >>>> information available, so this can produce nullptr. >>>> >>>> Matt >>>> >>>> On Sat, Aug 6, 2022 at 4:13 PM Vikas Dahiya <[email protected]> >>>> wrote: >>>> >>>>> Matt, >>>>> >>>>> Kafka APIs really don't have to do anything here. Think of it as a >>>>> problem: I got a schema from any random place (in this case it's a schema >>>>> registry), and now I need to use this schema to create an Object to use >>>>> in >>>>> my system. I don't have generated java classes at my disposal. So I am >>>>> looking to get the descriptor to create an Object out of this schema. >>>>> Hope >>>>> that helps to understand the problem. >>>>> >>>>> Thanks, >>>>> Vikas >>>>> On Saturday, August 6, 2022 at 1:05:00 PM UTC-7 [email protected] wrote: >>>>> >>>>>> Vikas~ >>>>>> >>>>>> I don't really know the Kafka APIs, but it might be better to ask on >>>>>> one of their lists or maybe stack overflow. >>>>>> >>>>>> Matt >>>>>> >>>>>> On Sat, Aug 6, 2022 at 3:57 PM Vikas Dahiya <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Matt, I am using kafka, I don’t have a code snippet as I am just >>>>>>> getting the schema from confulant schema registry and need a descriptor >>>>>>> to >>>>>>> create the object. I can share the schema snippet if that can help. >>>>>>> >>>>>>> Vikas >>>>>>> >>>>>>> On Sat, Aug 6, 2022 at 12:30 PM Matthew Fowles Kulukundis < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Vikas~ >>>>>>>> >>>>>>>> Do you have links to your code or snippets you can share? Are you >>>>>>>> using kafka or AWS schema registry or something? >>>>>>>> >>>>>>>> Matt >>>>>>>> >>>>>>>> On Sat, Aug 6, 2022 at 3:23 PM Vikas Dahiya <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Matt, I am using Java. >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> Vikas >>>>>>>>> >>>>>>>>> On Saturday, August 6, 2022 at 11:57:25 AM UTC-7 [email protected] >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Vikas~ >>>>>>>>>> >>>>>>>>>> What language are you using (C++, Java, Python, etc)? >>>>>>>>>> >>>>>>>>>> Matt >>>>>>>>>> >>>>>>>>>> On Fri, Aug 5, 2022 at 5:14 PM Vikas Dahiya <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I have an in memory proto schema which I am reading from the >>>>>>>>>>> schema registry. I am looking for a way or the best way if there >>>>>>>>>>> are more >>>>>>>>>>> than one, to get the descriptor for this schema. How can I do that? >>>>>>>>>>> I am >>>>>>>>>>> new to protobuf and pardon me if the provided information is not >>>>>>>>>>> sufficient, but I can provide any required additional details. >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "Protocol Buffers" group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/protobuf/3b2a5728-549b-4c19-a1b2-4811b0124f8cn%40googlegroups.com >>>>>>>>>>> >>>>>>>>>>> <https://groups.google.com/d/msgid/protobuf/3b2a5728-549b-4c19-a1b2-4811b0124f8cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Protocol Buffers" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>> >>>>>>>> >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/protobuf/b87d55ad-1bfe-4378-9355-e43a55f47003n%40googlegroups.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/protobuf/b87d55ad-1bfe-4378-9355-e43a55f47003n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Protocol Buffers" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> >>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/protobuf/1f6e5388-75ed-4a06-944e-0efce86dfc03n%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/protobuf/1f6e5388-75ed-4a06-944e-0efce86dfc03n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Protocol Buffers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/protobuf/43835e46-f786-4756-836a-ece5db30652dn%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/protobuf/43835e46-f786-4756-836a-ece5db30652dn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/311144fc-fb29-4413-98e8-411895cb4808n%40googlegroups.com.
