private SnapshotSerializer<Object, byte[], SchemaMetadata> getSnapshotSerializer(SchemaMetadata schemaMetadata) { Collection<SerDesInfo> serializers = schemaRegistryClient.getSerDes(schemaMetadata.getName()); if (serializers.isEmpty()) { throw new RuntimeException("Serializer for schemaKey:" + schemaMetadata + " must exist"); } SerDesInfo serdesInfo = serializers.iterator().next(); return schemaRegistryClient.createSerializerInstance(serdesInfo); }
private SnapshotDeserializer<byte[], Object, Integer> getSnapshotDeserializer(SchemaMetadata schemaMetadata) { Collection<SerDesInfo> deserializers = schemaRegistryClient.getSerDes(schemaMetadata.getName()); if (deserializers.isEmpty()) { throw new RuntimeException("Serializer for schemaKey:" + schemaMetadata + " must exist"); } SerDesInfo serdesInfo = deserializers.iterator().next(); return schemaRegistryClient.createDeserializerInstance(serdesInfo); }
@Test public void testSerializerOps() throws Exception { String fileId = uploadFile(); SchemaMetadata schemaMetadata = createSchemaMetadata(TEST_NAME_RULE.getMethodName(), SchemaCompatibility.BOTH); SCHEMA_REGISTRY_CLIENT.addSchemaVersion(schemaMetadata, new SchemaVersion(AvroSchemaRegistryClientUtil.getSchema("/device.avsc"), "Initial version of the schema")); SerDesPair serDesPair = createSerDesInfo(fileId); Long serDesId = SCHEMA_REGISTRY_CLIENT.addSerDes(serDesPair); Assert.assertNotNull("Returned serDesId can not be null", serDesId); String schemaName = schemaMetadata.getName(); SCHEMA_REGISTRY_CLIENT.mapSchemaWithSerDes(schemaName, serDesId); Collection<SerDesInfo> serializers = SCHEMA_REGISTRY_CLIENT.getSerDes(schemaName); Assert.assertTrue(serializers.stream() .map(x -> x.getSerDesPair()) .collect(Collectors.toList()) .contains(serDesPair)); }