@Override public MessageId send(T message) throws PulsarClientException { return newMessage().value(message).send(); }
@Override public CompletableFuture<MessageId> sendAsync(T message) { try { return newMessage().value(message).sendAsync(); } catch (SchemaSerializationException e) { return FutureUtil.failedFuture(e); } }
for (MessageImpl<T> message : deadLetterMessages) { deadLetterProducer.newMessage() .value(message.getValue()) .properties(message.getProperties()) .send();
@Override public CompletableFuture<Void> sendAsync(Optional<String> key, byte[] payload) { TypedMessageBuilder<byte[]> msgBuilder = producer.newMessage().value(payload); if (key.isPresent()) { msgBuilder.key(key.get()); } return msgBuilder.sendAsync().thenApply(msgId -> null); }
@Override public MessageId send(T message) throws PulsarClientException { return newMessage().value(message).send(); }
@Override public CompletableFuture<MessageId> sendAsync(T message) { try { return newMessage().value(message).sendAsync(); } catch (SchemaSerializationException e) { return FutureUtil.failedFuture(e); } }
@Override public Future<Void> set(Map<ByteBuffer, ByteBuffer> values, Callback<Void> callback) { values.forEach((key, value) -> { ByteBuf bb = Unpooled.wrappedBuffer(key); byte[] keyBytes = ByteBufUtil.getBytes(bb); bb = Unpooled.wrappedBuffer(value); byte[] valBytes = ByteBufUtil.getBytes(bb); producer.newMessage() .key(new String(keyBytes, UTF_8)) .value(valBytes) .sendAsync(); }); return producer.flushAsync().whenComplete((ignored, cause) -> { if (null != callback) { callback.onCompletion(cause, ignored); } if (null == cause) { readToEnd(new CompletableFuture<>()); } }); } }
builder.value(rawPayload); } catch (SchemaSerializationException e) { sendAckResponse(new ProducerAck(PayloadEncodingError, e.getMessage(), null, requestContext));
@Override public void write(Record<T> record) throws Exception { TypedMessageBuilder<T> msg = pulsarSinkProcessor.newMessage(record); if (record.getKey().isPresent()) { msg.key(record.getKey().get()); } msg.value(record.getValue()); if (!record.getProperties().isEmpty()) { msg.properties(record.getProperties()); } SinkRecord<T> sinkRecord = (SinkRecord<T>) record; if (sinkRecord.getSourceRecord() instanceof PulsarRecord) { PulsarRecord<T> pulsarRecord = (PulsarRecord<T>) sinkRecord.getSourceRecord(); // forward user properties to sink-topic msg.property("__pfn_input_topic__", pulsarRecord.getTopicName().get()) .property("__pfn_input_msg_id__", new String(Base64.getEncoder().encode(pulsarRecord.getMessageId().toByteArray()))); } else { // It is coming from some source Optional<Long> eventTime = sinkRecord.getSourceRecord().getEventTime(); if (eventTime.isPresent()) { msg.eventTime(eventTime.get()); } } pulsarSinkProcessor.sendOutputMessage(msg, record); }
for (MessageImpl<T> message : deadLetterMessages) { deadLetterProducer.newMessage() .value(message.getValue()) .properties(message.getProperties()) .send();