You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Robert Yokota (Jira)" <ji...@apache.org> on 2020/04/29 01:36:00 UTC

[jira] [Commented] (AVRO-2822) Need a method to reconstruct the original schema string before referenced schemas were resolved and inlined by the Parser

    [ https://issues.apache.org/jira/browse/AVRO-2822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17094971#comment-17094971 ] 

Robert Yokota commented on AVRO-2822:
-------------------------------------

I'll submit a PR with the above shortly.  

> Need a method to reconstruct the original schema string before referenced schemas were resolved and inlined by the Parser
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-2822
>                 URL: https://issues.apache.org/jira/browse/AVRO-2822
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.9.2
>            Reporter: Robert Yokota
>            Priority: Minor
>             Fix For: 1.10.0
>
>
> I need a method to reconstruct the original schema string before referenced schemas were resolved and inlined by the Parser.
> There is already logic to do this for a schema in the context of a protocol, but not when a schema (and its referenced schemas) are submitted to the parser() method of Schema.Parser.
> The method would be the following method on Schema:
> {code:java}
> public String toString(Collection<Schema> referencedSchemas, boolean pretty) {
>   try {
>     StringWriter writer = new StringWriter();
>     JsonGenerator gen = FACTORY.createGenerator(writer);
>     if (pretty) {
>       gen.useDefaultPrettyPrinter();
>     }
>     Schema.Names names = new Schema.Names();
>     if (referencedSchemas != null) {
>       for (Schema s : referencedSchemas) {
>         names.add(s);
>       }
>     }
>     toJson(names, gen);
>     gen.flush();
>     return writer.toString();
>   } catch (IOException e) {
>     throw new AvroRuntimeException(e);
>   }
> }{code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)