code: public static DebugRecoveryProcessor create(int containerId, DurableDataLog durableDataLog, ContainerConfig config, ReadIndexConfig readIndexConfig,
                                                  ScheduledExecutorService executor, OperationCallbacks callbacks) {
          Preconditions.checkNotNull(durableDataLog, "durableDataLog");
          Preconditions.checkNotNull(config, "config");
          Preconditions.checkNotNull(readIndexConfig, "readIndexConfig");
          Preconditions.checkNotNull(executor, "executor");
          Preconditions.checkNotNull(callbacks, callbacks);
  
          StreamSegmentContainerMetadata metadata = new StreamSegmentContainerMetadata(containerId, config.getMaxActiveSegmentCount());
          CacheManager cacheManager = new CacheManager(new CachePolicy(Long.MAX_VALUE, Duration.ofHours(10), Duration.ofHours(1)), executor);
          cacheManager.startAsync().awaitRunning();
          ContainerReadIndexFactory rf = new ContainerReadIndexFactory(readIndexConfig, new NoOpCacheFactory(), cacheManager, executor);
          Storage s = new InMemoryStorageFactory(executor).createStorageAdapter();
          return new DebugRecoveryProcessor(metadata, durableDataLog, rf, s, cacheManager, callbacks);
      }
docs: Creates a new instance of the DebugRecoveryProcessor class with the given arguments.
  
  @param containerId     The Id of the Container to recover.
  @param durableDataLog  A DurableDataLog to recover from.
  @param config          A ContainerConfig to use during recovery.
  @param readIndexConfig A ReadIndexConfig to use during recovery.
  @param executor        An Executor to use for background tasks.
  @param callbacks       Callbacks to invoke during recovery.
  @return A new instance of the DebugRecoveryProcessor.