Comments inline.

On 9/2/11 8:29 PM, Scott Carey wrote:
On 9/1/11 10:34 AM, "George Fletcher" <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    I'm trying to use the velocity templates to extract doc strings
    from the IDL using my own SpecificCompiler.  The IDL file looks
    like this...

    /** class=@AccessControl(group="normal") */
    @namespace("com.aol.interfaces.echo")
    protocol EchoService {

        import idl "Errors.avdl";

        /** Message structure for the echo service */
        record Message {
            /** the string to be echo'd */
            string echome;
            map<string> echoes;
        }

        /** method=@AccessControl(source="MyService") */
        string echoString(string msg) throws
    com.aol.interfaces.error.ServiceError;
        Message echoMessage(Message msg) throws
    com.aol.interfaces.error.ServiceError;

        void publishMessage(string msg) oneway;
    }

    I expected based on AVRO-296
    (https://issues.apache.org/jira/browse/AVRO-296) being part of
    1.5.1 that I should be able to get the doc strings from the parsed
    IDL. However, this doesn't appear to be working. In looking at the
    source code, it appears that doc strings are only saved for Enum,
    Fixed and Schema.


According to the Avro Specification, only Enum, Fixed, and Record are named types that can have a 'doc' field in the Schema.
http://avro.apache.org/docs/1.5.3/spec.html#schema_record

Can you open a ticket to discuss adding doc support for other schema types, and list out some use cases? Supporting doc for all types has some implementation complexities, which is why it is currently only valid on named types. For unnamed types, it is arguably a bug that you can set a property named 'doc' in the schema for unnamed types, but the spec is not clear.
Sure. Here is the ticket I opened: https://issues.apache.org/jira/browse/AVRO-886



    Given that doc strings are supported for Schemas, I expected to
    see the 'Message structure for the echo service' in my generated
    java code. However, even with the default velocity templates this
    string isn't present in the generated files.


Supporting a use case where documentation from IDL -> Java code persists is different than supporting 'doc' fields in the schema in general for all types. Is this the most important use case?
The core use case is being able to add environment specific flags in the documentation section that can be used by the code generation software to enhance the generated code. In this particular case, add annotations to the generated java code.

Thanks,
George

--
Chief Architect                   AIM:  gffletch
Identity Services Engineering     Work: [email protected]
AOL Inc.                          Home: [email protected]
Mobile: +1-703-462-3494           Blog: http://practicalid.blogspot.com
Office: +1-703-265-2544           Twitter: http://twitter.com/gffletch

Reply via email to