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.
Overview
It was discovered that the jar callgraph logic doesn’t account for creating all the appropriate edges for interfaces. Looking at the dependency mvn+com.squareup.okio_okio$1.15.0 we can see where our current jar callgraph logic fails to create the edges for interfaces.
Acceptance criteria
Properly create edges for interfaces
Update all code paths that use jar-callgraph.jar
jar-callgraph
fossa-cli
core
Testing plan
Manual testing plan:
cd scriptsjava -jar jar-callgraph-1.0.2.jar /path/to/example/jarLook at the output and see that we now edges for:
Makes edges for interface methods and the classes that implement them
Previously, we only had an edge like:
M:okio.Buffer:writeAll(okio.Source) (I)okio.Source:read(okio.Buffer,long)for interface method calls. Because we are calling an interface method, it is also possible to call of the classes that implement the interface depending on implementation. These are the newly added edges after the update.
Risks
Metrics
References
Checklist
docs/.docs/README.msand gave consideration to how discoverable or not my documentation is.Changelog.md. If this PR did not mark a release, I added my changes into an# Unreleasedsection at the top..fossa.ymlorfossa-deps.{json.yml}, I updateddocs/references/files/*.schema.jsonAND I have updated example files used byfossa initcommand. You may also need to update these if you have added/removed new dependency type (e.g.pip) or analysis target type (e.g.poetry).docs/references/subcommands/<subcommand>.md.