public KafkaAvroDeserializer(ISchemaRegistryClient schemaRegistryClient) { avroSnapshotDeserializer = new AvroSnapshotDeserializer(schemaRegistryClient); messageAndMetadataAvroDeserializer = new MessageAndMetadataAvroDeserializer(schemaRegistryClient); }
public KafkaAvroDeserializer() { avroSnapshotDeserializer = new AvroSnapshotDeserializer(); messageAndMetadataAvroDeserializer = new MessageAndMetadataAvroDeserializer(); }
public void runAvroSerDesApis() throws IOException { //using builtin avro serializer/deserializer AvroSnapshotSerializer avroSnapshotSerializer = new AvroSnapshotSerializer(); avroSnapshotSerializer.init(config); AvroSnapshotDeserializer avroSnapshotDeserializer = new AvroSnapshotDeserializer(); avroSnapshotDeserializer.init(config); Object deviceObject = createGenericRecordForDevice("/device.avsc"); SchemaMetadata schemaMetadata = createSchemaMetadata("avro-serializer-schema-" + System.currentTimeMillis()); byte[] serializedData = avroSnapshotSerializer.serialize(deviceObject, schemaMetadata); Object deserializedObj = avroSnapshotDeserializer.deserialize(new ByteArrayInputStream(serializedData), null); LOG.info("Serialized and deserialized objects are equal: [{}] ", deviceObject.equals(deserializedObj)); }
@Test(expected = IllegalStateException.class) public void testDeserWihtoutInit() throws Exception { AvroSnapshotDeserializer deserializer = new AvroSnapshotDeserializer(); deserializer.deserialize(new ByteArrayInputStream(new byte[]{}), 1); }
@Test(expected = IllegalStateException.class) public void testDeserClosedSer() throws Exception { AvroSnapshotDeserializer deserializer = new AvroSnapshotDeserializer(); deserializer.init(Collections.emptyMap()); deserializer.close(); deserializer.deserialize(new ByteArrayInputStream(new byte[]{}), 1); }
@Test(expected = IllegalStateException.class) public void testDeserClosedInit() throws Exception { AvroSnapshotDeserializer deserializer = new AvroSnapshotDeserializer(); deserializer.init(Collections.emptyMap()); deserializer.close(); deserializer.init(Collections.emptyMap()); }
private void _testAvroSerDesPrimitives(Byte protocolId) { Map<String, Object> config = Maps.newHashMap(); config.putAll(SCHEMA_REGISTRY_CLIENT_CONF); config.put(SERDES_PROTOCOL_VERSION, protocolId); AvroSnapshotSerializer avroSnapshotSerializer = new AvroSnapshotSerializer(); avroSnapshotSerializer.init(config); AvroSnapshotDeserializer avroSnapshotDeserializer = new AvroSnapshotDeserializer(); avroSnapshotDeserializer.init(config); Object[] objects = AvroSchemaRegistryClientUtil.generatePrimitivePayloads(); for (Object obj : objects) { String name = obj != null ? obj.getClass().getName() : Void.TYPE.getName(); SchemaMetadata schemaMetadata = createSchemaMetadata(name, SchemaCompatibility.BOTH); byte[] serializedData = avroSnapshotSerializer.serialize(obj, schemaMetadata); Object deserializedObj = avroSnapshotDeserializer.deserialize(new ByteArrayInputStream(serializedData), null); if (obj instanceof byte[]) { Assert.assertArrayEquals((byte[]) obj, (byte[]) deserializedObj); } else if (deserializedObj instanceof Utf8) { Assert.assertEquals(obj, deserializedObj.toString()); } else { Assert.assertEquals(obj, deserializedObj); } } }
private void _testAvroSerDesGenericObj(Byte protocolId) throws IOException, InvalidSchemaException, IncompatibleSchemaException, SchemaNotFoundException, SchemaBranchNotFoundException { Map<String, Object> config = Maps.newHashMap(); config.putAll(SCHEMA_REGISTRY_CLIENT_CONF); config.put(SERDES_PROTOCOL_VERSION, protocolId); AvroSnapshotSerializer avroSnapshotSerializer = new AvroSnapshotSerializer(); avroSnapshotSerializer.init(config); AvroSnapshotDeserializer avroSnapshotDeserializer = new AvroSnapshotDeserializer(); avroSnapshotDeserializer.init(config); String deviceSchema = AvroSchemaRegistryClientUtil.getSchema("/device.avsc"); SchemaMetadata schemaMetadata = createSchemaMetadata(TEST_NAME_RULE.getMethodName(), SchemaCompatibility.BOTH); SchemaIdVersion v1 = SCHEMA_REGISTRY_CLIENT.addSchemaVersion(schemaMetadata, new SchemaVersion(deviceSchema, "Initial version of the schema")); Assert.assertNotNull(v1); Object deviceObject = AvroSchemaRegistryClientUtil.createGenericRecordForDevice(); byte[] serializedData = avroSnapshotSerializer.serialize(deviceObject, schemaMetadata); Object deserializedObj = avroSnapshotDeserializer.deserialize(new ByteArrayInputStream(serializedData), null); Assert.assertEquals(deviceObject, deserializedObj); }
serializer.init(Collections.singletonMap(SERDES_PROTOCOL_VERSION, serdesProtocolVersion)); AvroSnapshotDeserializer deserializer = new AvroSnapshotDeserializer(); deserializer.init(Collections.emptyMap());