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/CAMiELU2Qv3rqK9nF%2B58c_dsCEnVHkRo9JUiSqGPKdtr27FKO8w%40mail.gmail.com.

Reply via email to