You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Ismaël Mejía (Jira)" <ji...@apache.org> on 2020/06/01 13:29:00 UTC
[jira] [Resolved] (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:all-tabpanel ]
Ismaël Mejía resolved AVRO-2822.
--------------------------------
Resolution: Fixed
> 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
> Assignee: 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 after a schema (and its referenced schemas) are submitted to the parse() method of Schema.Parser.
> The method would be the following 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)