final ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write( AvroSerializationProvider.getMajorVersion() );
out.write( AvroSerializationProvider.getMinorVersion() );
Schema msgSchema = protocol.getType( "Message" );
GenericDatumWriter<GenericRecord> writer = new GenericDatumWriter<GenericRecord>( msgSchema );
BinaryEncoder encoder = EncoderFactory.get().directBinaryEncoder( out, null );
GenericRecord message = new GenericData.Record( msgSchema );
message.put( "classReferences", classReferences );
message.put( "operations", operations );
operations = null;
try {
writer.write( message, encoder );
encoder.flush();
}
catch ( IOException e ) {
throw log.unableToSerializeInAvro(e);
}
return out.toByteArray();