@Test public void testResolveUnion() throws IOException { final SpecificDatumWriter<TestRecordWithUnion> writer = new SpecificDatumWriter<>(); Schema schema = TestRecordWithUnion.SCHEMA$; ByteArrayOutputStream out = new ByteArrayOutputStream(); JsonEncoder encoder = EncoderFactory.get().jsonEncoder(schema, out); writer.setSchema(schema); TestRecordWithUnion c = TestRecordWithUnion.newBuilder(). setKind(Kind.BAR).setValue("rab").build(); writer.write(c, encoder); encoder.flush(); out.close(); String expectedJson = String.format( "{'kind':{'org.apache.avro.test.Kind':'%s'},'value':{'string':'%s'}}", c.getKind().toString(), c.getValue()).replace('\'', '"'); assertEquals(expectedJson, out.toString("UTF-8")); }
/** * * * * @param avroObject Avro object to serialized * @return byte array of serialized avro data * @throws IOException */ private byte[] serializeAvroSimpleFeature(final AvroSimpleFeature avroObject) throws IOException { final ByteArrayOutputStream os = new ByteArrayOutputStream(); final BinaryEncoder encoder = ef.binaryEncoder(os, null); datumWriter.setSchema(avroObject.getSchema()); datumWriter.write(avroObject, encoder); encoder.flush(); return os.toByteArray(); }
/** * Do the serialization of the {@link PersistentBase} object * * @param persistent {@link PersistentBase} object to serialize * @throws IOException if there is an error during serialization */ @Override public void serialize(PersistentBase persistent) throws IOException { datumWriter.setSchema(persistent.getSchema()); datumWriter.write(persistent, encoder); encoder.writeFixed(persistent.getDirtyBytes().array()); } }
/** * Do the serialization of the {@link PersistentBase} object * * @param persistent {@link PersistentBase} object to serialize * @throws IOException if there is an error during serialization */ @Override public void serialize(PersistentBase persistent) throws IOException { datumWriter.setSchema(persistent.getSchema()); datumWriter.write(persistent, encoder); encoder.writeFixed(persistent.getDirtyBytes().array()); } }
writer.setSchema(Stock.SCHEMA$);