final ByteString flowFileContent = ByteString.copyFromUtf8(baos.toString()); PubsubMessage message = PubsubMessage.newBuilder().setData(flowFileContent) .setPublishTime(Timestamp.newBuilder().build()) .putAllAttributes(getDynamicAttributesMap(context, flowFile)) .build();
input.readMessage(com.google.pubsub.v1.PubsubMessage.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(message_); message_ = subBuilder.buildPartial();
input.readMessage(com.google.pubsub.v1.PubsubMessage.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(message_); message_ = subBuilder.buildPartial();
subBuilder.mergeFrom(message_); message_ = subBuilder.buildPartial();
subBuilder.mergeFrom(message_); message_ = subBuilder.buildPartial();
PubsubMessage expectedPubsubMessage = PubsubMessage.newBuilder() .setMessageId(MESSAGE_ID) .setData(ByteString.copyFrom(DATA.getBytes(StandardCharsets.UTF_8))) .setPublishTime(timestamp) .putAllAttributes(ATTRIBUTES) .putAllAttributes( ImmutableMap.of( TIMESTAMP_ATTRIBUTE, String.valueOf(MESSAGE_TIME), ID_ATTRIBUTE, RECORD_ID)) .build(); ReceivedMessage expectedReceivedMessage = ReceivedMessage.newBuilder().setMessage(expectedPubsubMessage).setAckId(ACK_ID).build();
PubsubMessage expectedPubsubMessage = PubsubMessage.newBuilder() .setData(ByteString.copyFrom(DATA.getBytes(StandardCharsets.UTF_8))) .putAllAttributes(ATTRIBUTES) .putAllAttributes( ImmutableMap.of( TIMESTAMP_ATTRIBUTE, String.valueOf(MESSAGE_TIME), ID_ATTRIBUTE, RECORD_ID)) .build(); final PublishRequest expectedRequest = PublishRequest.newBuilder()
.publish( PubsubMessage.newBuilder() .setData(payload) .putAttributes("sendTime", sendTime) .putAttributes("clientId", id.toString()) .putAttributes( "sequenceNumber", Integer.toString(sequenceNumber.getAndIncrement())) .build()), new ApiFutureCallback<String>() { @Override public void onSuccess(String messageId) {
/** * * * <pre> * The message. * </pre> * * <code>.google.pubsub.v1.PubsubMessage message = 2;</code> */ public Builder mergeMessage(com.google.pubsub.v1.PubsubMessage value) { if (messageBuilder_ == null) { if (message_ != null) { message_ = com.google.pubsub.v1.PubsubMessage.newBuilder(message_) .mergeFrom(value) .buildPartial(); } else { message_ = value; } onChanged(); } else { messageBuilder_.mergeFrom(value); } return this; } /**
@Override public PubsubMessage toPubSubMessage(Object payload, Map<String, String> headers) { ByteString convertedPayload; if (payload instanceof ByteString) { convertedPayload = (ByteString) payload; } else if (payload instanceof String) { convertedPayload = ByteString.copyFrom(((String) payload).getBytes(this.charset)); } else if (payload instanceof ByteBuffer) { convertedPayload = ByteString.copyFrom((ByteBuffer) payload); } else if (payload instanceof byte[]) { convertedPayload = ByteString.copyFrom((byte[]) payload); } else { throw new PubSubMessageConversionException("Unable to convert payload of type " + payload.getClass().getName() + " to byte[] for sending to Pub/Sub."); } PubsubMessage.Builder pubsubMessageBuilder = PubsubMessage.newBuilder() .setData(convertedPayload); if (headers != null) { pubsubMessageBuilder.putAllAttributes(headers); } return pubsubMessageBuilder.build(); }
@Override public PubsubMessage toPubSubMessage(Object payload, Map<String, String> headers) { ByteString convertedPayload; if (payload instanceof ByteString) { convertedPayload = (ByteString) payload; } else if (payload instanceof String) { convertedPayload = ByteString.copyFrom(((String) payload).getBytes(this.charset)); } else if (payload instanceof ByteBuffer) { convertedPayload = ByteString.copyFrom((ByteBuffer) payload); } else if (payload instanceof byte[]) { convertedPayload = ByteString.copyFrom((byte[]) payload); } else { throw new PubSubMessageConversionException("Unable to convert payload of type " + payload.getClass().getName() + " to byte[] for sending to Pub/Sub."); } PubsubMessage.Builder pubsubMessageBuilder = PubsubMessage.newBuilder() .setData(convertedPayload); if (headers != null) { pubsubMessageBuilder.putAllAttributes(headers); } return pubsubMessageBuilder.build(); }
@Override public void put(Collection<SinkRecord> sinkRecords) { log.debug("Received " + sinkRecords.size() + " messages to send to CPS."); PubsubMessage.Builder builder = PubsubMessage.newBuilder(); for (SinkRecord record : sinkRecords) { log.trace("Received record: " + record.toString()); Map<String, String> attributes = new HashMap<>(); ByteString value = handleValue(record.valueSchema(), record.value(), attributes); if (record.key() != null) { String key = record.key().toString(); attributes.put(ConnectorUtils.CPS_MESSAGE_KEY_ATTRIBUTE, key); } if (includeMetadata) { attributes.put(ConnectorUtils.KAFKA_TOPIC_ATTRIBUTE, record.topic()); attributes.put( ConnectorUtils.KAFKA_PARTITION_ATTRIBUTE, record.kafkaPartition().toString()); attributes.put(ConnectorUtils.KAFKA_OFFSET_ATTRIBUTE, Long.toString(record.kafkaOffset())); attributes.put(ConnectorUtils.KAFKA_TIMESTAMP_ATTRIBUTE, record.timestamp().toString()); } PubsubMessage message = builder.setData(value).putAllAttributes(attributes).build(); publishMessage(record.topic(), record.kafkaPartition(), message); } }
/** * <pre> * The message. * </pre> * * <code>optional .google.pubsub.v1.PubsubMessage message = 2;</code> */ public Builder mergeMessage(com.google.pubsub.v1.PubsubMessage value) { if (messageBuilder_ == null) { if (message_ != null) { message_ = com.google.pubsub.v1.PubsubMessage.newBuilder(message_).mergeFrom(value).buildPartial(); } else { message_ = value; } onChanged(); } else { messageBuilder_.mergeFrom(value); } return this; } /**
/** * * * <pre> * The messages to publish. * </pre> * * <code>repeated .google.pubsub.v1.PubsubMessage messages = 2;</code> */ public Builder addMessages( int index, com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messagesBuilder_ == null) { ensureMessagesIsMutable(); messages_.add(index, builderForValue.build()); onChanged(); } else { messagesBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * * * <pre> * The messages to publish. * </pre> * * <code>repeated .google.pubsub.v1.PubsubMessage messages = 2;</code> */ public Builder setMessages( int index, com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messagesBuilder_ == null) { ensureMessagesIsMutable(); messages_.set(index, builderForValue.build()); onChanged(); } else { messagesBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
/** * <code>optional .google.pubsub.v1.PubsubMessage message = 2;</code> * * <pre> * The message. * </pre> */ public Builder mergeMessage(com.google.pubsub.v1.PubsubMessage value) { if (messageBuilder_ == null) { if (message_ != null) { message_ = com.google.pubsub.v1.PubsubMessage.newBuilder(message_).mergeFrom(value).buildPartial(); } else { message_ = value; } onChanged(); } else { messageBuilder_.mergeFrom(value); } return this; } /**
@Override public int publish(TopicPath topic, List<OutgoingMessage> outgoingMessages) throws IOException { PublishRequest.Builder request = PublishRequest.newBuilder().setTopic(topic.getPath()); for (OutgoingMessage outgoingMessage : outgoingMessages) { PubsubMessage.Builder message = PubsubMessage.newBuilder().setData(ByteString.copyFrom(outgoingMessage.elementBytes)); if (outgoingMessage.attributes != null) { message.putAllAttributes(outgoingMessage.attributes); } if (timestampAttribute != null) { message .getMutableAttributes() .put(timestampAttribute, String.valueOf(outgoingMessage.timestampMsSinceEpoch)); } if (idAttribute != null && !Strings.isNullOrEmpty(outgoingMessage.recordId)) { message.getMutableAttributes().put(idAttribute, outgoingMessage.recordId); } request.addMessages(message); } PublishResponse response = publisherStub().publish(request.build()); return response.getMessageIdsCount(); }
/** * * * <pre> * The messages to publish. * </pre> * * <code>repeated .google.pubsub.v1.PubsubMessage messages = 2;</code> */ public Builder addMessages(com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messagesBuilder_ == null) { ensureMessagesIsMutable(); messages_.add(builderForValue.build()); onChanged(); } else { messagesBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * <code>repeated .google.pubsub.v1.PubsubMessage messages = 2;</code> * * <pre> * The messages to publish. * </pre> */ public Builder addMessages( int index, com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messagesBuilder_ == null) { ensureMessagesIsMutable(); messages_.add(index, builderForValue.build()); onChanged(); } else { messagesBuilder_.addMessage(index, builderForValue.build()); } return this; } /**