Implementing autoConfigure for HexSerde

This commit is contained in:
iliax 2023-08-02 13:35:15 +04:00
parent 8126607b91
commit ac23148ca1
2 changed files with 11 additions and 6 deletions

View file

@ -16,12 +16,21 @@ public class HexSerde implements BuiltInSerde {
return "Hex"; return "Hex";
} }
@Override
public void autoConfigure(PropertyResolver kafkaClusterProperties, PropertyResolver globalProperties) {
configure(" ", true);
}
@Override @Override
public void configure(PropertyResolver serdeProperties, public void configure(PropertyResolver serdeProperties,
PropertyResolver kafkaClusterProperties, PropertyResolver kafkaClusterProperties,
PropertyResolver globalProperties) { PropertyResolver globalProperties) {
String delim = serdeProperties.getProperty("delimiter", String.class).orElse(" "); String delim = serdeProperties.getProperty("delimiter", String.class).orElse(" ");
boolean uppercase = serdeProperties.getProperty("uppercase", Boolean.class).orElse(true); boolean uppercase = serdeProperties.getProperty("uppercase", Boolean.class).orElse(true);
configure(delim, uppercase);
}
private void configure(String delim, boolean uppercase) {
deserializeHexFormat = HexFormat.ofDelimiter(delim); deserializeHexFormat = HexFormat.ofDelimiter(delim);
if (uppercase) { if (uppercase) {
deserializeHexFormat = deserializeHexFormat.withUpperCase(); deserializeHexFormat = deserializeHexFormat.withUpperCase();

View file

@ -16,16 +16,12 @@ public class HexSerdeTest {
private static final byte[] TEST_BYTES = "hello world".getBytes(); private static final byte[] TEST_BYTES = "hello world".getBytes();
private static final String TEST_BYTES_HEX_ENCODED = "68 65 6C 6C 6F 20 77 6F 72 6C 64"; private static final String TEST_BYTES_HEX_ENCODED = "68 65 6C 6C 6F 20 77 6F 72 6C 64";
private Serde hexSerde; private HexSerde hexSerde;
@BeforeEach @BeforeEach
void init() { void init() {
hexSerde = new HexSerde(); hexSerde = new HexSerde();
hexSerde.configure( hexSerde.autoConfigure(PropertyResolverImpl.empty(), PropertyResolverImpl.empty());
PropertyResolverImpl.empty(),
PropertyResolverImpl.empty(),
PropertyResolverImpl.empty()
);
} }