コード例 #1
0
  /**
   * Method that does the work of importing a filesystem using the BatchProcessor.
   *
   * @param bulkImportParameters The bulk import parameters to apply to this bulk import.
   * @param nodeImporter The node importer implementation that will import each node.
   * @param lockToken The lock token to use during the bulk import.
   */
  @Override
  protected void bulkImportImpl(
      final BulkImportParameters bulkImportParameters,
      final NodeImporter nodeImporter,
      final String lockToken) {
    super.bulkImportImpl(bulkImportParameters, nodeImporter, lockToken);

    final File sourceFolder = nodeImporter.getSourceFolder();
    final int batchSize = getBatchSize(bulkImportParameters);
    final int loggingInterval = getLoggingInterval(bulkImportParameters);
    final StripingFilesystemTracker tracker =
        new StripingFilesystemTracker(
            directoryAnalyser, bulkImportParameters.getTarget(), sourceFolder, batchSize);
    final BatchProcessor<ImportableItem> batchProcessor =
        getBatchProcessor(bulkImportParameters, tracker.getWorkProvider(), loggingInterval);
    final BatchProcessor.BatchProcessWorker<ImportableItem> worker =
        getWorker(bulkImportParameters, lockToken, nodeImporter, tracker);

    do {
      batchProcessor.process(worker, true);
    } while (tracker.moreLevels());
  }