private int index()

in indexer-cli/src/main/java/org/apache/maven/index/cli/NexusIndexerCli.java [386:478]


    private int index(final CommandLine cli, Components components)
            throws IOException, UnsupportedExistingLuceneIndexException {
        String indexDirectoryName = cli.getOptionValue(INDEX);

        File indexFolder = new File(indexDirectoryName);

        String outputDirectoryName = cli.getOptionValue(TARGET_DIR, ".");

        File outputFolder = new File(outputDirectoryName);

        File repositoryFolder = new File(cli.getOptionValue(REPO));

        String repositoryName = cli.getOptionValue(NAME, indexFolder.getName());

        List<IndexCreator> indexers = getIndexers(cli, components);

        boolean createChecksums = cli.hasOption(CREATE_FILE_CHECKSUMS);

        boolean createIncrementalChunks = cli.hasOption(CREATE_INCREMENTAL_CHUNKS);

        boolean debug = cli.hasOption(DEBUG);

        boolean quiet = cli.hasOption(QUIET);

        Integer chunkCount = cli.hasOption(INCREMENTAL_CHUNK_KEEP_COUNT)
                ? Integer.parseInt(cli.getOptionValue(INCREMENTAL_CHUNK_KEEP_COUNT))
                : null;

        if (!quiet) {
            System.err.printf("Repository Folder: %s\n", repositoryFolder.getAbsolutePath());
            System.err.printf("Index Folder:      %s\n", indexFolder.getAbsolutePath());
            System.err.printf("Output Folder:     %s\n", outputFolder.getAbsolutePath());
            System.err.printf("Repository name:   %s\n", repositoryName);
            System.err.printf("Indexers: %s\n", indexers);

            if (createChecksums) {
                System.err.print("Will create checksum files for all published files (sha1, md5).\n");
            } else {
                System.err.print("Will not create checksum files.\n");
            }

            if (createIncrementalChunks) {
                System.err.print("Will create incremental chunks for changes, along with baseline file.\n");
            } else {
                System.err.print("Will create baseline file.\n");
            }
        }

        long tstart = System.currentTimeMillis();

        IndexingContext context = components.indexer.addIndexingContext( //
                repositoryName, // context id
                repositoryName, // repository id
                repositoryFolder, // repository folder
                indexFolder, // index folder
                null, // repositoryUrl
                null, // index update url
                indexers);

        try {
            ArtifactScanningListener listener = new IndexerListener(context, debug, quiet);

            components.indexer.scan(context, listener, true);

            IndexSearcher indexSearcher = context.acquireIndexSearcher();

            try {
                IndexPackingRequest request =
                        new IndexPackingRequest(context, indexSearcher.getIndexReader(), outputFolder);

                request.setCreateChecksumFiles(createChecksums);

                request.setCreateIncrementalChunks(createIncrementalChunks);

                request.setFormats(List.of(IndexFormat.FORMAT_V1));

                if (chunkCount != null) {
                    request.setMaxIndexChunks(chunkCount);
                }

                packIndex(components.packer, request, debug, quiet);
            } finally {
                context.releaseIndexSearcher(indexSearcher);
            }

            if (!quiet) {
                printStats(tstart);
            }
        } finally {
            components.indexer.removeIndexingContext(context, false);
        }
        return 0;
    }