Awesome!
This thread is full of gems after the few days of me banging my head :)
How complete would you say protopoet is? Have you used it to generate proto
files anywhere?

On Fri, 21 Feb 2020 at 19:06 Derek Perez <[email protected]> wrote:

> I wrote a library for doing this: https://github.com/perezd/protopoet
>
> On Fri, Feb 21, 2020, 5:57 AM Alex Van Boxel <[email protected]> wrote:
>
>> Congratulations, cool to see other people using it ;-)
>>
>> Indeed, I rather have it part protobuf-java before haven maven-artifact.
>> You can fill issues on the metastore repo, it's not abandoned. It's
>> activity developed (I'll copy issues over when a move is ever node.
>>
>>  _/
>> _/ Alex Van Boxel
>>
>>
>> On Fri, Feb 21, 2020 at 2:54 PM ittai zeidman <[email protected]> wrote:
>>
>>> Good news!
>>> I was able to get this out:
>>> syntax = "proto3";
>>> message messageGreeting {
>>>         string greeting = 1;
>>> }
>>> Thanks!
>>> I'll report more after I'll have more time to test out the corner cases
>>> and richness.
>>> If I find issues would you rather we continue here, github issue,
>>> somewhere else?
>>> Also I was unable to find this artifact on maven central or jcenter
>>> <https://bintray.com/search?query=io.anemos>. I copied the files for
>>> the meantime but I'd rather add a dependency and not fork the code.
>>>
>>> On Fri, Feb 21, 2020 at 2:43 PM Alex Van Boxel <[email protected]> wrote:
>>>
>>>> Actually your question triggered something I wanted todo for a long
>>>> time. You could join the discussion on this thread:
>>>> https://groups.google.com/forum/#!topic/protobuf/NrhCXiXIfxk
>>>>
>>>>  _/
>>>> _/ Alex Van Boxel
>>>>
>>>>
>>>> On Fri, Feb 21, 2020 at 1:23 PM ittai zeidman <[email protected]> wrote:
>>>>
>>>>> Nice! Thanks :)
>>>>> I’ll try it out and report back...
>>>>>
>>>>> On Fri, 21 Feb 2020 at 14:06 Alex Van Boxel <[email protected]> wrote:
>>>>>
>>>>>> You can use this class from the metastore. A lot of work has pored
>>>>>> into this class. The plan is to actually donate this to the proto-java
>>>>>> implementation if it has been battle tested.
>>>>>>
>>>>>>
>>>>>> https://github.com/anemos-io/metastore/blob/master/putils/src/main/java/io/anemos/metastore/putils/ProtoLanguageFileWriter.java
>>>>>>
>>>>>> It currently only support proto3.
>>>>>>
>>>>>>  _/
>>>>>> _/ Alex Van Boxel
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 21, 2020 at 11:02 AM Nadav Samet <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Ittai,
>>>>>>>
>>>>>>> It sounds like you are expecting your plugin to emit proto files in
>>>>>>> text format. Your code is assigning binary data into the file's content,
>>>>>>> and what protoc does is just writing it to the files it creates. There's
>>>>>>> nothing that would automatically detect that you are passing a
>>>>>>> DescriptorProto and would transform that into text representation. If 
>>>>>>> you
>>>>>>> want the output to be in text format you need to manually create a 
>>>>>>> string
>>>>>>> with the file content you want.
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 21, 2020 at 11:40 AM ittai zeidman <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I have proto files which contain valid proto messages and services and 
>>>>>>>> my own DSL which I want to transpile into proto messages and services.
>>>>>>>> My idea is to invoke protoc and have it process "my proto" with a 
>>>>>>>> protoc plugin that will emmit "standard proto" (which I'll later feed 
>>>>>>>> into protoc again).
>>>>>>>> The reason I'm going through the intermediate proto files is because 
>>>>>>>> we need them to integrate with other systems.
>>>>>>>>
>>>>>>>> I'm trying to write this plugin using protobuf-java (jvm developer) 
>>>>>>>> but the proto file that is emitted is incorrect.
>>>>>>>>
>>>>>>>> I think (and hope) I'm doing something stupid and maybe someone here 
>>>>>>>> can point me to the right direction.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks in advance...
>>>>>>>>
>>>>>>>>
>>>>>>>> Some of my code (to generate a hardcoded proto file with one
>>>>>>>> message and one field):
>>>>>>>>
>>>>>>>>     DescriptorProtos.DescriptorProto protoMessage = 
>>>>>>>> DescriptorProtos.DescriptorProto.newBuilder()
>>>>>>>>       .setName("messageGreeting")
>>>>>>>>       .addField(DescriptorProtos.FieldDescriptorProto.newBuilder()
>>>>>>>>         .setName("greeting")
>>>>>>>>         .setType(FieldDescriptorProto.Type.TYPE_STRING)
>>>>>>>>         .setNumber(0)
>>>>>>>>         .setDefaultValue("hi")
>>>>>>>>         .build()
>>>>>>>>       )
>>>>>>>>       .build();
>>>>>>>>     DescriptorProtos.FileDescriptorProto proto = 
>>>>>>>> DescriptorProtos.FileDescriptorProto.newBuilder()
>>>>>>>>       .addMessageType(
>>>>>>>>         protoMessage
>>>>>>>>       )
>>>>>>>>       .build();
>>>>>>>>     ByteArrayOutputStream byteArrayOutputStream = new 
>>>>>>>> ByteArrayOutputStream();
>>>>>>>>
>>>>>>>>     proto.writeTo(byteArrayOutputStream); // should be lazy?
>>>>>>>>
>>>>>>>>     CodeGeneratorResponse.File file = 
>>>>>>>> CodeGeneratorResponse.File.newBuilder()
>>>>>>>>       .setName("yo.proto")
>>>>>>>>       
>>>>>>>> .setContentBytes(ByteString.copyFrom(byteArrayOutputStream.toByteArray))
>>>>>>>>
>>>>>>>> //      I also tried:
>>>>>>>>
>>>>>>>> //      .mergeFrom(protoMessage)
>>>>>>>> //      .setContent(byteArrayOutputStream.toString) // should be lazy?
>>>>>>>> //      .mergeFrom(byteArrayOutputStream.toByteArray)
>>>>>>>>       .build();
>>>>>>>>     file.toByteArray
>>>>>>>>
>>>>>>>>
>>>>>>>> Unfortunately what I get is:
>>>>>>>>
>>>>>>>> cat yo.proto:
>>>>>>>> "%
>>>>>>>> messageGreeting                                                        
>>>>>>>>                                                                        
>>>>>>>>                                                                        
>>>>>>>>                                  greeting(        :hi%
>>>>>>>>
>>>>>>>> and in a text editor:
>>>>>>>> 2225 0a0f 6d65 7373 6167 6547 7265 6574
>>>>>>>> 696e 6712 120a 0867 7265 6574 696e 6718
>>>>>>>> 0028 093a 0268 69
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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/03f1f05d-a9ef-4490-bf6a-469f16212f9f%40googlegroups.com
>>>>>>>> <https://groups.google.com/d/msgid/protobuf/03f1f05d-a9ef-4490-bf6a-469f16212f9f%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -Nadav
>>>>>>>
>>>>>>> --
>>>>>>> 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/CANZcNEryh5FBtZQ%3D4_EZuy5N21JeMxJ6NTjhR2T68DM5s9OWtw%40mail.gmail.com
>>>>>>> <https://groups.google.com/d/msgid/protobuf/CANZcNEryh5FBtZQ%3D4_EZuy5N21JeMxJ6NTjhR2T68DM5s9OWtw%40mail.gmail.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/CAOfK4wVpcbhpsN4eDmfprt4w-cB251mhXcrWp5hid%2B%3DXqtbFDw%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/protobuf/CAOfK4wVpcbhpsN4eDmfprt4w-cB251mhXcrWp5hid%2B%3DXqtbFDw%40mail.gmail.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/CAOfK4wUveFVMubfbRTq3cDgaswG5qeS5mvsPHoXGRPeYSxe%2BrQ%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/protobuf/CAOfK4wUveFVMubfbRTq3cDgaswG5qeS5mvsPHoXGRPeYSxe%2BrQ%40mail.gmail.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/CALCMntvLHG6ArsMRfe0fGj3t08qwRtTRe-qCZ31yPxGQj6qRNw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/protobuf/CALCMntvLHG6ArsMRfe0fGj3t08qwRtTRe-qCZ31yPxGQj6qRNw%40mail.gmail.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/CAOfK4wVJWcbnCCRzQMfmy9FSKeJY-V77KV2XFhuyaUMWhpVvTg%40mail.gmail.com.

Reply via email to