GoogleCloudPlatform / GoogleCloudPlatform/cloud-opensource-java

Linkage Checker to provide a diagnosis for linkage error

Open
#487 0 comments 0 reactions 0 assignees View on GitHub
enhancement p2
Dominant language
Java
Stars
163
Forks
80
PR merge metrics
No merged PRs in 30d

Description

# Background

When there is a linkage error, people need to check why it happens ([Example case of google-api-client-1.27.0](https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/468)). It would be nice if the tool provides a diagnosis.

# Example Information

With the case of google-api-client

- `GoogleApacheHttpTransport` in `google-api-client:1.27.0` uses `com.google.api.client.http.apache.ApacheHttpTransport$Builder` but the class is not found in the class path. (The tool already has this information)
- `com.google.http-client:google-http-client:1.27.0` has the missing class. But the class path has `com.google.http-client:google-http-client:1.28.0` instead. (new information)

# Test Case

```
LinkageChecker -a com.google.cloud:google-cloud-bigtable:0.81.0-alpha,com.google.cloud:google-cloud-core-http:1.63.0
```

# Data

- With #498, Artifact.getFile().getPath() gives jar file path.
- ClassDumper already has jarFileToClasses and classToJarFiles. This enhancement may leverage these maps.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.