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.

Reply via email to