/** * * * <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; } /**
/** * * * <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; } /**
/** * * * <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 message. * </pre> * * <code>.google.pubsub.v1.PubsubMessage message = 2;</code> */ public Builder setMessage(com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messageBuilder_ == null) { message_ = builderForValue.build(); onChanged(); } else { messageBuilder_.setMessage(builderForValue.build()); } return this; } /**
@Override public PubsubMessage toPubSubMessage(Object payload, Map<String, String> headers) { try { PubsubMessage.Builder pubsubMessageBuilder = PubsubMessage.newBuilder() .setData(ByteString.copyFrom(this.objectMapper.writeValueAsBytes(payload))); if (headers != null) { pubsubMessageBuilder.putAllAttributes(headers); } return pubsubMessageBuilder.build(); } catch (JsonProcessingException ex) { throw new PubSubMessageConversionException("JSON serialization of an object of type " + payload.getClass().getName() + " failed.", ex); } }
@Override public PubsubMessage toPubSubMessage(Object payload, Map<String, String> headers) { try { PubsubMessage.Builder pubsubMessageBuilder = PubsubMessage.newBuilder() .setData(ByteString.copyFrom(this.objectMapper.writeValueAsBytes(payload))); if (headers != null) { pubsubMessageBuilder.putAllAttributes(headers); } return pubsubMessageBuilder.build(); } catch (JsonProcessingException ex) { throw new PubSubMessageConversionException("JSON serialization of an object of type " + payload.getClass().getName() + " failed.", ex); } }
public void publish(String jsonPayload, Map<String, String> attributes) { PubsubMessage message = PubsubMessage.newBuilder() .setData(ByteString.copyFromUtf8(jsonPayload)) .putAllAttributes(attributes) .build(); log.debug("Publishing message on Google Pubsub topic {}", this.getFullTopicName()); ApiFuture<String> future = publisher.publish(message); ApiFutures.addCallback(future, new PublishCallback(this.getFullTopicName())); }
private void publishPubSub(ByteString bytes) { final ApiFuture<String> publish = publisher.publish( PubsubMessage.newBuilder().setData(bytes).build()); ApiFutures.addCallback(publish, new ApiFutureCallback<String>() { @Override public void onFailure(Throwable t) { log.error("Failed sending metrics {}", t.getMessage()); } @Override public void onSuccess(String messageId) { } }, executorService); }
PubsubMessage pubsubMessage = PubsubMessage.newBuilder() .setData(data) .build();
.setPublishTime(Timestamp.newBuilder().build()) .putAllAttributes(getDynamicAttributesMap(context, flowFile)) .build();
PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build();
PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build();
@Test public void testPublishByNumBatchedMessages() throws Exception { Publisher publisher = getTestPublisherBuilder() .setBatchingSettings( Publisher.Builder.DEFAULT_BATCHING_SETTINGS .toBuilder() .setElementCountThreshold(2L) .setDelayThreshold(Duration.ofSeconds(100)) .build()) .build(); testPublisherServiceImpl .addPublishResponse(PublishResponse.newBuilder().addMessageIds("1").addMessageIds("2")) .addPublishResponse(PublishResponse.newBuilder().addMessageIds("3").addMessageIds("4")); ApiFuture<String> publishFuture1 = sendTestMessage(publisher, "A"); ApiFuture<String> publishFuture2 = sendTestMessage(publisher, "B"); ApiFuture<String> publishFuture3 = sendTestMessage(publisher, "C"); // Note we are not advancing time but message should still get published assertEquals("1", publishFuture1.get()); assertEquals("2", publishFuture2.get()); assertFalse(publishFuture3.isDone()); ApiFuture<String> publishFuture4 = publisher.publish(PubsubMessage.newBuilder().setData(ByteString.copyFromUtf8("D")).build()); assertEquals("3", publishFuture3.get()); assertEquals("4", publishFuture4.get()); assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(0).getMessagesCount()); assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(1).getMessagesCount()); publisher.shutdown(); publisher.awaitTermination(1, TimeUnit.MINUTES); }
@Test @SuppressWarnings("all") public void publishTest() { String messageIdsElement = "messageIdsElement-744837059"; List<String> messageIds = Arrays.asList(messageIdsElement); PublishResponse expectedResponse = PublishResponse.newBuilder().addAllMessageIds(messageIds).build(); mockPublisher.addResponse(expectedResponse); ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); ByteString data = ByteString.copyFromUtf8("-86"); PubsubMessage messagesElement = PubsubMessage.newBuilder().setData(data).build(); List<PubsubMessage> messages = Arrays.asList(messagesElement); PublishResponse actualResponse = client.publish(topic, messages); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockPublisher.getRequests(); Assert.assertEquals(1, actualRequests.size()); PublishRequest actualRequest = (PublishRequest) actualRequests.get(0); Assert.assertEquals(topic, ProjectTopicName.parse(actualRequest.getTopic())); Assert.assertEquals(messages, actualRequest.getMessagesList()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
/** Example of publishing a message. */ // [TARGET publish(PubsubMessage)] // [VARIABLE "my_message"] public ApiFuture<String> publish(String message) { ByteString data = ByteString.copyFromUtf8(message); PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); ApiFuture<String> messageIdFuture = publisher.publish(pubsubMessage); ApiFutures.addCallback( messageIdFuture, new ApiFutureCallback<String>() { public void onSuccess(String messageId) { System.out.println("published with message id: " + messageId); } public void onFailure(Throwable t) { System.out.println("failed to publish: " + t); } }, Executors.newSingleThreadExecutor()); return messageIdFuture; }
/** * * * <pre> * The message. * </pre> * * <code>.google.pubsub.v1.PubsubMessage message = 2;</code> */ public Builder setMessage(com.google.pubsub.v1.PubsubMessage.Builder builderForValue) { if (messageBuilder_ == null) { message_ = builderForValue.build(); onChanged(); } else { messageBuilder_.setMessage(builderForValue.build()); } return this; } /**
@Override public void sendAsync(RowMap r, AbstractAsyncProducer.CallbackCompleter cc) throws Exception { String message = r.toJSON(outputConfig); ByteString data = ByteString.copyFromUtf8(message); PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build(); if ( r instanceof DDLMap ) { ApiFuture<String> apiFuture = ddlPubsub.publish(pubsubMessage); PubsubCallback callback = new PubsubCallback(cc, r.getNextPosition(), message, this.succeededMessageCount, this.failedMessageCount, this.succeededMessageMeter, this.failedMessageMeter, this.context); ApiFutures.addCallback(apiFuture, callback); } else { ApiFuture<String> apiFuture = pubsub.publish(pubsubMessage); PubsubCallback callback = new PubsubCallback(cc, r.getNextPosition(), message, this.succeededMessageCount, this.failedMessageCount, this.succeededMessageMeter, this.failedMessageMeter, this.context); ApiFutures.addCallback(apiFuture, callback); } }
@Test @SuppressWarnings("all") public void publishExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockPublisher.addException(exception); try { ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); ByteString data = ByteString.copyFromUtf8("-86"); PubsubMessage messagesElement = PubsubMessage.newBuilder().setData(data).build(); List<PubsubMessage> messages = Arrays.asList(messagesElement); client.publish(topic, messages); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
private ApiFuture<String> sendTestMessage(Publisher publisher, String data) { return publisher.publish( PubsubMessage.newBuilder().setData(ByteString.copyFromUtf8(data)).build()); }