import org.apache.avro.Schema;
import org.apache.avro.SchemaValidationException;
import org.apache.avro.SchemaValidator;
import org.apache.avro.SchemaValidatorBuilder;

import java.util.Arrays;

public class AvroSchema {

	public static void main(String[] args) throws SchemaValidationException {
		final SchemaValidator backwardValidator = new SchemaValidatorBuilder().canReadStrategy().validateLatest();

		final Schema schema1 = new Schema.Parser().parse("[{\"type\":\"record\",\"name\":\"rec1\",\"fields\":[{\"name\":\"age\",\"type\":\"long\"}]},  {\"type\":\"record\",\"name\":\"rec2\",\"fields\":[{\"name\":\"username\",\"type\":\"string\"} ]}]\"}");
		final Schema schema2 = new Schema.Parser().parse("[{\"type\":\"record\",\"name\":\"rec1\",\"fields\":[{\"name\":\"age\",\"type\":\"long\"}, {\"name\":\"address\",\"type\":\"string\"}]},  {\"type\":\"record\",\"name\":\"rec2\",\"fields\":[{\"name\":\"username\",\"type\":\"string\"} ]}]\"}");

		//final Schema schema1 = new Schema.Parser().parse("{\"type\":\"record\",\"name\":\"rec1\",\"fields\":[{\"name\":\"age\",\"type\":\"long\"}]}");
		//final Schema schema2 = new Schema.Parser().parse("{\"type\":\"record\",\"name\":\"rec1\",\"fields\":[{\"name\":\"age\",\"type\":\"long\"}, {\"name\":\"address\",\"type\":\"string\"}]}");

		backwardValidator.validate(schema2, Arrays.asList(schema1));
	}


}
