@Override public List<SubscriptionPath> listSubscriptions(ProjectPath project, TopicPath topic) throws IOException { ListSubscriptionsRequest.Builder request = ListSubscriptionsRequest.newBuilder() .setProject(project.getPath()) .setPageSize(LIST_BATCH_SIZE); ListSubscriptionsResponse response = subscriberStub().listSubscriptions(request.build()); if (response.getSubscriptionsCount() == 0) { return ImmutableList.of(); } List<SubscriptionPath> subscriptions = new ArrayList<>(response.getSubscriptionsCount()); while (true) { for (Subscription subscription : response.getSubscriptionsList()) { if (subscription.getTopic().equals(topic.getPath())) { subscriptions.add(subscriptionPathFromPath(subscription.getName())); } } if (response.getNextPageToken().isEmpty()) { break; } request.setPageToken(response.getNextPageToken()); response = subscriberStub().listSubscriptions(request.build()); } return subscriptions; }
/** * Lists matching subscriptions. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectName project = ProjectName.of("[PROJECT]"); * for (Subscription element : subscriptionAdminClient.listSubscriptions(project).iterateAll()) { * // doThingsWith(element); * } * } * </code></pre> * * @param project The name of the project in which to list subscriptions. Format is * `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSubscriptionsPagedResponse listSubscriptions(ProjectName project) { ListSubscriptionsRequest request = ListSubscriptionsRequest.newBuilder() .setProject(project == null ? null : project.toString()) .build(); return listSubscriptions(request); }
/** * Lists matching subscriptions. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectName project = ProjectName.of("[PROJECT]"); * for (Subscription element : subscriptionAdminClient.listSubscriptions(project.toString()).iterateAll()) { * // doThingsWith(element); * } * } * </code></pre> * * @param project The name of the project in which to list subscriptions. Format is * `projects/{project-id}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final ListSubscriptionsPagedResponse listSubscriptions(String project) { ListSubscriptionsRequest request = ListSubscriptionsRequest.newBuilder().setProject(project).build(); return listSubscriptions(request); }
/** Example of listing subscriptions. */ public ListSubscriptionsPagedResponse listSubscriptions() throws Exception { // [START pubsub_list_subscriptions] try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { ListSubscriptionsRequest listSubscriptionsRequest = ListSubscriptionsRequest.newBuilder() .setProject(ProjectName.of(projectId).toString()) .build(); ListSubscriptionsPagedResponse response = subscriptionAdminClient.listSubscriptions(listSubscriptionsRequest); Iterable<Subscription> subscriptions = response.iterateAll(); for (Subscription subscription : subscriptions) { // do something with the subscription } return response; } // [END pubsub_list_subscriptions] }