Provide Iterator implementations for analyses#43
Merged
Conversation
…grammatically build MARIN configurations
Member
Author
|
This PR will only deal with single threaded iterators. Multithreaded sources will be added as part of #44 . |
jachiaram
approved these changes
Dec 19, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces Iterator implementations that correspond to the current
MavenCentralArtifactAnalysisandMavenCentralLibraryAnalysis, respectively. The idea is to provide the same kind of data without forcing users to extend any specific base class.Specifically, this PR adds:
ArtifactAnalysisConfigBuilderandLibraryAnalysisConfigBuilderclasses to programmatically build configuration objects. This is necessary as iterators will not necessarily be used in main methods, and we therefore need a way to build configurations without CLI argument parsing, see Rework configuration system #42MavenCentralArtifactIteratoras an equivalent to theMavenCentralArtifactAnalysis. This iterator producesArtifactobjects and supports all configuration options except multithreading.MavenCentralLibraryIteratoras an equivalent to theMavenCentralLibraryAnalysis. This iterator producesLibraryResolutionContextobjects to encapsulate all releases of a library. It supports all configuration options except multithreading.Custom input files are, for all analysis modes, now being validated syntactically before being processed. This ensures that only lists with valid G:A:V triples or G:A tuples, respectively, are processed any further.
With these changes, the following is now possible:
What's left to do
READMEto reflect this new usage scenarioCloses #41 (for now, see follow-up #44)
Closes #42