public static ProjectTopicName parse(String formattedString) { if (formattedString.isEmpty()) { return null; } Map<String, String> matchMap = PATH_TEMPLATE.validatedMatch( formattedString, "ProjectTopicName.parse: formattedString not in valid format"); return of(matchMap.get("project"), matchMap.get("topic")); }
/** Example of creating a topic. */ public Topic createTopic(String topicId) throws Exception { // [START pubsub_create_topic] try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { // projectId <= unique project identifier, eg. "my-project-id" // topicId <= "my-topic-id" ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); Topic topic = topicAdminClient.createTopic(topicName); return topic; } // [END pubsub_create_topic] }
public static void createTopic() throws Exception { ProjectTopicName topic = ProjectTopicName.of("my-project-id", "my-topic-id"); try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { topicAdminClient.createTopic(topic); } }
/** Example of deleting a topic. */ public ProjectTopicName deleteTopic(String topicId) throws Exception { // [START pubsub_delete_topic] try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); topicAdminClient.deleteTopic(topicName); return topicName; } // [END pubsub_delete_topic] }
/** Example of getting a topic. */ public Topic getTopic(String topicId) throws Exception { // [START pubsub_get_topic] try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); Topic topic = topicAdminClient.getTopic(topicName); return topic; } // [END pubsub_get_topic] } }
/** * Example of testing whether the caller has the provided permissions on a topic. Only viewer, * editor or admin/owner can view results of pubsub.topics.get */ public TestIamPermissionsResponse testTopicPermissions(String topicId) throws Exception { // [START pubsub_test_topic_permissions] try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { List<String> permissions = new LinkedList<>(); permissions.add("pubsub.topics.get"); ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); TestIamPermissionsResponse testedPermissions = topicAdminClient.testIamPermissions(topicName.toString(), permissions); return testedPermissions; } // [END pubsub_test_topic_permissions] }
/** Example of getting a topic policy. */ public Policy getTopicPolicy(String topicId) throws Exception { // [START pubsub_get_topic_policy] try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); Policy policy = topicAdminClient.getIamPolicy(topicName.toString()); if (policy == null) { // topic iam policy was not found } return policy; } // [END pubsub_get_topic_policy] }
private ProjectTopicName getTopicName(ProcessContext context) { final String topic = context.getProperty(TOPIC_NAME).evaluateAttributeExpressions().getValue(); final String projectId = context.getProperty(PROJECT_ID).getValue(); if (topic.contains("/")) { return ProjectTopicName.parse(topic); } else { return ProjectTopicName.of(projectId, topic); } }
/** Example of creating a {@code Publisher}. */ // [TARGET newBuilder(ProjectTopicName)] // [VARIABLE "my_project"] // [VARIABLE "my_topic"] public static void newBuilder(String projectId, String topicId) throws Exception { ProjectTopicName topic = ProjectTopicName.of(projectId, topicId); Publisher publisher = Publisher.newBuilder(topic).build(); try { // ... } finally { // When finished with the publisher, make sure to shutdown to free up resources. publisher.shutdown(); publisher.awaitTermination(1, TimeUnit.MINUTES); } }
/** Example of creating a pull subscription for a topic. */ public Subscription createSubscription(String topicId, String subscriptionId) throws Exception { // [START pubsub_create_pull_subscription] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { // eg. projectId = "my-test-project", topicId = "my-test-topic" ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId); // eg. subscriptionId = "my-test-subscription" ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of(projectId, subscriptionId); // create a pull subscription with default acknowledgement deadline Subscription subscription = subscriptionAdminClient.createSubscription( subscriptionName, topicName, PushConfig.getDefaultInstance(), 0); return subscription; } // [END pubsub_create_pull_subscription] }
@Test @SuppressWarnings("all") public void listTopicSubscriptionsExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockPublisher.addException(exception); try { ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); client.listTopicSubscriptions(topic); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void deleteTopicExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockPublisher.addException(exception); try { ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); client.deleteTopic(topic); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void createTopicExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockPublisher.addException(exception); try { ProjectTopicName name = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); client.createTopic(name); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@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 } }
@Test @SuppressWarnings("all") public void getTopicExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockPublisher.addException(exception); try { ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); client.getTopic(topic); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test public void testToBuilderIncomplete() { NotificationInfo incompleteBucketInfo = NotificationInfo.newBuilder(ProjectTopicName.of("myProject", "topic1")).build(); compareBuckets(incompleteBucketInfo, incompleteBucketInfo.toBuilder().build()); }
@Test @SuppressWarnings("all") public void deleteTopicTest() { Empty expectedResponse = Empty.newBuilder().build(); mockPublisher.addResponse(expectedResponse); ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); client.deleteTopic(topic); List<GeneratedMessageV3> actualRequests = mockPublisher.getRequests(); Assert.assertEquals(1, actualRequests.size()); DeleteTopicRequest actualRequest = (DeleteTopicRequest) actualRequests.get(0); Assert.assertEquals(topic, ProjectTopicName.parse(actualRequest.getTopic())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test @SuppressWarnings("all") public void createSubscriptionExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockSubscriber.addException(exception); try { ProjectSubscriptionName name = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); PushConfig pushConfig = PushConfig.newBuilder().build(); int ackDeadlineSeconds = 2135351438; client.createSubscription(name, topic, pushConfig, ackDeadlineSeconds); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test public void testToPbAndFromPb() { compareBuckets(NOTIFICATION_INFO, NotificationInfo.fromPb(NOTIFICATION_INFO.toPb())); NotificationInfo bucketInfo = NotificationInfo.of(ProjectTopicName.of("myProject", "topic1")) .toBuilder() .setPayloadFormat(PayloadFormat.NONE) .build(); compareBuckets(bucketInfo, NotificationInfo.fromPb(bucketInfo.toPb())); }