@@ -586,29 +586,31 @@ Google Cloud Pub/Sub (Alpha)
586586Here is a code snippet showing a simple usage example from within Compute Engine/App Engine
587587Flexible. Note that you must [supply credentials](# authentication) and a project ID if running this
588588snippet elsewhere. Complete source code can be found at
589- [CreateSubscriptionAndPullMessages .java](./google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/CreateSubscriptionAndPullMessages .java).
589+ [CreateTopicAndPublishMessages .java](./google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/CreateTopicAndPublishMessages .java).
590590
591591` ` ` java
592- import com.google.cloud.pubsub.Message;
593- import com.google.cloud.pubsub.PubSub;
594- import com.google.cloud.pubsub.PubSub.MessageConsumer;
595- import com.google.cloud.pubsub.PubSub.MessageProcessor;
596- import com.google.cloud.pubsub.PubSubOptions;
597- import com.google.cloud.pubsub.Subscription;
598- import com.google.cloud.pubsub.SubscriptionInfo;
599-
600- try (PubSub pubsub = PubSubOptions.getDefaultInstance().getService ()) {
601- Subscription subscription =
602- pubsub.create(SubscriptionInfo.of(" test-topic" , " test-subscription" ));
603- MessageProcessor callback = new MessageProcessor () {
604- @Override
605- public void process(Message message) throws Exception {
606- System.out.printf(" Received message \" %s\" %n" , message.getPayloadAsString ());
607- }
608- };
609- // Create a message consumer and pull messages (for 60 seconds)
610- try (MessageConsumer consumer = subscription.pullAsync(callback)) {
611- Thread.sleep(60_000);
592+ import com.google.api.gax.core.ApiFuture;
593+ import com.google.cloud.pubsub.spi.v1.Publisher;
594+ import com.google.cloud.pubsub.spi.v1.TopicAdminClient;
595+ import com.google.protobuf.ByteString;
596+ import com.google.pubsub.v1.PubsubMessage;
597+ import com.google.pubsub.v1.TopicName;
598+
599+ TopicName topic = TopicName.create(" test-project" , " test-topic" );
600+ try (TopicAdminClient topicAdminClient = TopicAdminClient.create ()) {
601+ topicAdminClient.createTopic(topic);
602+ }
603+
604+ Publisher publisher = null;
605+ try {
606+ publisher = Publisher.newBuilder(topic).build ();
607+ ByteString data = ByteString.copyFromUtf8(" my message" );
608+ PubsubMessage pubsubMessage = PubsubMessage.newBuilder().setData(data).build ();
609+ ApiFuture< String> messageId = publisher.publish(pubsubMessage);
610+ System.out.println(" published with message ID: " + messageId.get ());
611+ } finally {
612+ if (publisher ! = null) {
613+ publisher.shutdown ();
612614 }
613615}
614616` ` `
0 commit comments