Conversation

medb

Fixes an issue when there are 2 versions of this library in a class path - 1) shaded/relocated library of x.x.x version inside a "jar-with-dependencies" and 2) non-shaded library of y.y.y version.

Because both of these libraries will load non-shaded google-http-client.properties file they will use the same y.y.y version even though shaded library has a x.x.x version.

@medbmedb requested a review from a team as a code owner May 21, 2020 04:32
@googlebotgooglebot added the cla: yesThis human has signed the Contributor License Agreement.label May 21, 2020
@chingor13chingor13 changed the title Make google-http-client.properties file shading friendly fix: make google-http-client.properties file shading friendly Jun 19, 2020
@BenWhitehead

@medb Can you describe why this change is needed? The properties file should be able to be loaded from an uber-jar or other shaded jar just fine without modification.

I have a local project on my machine I used to execute a few commands against Firestore (which is a downstream consumer of this library). This project is packaged as a "jar-with-dependencies" file. HttpRequest is able to load the properties files successfully as-is.

❱ java -jar target/cleanup-0.1.1-SNAPSHOT-jar-with-dependencies.jar 
HttpRequest.VERSION = 1.34.2

From this code

public static void main(String[] args) {
  System.out.println("HttpRequest.VERSION = " + com.google.api.client.http.HttpRequest.VERSION);
}

@medb

@BenWhitehead The issue is that if there are 2 versions of this library in a class path - 1) shaded/relocated library of x.x.x version inside a "jar-with-dependencies" and 2) non-shaded library of y.y.y version.

Because both of these libraries will load non-shaded google-http-client.properties they will use the same y.y.y version even though shaded library has a x.x.x version.

@BenWhitehead

@chingor13 What are you thoughts here on moving the properties file? We might need to move it for the couple other libraries we introduced this same pattern in.

@chingor13chingor13 added the kokoro:force-runAdd this label to force Kokoro to re-run the tests.label Oct 13, 2020
@kokoro-teamkokoro-team removed the kokoro:force-runAdd this label to force Kokoro to re-run the tests.label Oct 13, 2020
@chingor13chingor13 merged commit 860bb05 into googleapis:master Oct 13, 2020
@medbmedb deleted the -2 branch October 13, 2020 16:35
ruomengz added a commit to ruomengz/google-api-java-client that referenced this pull request Apr 28, 2023
…operties

- Make it file shading friendly like googleapis/google-http-java-client#1046
- Avoid set proguard config to read this file. b/279795343#comment2
Sign up for free to join this conversation on . Already have an account? Sign in to comment
cla: yesThis human has signed the Contributor License Agreement.
None yet

Successfully merging this pull request may close these issues.