@Override public Long addSerDes(SerDesPair serDesPair) { return postEntity(currentSchemaRegistryTargets().serializersTarget, serDesPair, Long.class); }
@Override public void mapSchemaWithSerDes(String schemaName, Long serDesId) { String path = String.format("%s/mapping/%s", encode(schemaName), serDesId.toString()); Boolean success = postEntity(currentSchemaRegistryTargets().schemasTarget.path(path), null, Boolean.class); LOG.info("Received response while mapping schema [{}] with serialzer/deserializer [{}] : [{}]", schemaName, serDesId, success); }
@Override public SchemaMetadataInfo updateSchemaMetadata(String schemaName, SchemaMetadata schemaMetadata) { SchemaMetadataInfo schemaMetadataInfo = postEntity(currentSchemaRegistryTargets().schemasTarget.path(schemaName), schemaMetadata, SchemaMetadataInfo.class); if (schemaMetadataInfo != null) { schemaMetadataCache.put(SchemaMetadataCache.Key.of(schemaName), schemaMetadataInfo); } return schemaMetadataInfo; }
private Long doRegisterSchemaMetadata(SchemaMetadata schemaMetadata, WebTarget schemasTarget) { try { return postEntity(schemasTarget, schemaMetadata, Long.class); } catch(BadRequestException ex) { Response response = ex.getResponse(); CatalogResponse catalogResponse = SchemaRegistryClient.readCatalogResponse(response.readEntity(String.class)); if(catalogResponse.getResponseCode() == CatalogResponse.ResponseMessage.ENTITY_CONFLICT.getCode()) { return getSchemaMetadataInfo(schemaMetadata.getName()).getId(); } else { throw ex; } } }