/** * Serialize the given value. * * @param value the value to be serialized * @return the serialized value */ public byte[] rawValue(final V value) { try { return valueSerde.serializer().serialize(topic, value); } catch (final ClassCastException e) { final String valueClass = value == null ? "unknown because value is null" : value.getClass().getName(); throw new StreamsException( String.format("A serializer (value: %s) is not compatible to the actual value type " + "(value type: %s). Change the default Serdes in StreamConfig or " + "provide correct Serdes via method parameters.", valueSerializer().getClass().getName(), valueClass), e); } } }
void logChange(final K key, final V value) { if (collector != null) { final Serializer<K> keySerializer = serialization.keySerializer(); final Serializer<V> valueSerializer = serialization.valueSerializer(); // Sending null headers to changelog topics (KIP-244) collector.send(this.topic, key, value, null, this.partition, context.timestamp(), keySerializer, valueSerializer); } } }
private StoreChangeFlushingLogger(String storeName, ProcessorContext context, int partition, StateSerdes<K, V> serialization) { this.topic = ProcessorStateManager.storeChangelogTopic(context.applicationId(), storeName); this.context = context; this.partition = partition; this.serialization = serialization; this.collector = ((RecordCollector.Supplier) context).recordCollector(); // Twitter Added this.taskId = context.taskId(); this.keySerializer = serialization.keySerializer(); this.valueSerializer = serialization.valueSerializer(); }