test_class.declarator: connectionFactory = new MongoConnectionFactory()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public MongoConnectionFactory connectionFactory = new MongoConnectionFactory();
test_class.type: MongoConnectionFactory
test_class.var_name: connectionFactory
test_class.declarator: builderProvider = new DocumentMKBuilderProvider()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public DocumentMKBuilderProvider builderProvider = new DocumentMKBuilderProvider();
test_class.type: DocumentMKBuilderProvider
test_class.var_name: builderProvider
test_class.declarator: ns
test_class.modifier: private
test_class.original_string: private DocumentNodeStore ns;
test_class.type: DocumentNodeStore
test_class.var_name: ns
test_class.file: oak-run/src/test/java/org/apache/jackrabbit/oak/run/RevisionsCommandTest.java
test_class.identifier: RevisionsCommandTest
test_case.body: @Test
      public void info() throws Exception {
          ns.getVersionGarbageCollector().gc(1, TimeUnit.HOURS);
          ns.dispose();
  
          String output = captureSystemOut(new RevisionsCmd("info"));
          assertTrue(output.contains("Last Successful Run"));
      }
test_case.class_method_signature: RevisionsCommandTest.info()
test_case.full_signature: @Test public void info()
test_case.identifier: info
test_case.invocations: gc getVersionGarbageCollector dispose captureSystemOut assertTrue contains
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void info()
focal_class.declarator: LOG = LoggerFactory.getLogger(RevisionsCommand.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = LoggerFactory.getLogger(RevisionsCommand.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.declarator: USAGE = Joiner.on(System.lineSeparator()).join(
              "revisions {<jdbc-uri> | <mongodb-uri>} <sub-command> [options]",
              "where sub-command is one of",
              "  info     give information about the revisions state without performing",
              "           any modifications",
              "  collect  perform garbage collection",
              "  reset    clear all persisted metadata",
              "  sweep    clean up uncommitted changes"
      )
focal_class.modifier: private static final
focal_class.original_string: private static final String USAGE = Joiner.on(System.lineSeparator()).join(
              "revisions {<jdbc-uri> | <mongodb-uri>} <sub-command> [options]",
              "where sub-command is one of",
              "  info     give information about the revisions state without performing",
              "           any modifications",
              "  collect  perform garbage collection",
              "  reset    clear all persisted metadata",
              "  sweep    clean up uncommitted changes"
      );
focal_class.type: String
focal_class.var_name: USAGE
focal_class.declarator: LOGGER_NAMES = ImmutableList.of(
              "org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector",
              "org.apache.jackrabbit.oak.plugins.document.NodeDocumentSweeper"
      )
focal_class.modifier: private static final
focal_class.original_string: private static final ImmutableList<String> LOGGER_NAMES = ImmutableList.of(
              "org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector",
              "org.apache.jackrabbit.oak.plugins.document.NodeDocumentSweeper"
      );
focal_class.type: ImmutableList<String>
focal_class.var_name: LOGGER_NAMES
focal_class.file: oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
focal_class.identifier: RevisionsCommand
focal_class.interfaces: implements Command
focal_class.class_method_signature: RevisionsCommand.execute(String... args)
focal_class.full_signature: @Override public void execute(String... args)
focal_class.identifier: execute
focal_class.modifiers: @Override public
focal_class.parameters: (String... args)
focal_class.return: void
focal_class.signature: void execute(String... args)
focal_class.class_method_signature: RevisionsCommand.setupLoggers(boolean verbose)
focal_class.full_signature: private void setupLoggers(boolean verbose)
focal_class.identifier: setupLoggers
focal_class.modifiers: private
focal_class.parameters: (boolean verbose)
focal_class.return: void
focal_class.signature: void setupLoggers(boolean verbose)
focal_class.class_method_signature: RevisionsCommand.bootstrapVGC(RevisionsOptions options,
                                                   Closer closer)
focal_class.full_signature: private VersionGarbageCollector bootstrapVGC(RevisionsOptions options,
                                                   Closer closer)
focal_class.identifier: bootstrapVGC
focal_class.modifiers: private
focal_class.parameters: (RevisionsOptions options,
                                                   Closer closer)
focal_class.return: VersionGarbageCollector
focal_class.signature: VersionGarbageCollector bootstrapVGC(RevisionsOptions options,
                                                   Closer closer)
focal_class.class_method_signature: RevisionsCommand.info(RevisionsOptions options, Closer closer)
focal_class.full_signature: private void info(RevisionsOptions options, Closer closer)
focal_class.identifier: info
focal_class.modifiers: private
focal_class.parameters: (RevisionsOptions options, Closer closer)
focal_class.return: void
focal_class.signature: void info(RevisionsOptions options, Closer closer)
focal_class.class_method_signature: RevisionsCommand.collect(final RevisionsOptions options, Closer closer)
focal_class.full_signature: private void collect(final RevisionsOptions options, Closer closer)
focal_class.identifier: collect
focal_class.modifiers: private
focal_class.parameters: (final RevisionsOptions options, Closer closer)
focal_class.return: void
focal_class.signature: void collect(final RevisionsOptions options, Closer closer)
focal_class.class_method_signature: RevisionsCommand.collectOnce(VersionGarbageCollector gc,
                               RevisionsOptions options,
                               ExecutorService executor)
focal_class.full_signature: private void collectOnce(VersionGarbageCollector gc,
                               RevisionsOptions options,
                               ExecutorService executor)
focal_class.identifier: collectOnce
focal_class.modifiers: private
focal_class.parameters: (VersionGarbageCollector gc,
                               RevisionsOptions options,
                               ExecutorService executor)
focal_class.return: void
focal_class.signature: void collectOnce(VersionGarbageCollector gc,
                               RevisionsOptions options,
                               ExecutorService executor)
focal_class.class_method_signature: RevisionsCommand.waitWhile(AtomicBoolean condition, long until)
focal_class.full_signature: private static void waitWhile(AtomicBoolean condition, long until)
focal_class.identifier: waitWhile
focal_class.modifiers: private static
focal_class.parameters: (AtomicBoolean condition, long until)
focal_class.return: void
focal_class.signature: void waitWhile(AtomicBoolean condition, long until)
focal_class.class_method_signature: RevisionsCommand.reset(RevisionsOptions options, Closer closer)
focal_class.full_signature: private void reset(RevisionsOptions options, Closer closer)
focal_class.identifier: reset
focal_class.modifiers: private
focal_class.parameters: (RevisionsOptions options, Closer closer)
focal_class.return: void
focal_class.signature: void reset(RevisionsOptions options, Closer closer)
focal_class.class_method_signature: RevisionsCommand.sweep(RevisionsOptions options, Closer closer)
focal_class.full_signature: private void sweep(RevisionsOptions options, Closer closer)
focal_class.identifier: sweep
focal_class.modifiers: private
focal_class.parameters: (RevisionsOptions options, Closer closer)
focal_class.return: void
focal_class.signature: void sweep(RevisionsOptions options, Closer closer)
focal_class.class_method_signature: RevisionsCommand.fmtTimestamp(long ts)
focal_class.full_signature: private String fmtTimestamp(long ts)
focal_class.identifier: fmtTimestamp
focal_class.modifiers: private
focal_class.parameters: (long ts)
focal_class.return: String
focal_class.signature: String fmtTimestamp(long ts)
focal_class.class_method_signature: RevisionsCommand.fmtDuration(long ts)
focal_class.full_signature: private String fmtDuration(long ts)
focal_class.identifier: fmtDuration
focal_class.modifiers: private
focal_class.parameters: (long ts)
focal_class.return: String
focal_class.signature: String fmtDuration(long ts)
focal_class.class_method_signature: RevisionsCommand.useMemoryBlobStore(DocumentNodeStoreBuilder builder)
focal_class.full_signature: private void useMemoryBlobStore(DocumentNodeStoreBuilder builder)
focal_class.identifier: useMemoryBlobStore
focal_class.modifiers: private
focal_class.parameters: (DocumentNodeStoreBuilder builder)
focal_class.return: void
focal_class.signature: void useMemoryBlobStore(DocumentNodeStoreBuilder builder)
focal_method.body: private void info(RevisionsOptions options, Closer closer)
              throws IOException {
          VersionGarbageCollector gc = bootstrapVGC(options, closer);
          System.out.println("retrieving gc info");
          VersionGCInfo info = gc.getInfo(options.getOlderThan(), SECONDS);
  
          System.out.printf(Locale.US, "%21s  %s%n", "Last Successful Run:",
                  info.lastSuccess > 0? fmtTimestamp(info.lastSuccess) : "<unknown>");
          System.out.printf(Locale.US, "%21s  %s%n", "Oldest Revision:",
                  fmtTimestamp(info.oldestRevisionEstimate));
          System.out.printf(Locale.US, "%21s  %d%n", "Delete Candidates:",
                  info.revisionsCandidateCount);
          System.out.printf(Locale.US, "%21s  %d%n", "Collect Limit:",
                  info.collectLimit);
          System.out.printf(Locale.US, "%21s  %s%n", "Collect Interval:",
                  fmtDuration(info.recommendedCleanupInterval));
          System.out.printf(Locale.US, "%21s  %s%n", "Collect Before:",
                  fmtTimestamp(info.recommendedCleanupTimestamp));
          System.out.printf(Locale.US, "%21s  %d%n", "Iterations Estimate:",
                  info.estimatedIterations);
      }
focal_method.class_method_signature: RevisionsCommand.info(RevisionsOptions options, Closer closer)
focal_method.full_signature: private void info(RevisionsOptions options, Closer closer)
focal_method.identifier: info
focal_method.invocations: bootstrapVGC println getInfo getOlderThan printf fmtTimestamp printf fmtTimestamp printf printf printf fmtDuration printf fmtTimestamp printf
focal_method.modifiers: private
focal_method.parameters: (RevisionsOptions options, Closer closer)
focal_method.return: void
focal_method.signature: void info(RevisionsOptions options, Closer closer)