import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.google.common.collect.ImmutableList; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericDatumReader; import org.apache.avro.generic.GenericDatumWriter; import org.apache.avro.io.BinaryDecoder; import org.apache.avro.io.BinaryEncoder; import org.apache.avro.io.DatumWriter; import org.apache.avro.io.DecoderFactory; import org.apache.avro.io.EncoderFactory; import org.rakam.recipe.Recipe; import org.testng.annotations.Test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; public class RecipeConfigTest { // @Test public void test() throws IOException { InputStream io = getClass().getResourceAsStream("recipes/ecommerce_test.yml"); ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); Recipe recipe = mapper.readValue(io, Recipe.class); } @Test public void test2() { Schema a = Schema.createRecord(ImmutableList.of( new Schema.Field("b", Schema.create(Schema.Type.NULL), "", null), new Schema.Field("a", Schema.create(Schema.Type.BOOLEAN), "", null))); GenericData.Record record = new GenericData.Record(a); record.put("a", false); DatumWriter writer = new GenericDatumWriter(a); ByteArrayOutputStream out = new ByteArrayOutputStream(); BinaryEncoder encoder = EncoderFactory.get().directBinaryEncoder(out, null); try { writer.write(record, encoder); } catch (IOException e) { e.printStackTrace(); } Schema b = Schema.createRecord(ImmutableList.of(new Schema.Field("a", Schema.create(Schema.Type.BOOLEAN), "", null))); GenericDatumReader<Object> reader = new GenericDatumReader<>(b); BinaryDecoder decoder = DecoderFactory.get().directBinaryDecoder(new ByteArrayInputStream(out.toByteArray()), null); Object read; try { read = reader.read(null, decoder); } catch (IOException e) { throw new RuntimeException(e); } System.out.println(read); } }