private final MD5Digest generateId(Schema schema) { try { byte[] schemaBytes = schema.toString().getBytes("UTF-8"); byte[] md5bytes = MessageDigest.getInstance("MD5").digest(schemaBytes); MD5Digest md5Digest = MD5Digest.fromBytes(md5bytes); return md5Digest; } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { throw new IllegalStateException("Unexpected error trying to convert schema to bytes", e); } }
throw new SerializationException(String.format("Unknown magic byte for topic: %s ", topic)); MD5Digest schemaId = MD5Digest.fromBytes(data, 1 ); // read start after the first byte (magic byte) Schema schema = _schemaRegistry.getById(schemaId); Decoder decoder = DecoderFactory.get().binaryDecoder(data, 1 + MD5Digest.MD5_BYTES_LENGTH,
@Test public void testValidString() throws NoSuchAlgorithmException, UnsupportedEncodingException { String message = "3432rdaesdfdsf2443223 234 324324 23423 e23e 23d"; byte[] md5digest = MessageDigest.getInstance("MD5").digest(message.getBytes("UTF-8")); String md5String = DigestUtils.md5Hex(message); Assert.assertNotNull(md5digest); MD5Digest md5 = MD5Digest.fromBytes(md5digest); Assert.assertEquals(md5.asString(), md5String); Assert.assertEquals(md5.asBytes(), md5digest); MD5Digest otherMd5 = MD5Digest.fromString(md5String); Assert.assertEquals(otherMd5.asBytes(), md5.asBytes()); }
private final MD5Digest generateId(Schema schema) { try { byte[] schemaBytes = schema.toString().getBytes("UTF-8"); byte[] md5bytes = MessageDigest.getInstance("MD5").digest(schemaBytes); MD5Digest md5Digest = MD5Digest.fromBytes(md5bytes); return md5Digest; } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { throw new IllegalStateException("Unexpected error trying to convert schema to bytes", e); } }
throw new SerializationException(String.format("Unknown magic byte for topic: %s ", topic)); MD5Digest schemaId = MD5Digest.fromBytes(data, 1 ); // read start after the first byte (magic byte) Schema schema = _schemaRegistry.getById(schemaId); Decoder decoder = DecoderFactory.get().binaryDecoder(data, 1 + MD5Digest.MD5_BYTES_LENGTH,