@Override public CompatibilityResult checkCompatibility(String toSchemaText, String existingSchemaText, SchemaCompatibility existingSchemaCompatibility) { return AvroSchemaValidator .of(existingSchemaCompatibility) .validate(new Schema.Parser().parse(toSchemaText), new Schema.Parser().parse(existingSchemaText)); }
private SchemaCompatibilityResult checkSchemaNames(final Schema reader, final Schema writer, final Stack<String> location) { location.push("name"); if (!schemaNameEquals(reader, writer)) { String message = String.format("expected: %s", writer.getFullName()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.NAME_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
public CompatibilityResult validate(Schema readerSchema, Schema writerSchema) { SchemaPairCompatibility schemaPairCompatibility = checkReaderWriterCompatibility(readerSchema, writerSchema); SchemaCompatibilityResult result = schemaPairCompatibility.getResult(); return result.getCompatibility() == SchemaCompatibilityType.COMPATIBLE ? CompatibilityResult.createCompatibleResult(writerSchema.toString()) : CompatibilityResult.createIncompatibleResult(result.getMessage(), result.getLocation(), writerSchema.toString()); }
/** * Tests the equality of two Avro named schemas. * <p> * Matching includes reader name aliases. * </p> * * @param reader Named reader schema. * @param writer Named writer schema. * * @return whether the names of the named schemas match or not. */ public static boolean schemaNameEquals(final Schema reader, final Schema writer) { final String writerFullName = writer.getFullName(); if (objectsEqual(reader.getFullName(), writerFullName)) { return true; } // Apply reader aliases: if (reader.getAliases().contains(writerFullName)) { return true; } return false; }
final Schema.Field writerField = lookupWriterField(writer, readerField); Schema readerFieldSchema = readerField.schema(); if (writerField == null) {
public CompatibilityResult validate(Schema readerSchema, Schema writerSchema) { SchemaPairCompatibility schemaPairCompatibility = checkReaderWriterCompatibility(readerSchema, writerSchema); SchemaCompatibilityResult result = schemaPairCompatibility.getResult(); return result.getCompatibility() == SchemaCompatibilityType.COMPATIBLE ? CompatibilityResult.createCompatibleResult(writerSchema.toString()) : CompatibilityResult.createIncompatibleResult(result.getMessage(), result.getLocation(), writerSchema.toString()); }
/** * Tests the equality of two Avro named schemas. * <p> * Matching includes reader name aliases. * </p> * * @param reader Named reader schema. * @param writer Named writer schema. * * @return whether the names of the named schemas match or not. */ public static boolean schemaNameEquals(final Schema reader, final Schema writer) { final String writerFullName = writer.getFullName(); if (objectsEqual(reader.getFullName(), writerFullName)) { return true; } // Apply reader aliases: if (reader.getAliases().contains(writerFullName)) { return true; } return false; }
final Schema.Field writerField = lookupWriterField(writer, readerField); Schema readerFieldSchema = readerField.schema(); if (writerField == null) {
@Override public CompatibilityResult checkCompatibility(String toSchemaText, String existingSchemaText, SchemaCompatibility existingSchemaCompatibility) { return AvroSchemaValidator .of(existingSchemaCompatibility) .validate(new Schema.Parser().parse(toSchemaText), new Schema.Parser().parse(existingSchemaText)); }
private SchemaCompatibilityResult checkSchemaNames(final Schema reader, final Schema writer, final Stack<String> location) { location.push("name"); if (!schemaNameEquals(reader, writer)) { String message = String.format("expected: %s", writer.getFullName()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.NAME_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }