public void replayMessages()

in src/main/java/com/googlesource/gerrit/plugins/pubsub/SubscriberProvider.java [105:129]


  public void replayMessages(String subscriptionName) {
    try (SubscriptionAdminClient subscriptionAdminClient =
        SubscriptionAdminClient.create(createSubscriptionAdminSettings())) {
      Duration messageRetentionDuration =
          subscriptionAdminClient
              .getSubscription(
                  GetSubscriptionRequest.newBuilder().setSubscription(subscriptionName).build())
              .getMessageRetentionDuration();
      LocalDateTime retentionTime =
          LocalDateTime.now().minusSeconds(messageRetentionDuration.getSeconds());
      Timestamp retentionTimeEpoch =
          Timestamp.newBuilder()
              .setSeconds(retentionTime.atZone(ZoneOffset.UTC).toEpochSecond())
              .build();

      SeekRequest request =
          SeekRequest.newBuilder()
              .setSubscription(subscriptionName)
              .setTime(retentionTimeEpoch)
              .build();
      subscriptionAdminClient.seek(request);
    } catch (IOException e) {
      logger.atSevere().withCause(e).log("Cannot replay messages");
    }
  }