THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Add a new headers length and value (byte[]) to the core message format.
- Create a Header Interface and implementing class
Interface
Code Block public interface Header { String key(); byte[] value(); }
Implementation Detail
- Add a String key field to Header implementing class
Add a byte[] value field to Header implementing class
- Create a Headers Interface and implementing class
Interface
Code Block public interface Headers extends Iterable<Header> { Headers add(String key, byte[] value); Collection<byte[]> get(String key); Set<String> keys(); }
Implementation Detail
Add a headers Header[] field to Headers implementation class
- Add accessor methods on the Headers class - void Headers add(String key, byte[] value) and a Collection<byte[]> get(String)
- implement Iterable<Header>
- Add a headers field to ProducerRecord and ConsumerRecord.
- Add accessor methods on the Producer/ConsumerRecord Headers getHeaders()
Code Block public class ProducerRecord<K, V> { ... public Headers getHeaders(); ... }
Code Block public class ConsumerRecord<K, V> { ... public Headers getHeaders(); ... }
- Add ProduceRequest/ProduceResponse V4 which uses the new message format.
- Add FetchRequest/FetchResponse V4 which uses the new message format.
- The serialisation of the [String, byte[]] header array will on the wire using a strict format
- Each headers value will be custom serialisable by the interceptors/plugins that use the header.
...