From 15862fe37148f838539233332132c42b66db31ed Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 18:33:21 -0400 Subject: [PATCH 1/8] chore: remove env setup --- .github/workflows/ci.yaml | 32 ------------------------- .github/workflows/sonar.yaml | 4 ---- gapic-generator-java-pom-parent/pom.xml | 17 ------------- gax-java/gax/pom.xml | 19 --------------- 4 files changed, 72 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 01b2a3188c..9c1b26d668 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,14 +22,6 @@ jobs: run: | mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ -Dfmt.skip -DenableTestCoverage - # The `envVarTest` profile runs tests that require an environment variable - - name: Env Var Tests - run: | - mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ - -Dfmt.skip -DenableTestCoverage -PenvVarTest - # Set the Env Var for this step only - env: - GOOGLE_CLOUD_UNIVERSE_DOMAIN: random.com - run: bazelisk version - name: Install Maven modules run: | @@ -72,14 +64,6 @@ jobs: run: | mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ -Dfmt.skip -DenableTestCoverage - # The `envVarTest` profile runs tests that require an environment variable - - name: Env Var Tests - run: | - mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ - -Dfmt.skip -DenableTestCoverage -PenvVarTest - # Set the Env Var for this step only - env: - GOOGLE_CLOUD_UNIVERSE_DOMAIN: random.com - run: bazelisk version - name: Install Maven modules run: | @@ -114,22 +98,6 @@ jobs: mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \ -Dfmt.skip \ -Djvm="${JAVA8_HOME}/bin/java" - # The `envVarTest` profile runs tests that require an environment variable - - name: Compile with Java 17 and run tests with Java 8 (Env Var Tests) - shell: bash - run: | - set -x - export JAVA_HOME=$JAVA_HOME - export PATH=${JAVA_HOME}/bin:$PATH - # Maven surefire plugin lets us to specify the JVM when running tests via - # the "jvm" system property. - export GOOGLE_CLOUD_UNIVERSE_DOMAIN=random.com - mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ - -Dfmt.skip -DenableTestCoverage -Dsurefire.failIfNoSpecifiedTests=false \ - -PenvVarTest - # Set the Env Var for this step only - env: - GOOGLE_CLOUD_UNIVERSE_DOMAIN: random.com build-java8-gapic-generator-java: name: "build(8) for gapic-generator-java" diff --git a/.github/workflows/sonar.yaml b/.github/workflows/sonar.yaml index 585893942e..6b5b70a257 100644 --- a/.github/workflows/sonar.yaml +++ b/.github/workflows/sonar.yaml @@ -47,10 +47,6 @@ jobs: tar -xf showcase-* ./gapic-showcase run & cd - - # Intentionally do not run the Env Var Tests (no -PenvVarTests) as setting the Env Var - # may alter the results for other tests that use Env Var in the logic. Adding a Sonar - # step for a few tests (env var tests) may be overkill and should be better covered - # when we can upgrade to JUnit 5 (https://github.com/googleapis/sdk-platform-java/issues/1611#issuecomment-1970079325) - name: Build and analyze for full test coverage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any diff --git a/gapic-generator-java-pom-parent/pom.xml b/gapic-generator-java-pom-parent/pom.xml index 9d0d87dace..c9d4575f5d 100644 --- a/gapic-generator-java-pom-parent/pom.xml +++ b/gapic-generator-java-pom-parent/pom.xml @@ -182,23 +182,6 @@ - - envVarTest - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - **/*.java - - - - - - diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index 7f706b741a..b695c69cd3 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -104,27 +104,8 @@ maven-surefire-plugin -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" - - !EndpointContextTest#endpointContextBuild_universeDomainEnvVarSet+endpointContextBuild_multipleUniverseDomainConfigurations_clientSettingsHasPriority - - - - envVarTest - - - - org.apache.maven.plugins - maven-surefire-plugin - - EndpointContextTest#endpointContextBuild_universeDomainEnvVarSet+endpointContextBuild_multipleUniverseDomainConfigurations_clientSettingsHasPriority - - - - - - \ No newline at end of file From 315952e0748543fdcc592b25b1e88057c15ff557 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 18:45:37 -0400 Subject: [PATCH 2/8] use junit-pioneer --- gax-java/gax/pom.xml | 8 +++++++- .../java/com/google/api/gax/rpc/EndpointContextTest.java | 4 +++- gax-java/pom.xml | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index b695c69cd3..1577b55c24 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -103,7 +103,13 @@ org.apache.maven.plugins maven-surefire-plugin - -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" + + -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" + + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java index 98a32bc05a..0a8bfa5d7c 100644 --- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java +++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java @@ -40,6 +40,7 @@ import java.io.IOException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junitpioneer.jupiter.SetEnvironmentVariable; import org.mockito.Mockito; class EndpointContextTest { @@ -339,6 +340,7 @@ void endpointContextBuild_gdchFlow_noUniverseDomain_customEndpoint() throws IOEx // For this test running locally or in CI, check that the Env Var is set properly. // This test should only run when the maven profile `EnvVarTest` is enabled. @Test + @SetEnvironmentVariable(key = "GOOGLE_CLOUD_UNIVERSE_DOMAIN", value = "random.com") void endpointContextBuild_universeDomainEnvVarSet() throws IOException { String envVarUniverseDomain = "random.com"; EndpointContext endpointContext = @@ -354,9 +356,9 @@ void endpointContextBuild_universeDomainEnvVarSet() throws IOException { // For this test running locally or in CI, check that the Env Var is set properly. // This test should only run when the maven profile `EnvVarTest` is enabled. @Test + @SetEnvironmentVariable(key = "GOOGLE_CLOUD_UNIVERSE_DOMAIN", value = "random.com") void endpointContextBuild_multipleUniverseDomainConfigurations_clientSettingsHasPriority() throws IOException { - // This test has `GOOGLE_CLOUD_UNIVERSE_DOMAIN` = `random.com` String clientSettingsUniverseDomain = "clientSettingsUniverseDomain.com"; EndpointContext endpointContext = defaultEndpointContextBuilder diff --git a/gax-java/pom.xml b/gax-java/pom.xml index 9adaacbbff..8737de90a3 100644 --- a/gax-java/pom.xml +++ b/gax-java/pom.xml @@ -205,6 +205,12 @@ test + + org.junit-pioneer + junit-pioneer + 2.2.0 + test + From af2965eeed1991ade6fa1a432553d1a3ffe3169e Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 18:48:06 -0400 Subject: [PATCH 3/8] change BUILD.bazel --- gax-java/dependencies.properties | 1 + gax-java/gax/BUILD.bazel | 1 + 2 files changed, 2 insertions(+) diff --git a/gax-java/dependencies.properties b/gax-java/dependencies.properties index c2da1495d5..afa277876f 100644 --- a/gax-java/dependencies.properties +++ b/gax-java/dependencies.properties @@ -88,3 +88,4 @@ maven.net_bytebuddy_byte_buddy=net.bytebuddy:byte-buddy:1.14.16 maven.org_objenesis_objenesis=org.objenesis:objenesis:2.6 maven.org_junit_jupiter_junit_jupiter_api=org.junit.jupiter:junit-jupiter-api:5.10.2 maven.org_junit_jupiter_junit_jupiter_params=org.junit.jupiter:junit-jupiter-params:5.10.2 +maven.org_junit_pioneer_junit_pioneer=org.junit-pioneer:junit-pioneer:2.2.0 diff --git a/gax-java/gax/BUILD.bazel b/gax-java/gax/BUILD.bazel index 5dd3ff96bd..dae2f747f9 100644 --- a/gax-java/gax/BUILD.bazel +++ b/gax-java/gax/BUILD.bazel @@ -41,6 +41,7 @@ _TEST_COMPILE_DEPS = [ "@net_bytebuddy_byte_buddy//jar", "@org_objenesis_objenesis//jar", "@com_googlecode_java_diff_utils_diffutils//jar", + "@org_junit_pioneer_junit_pioneer//jar", ] java_library( From d72208000a2e78469987262829db4b1c491734b7 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 20:14:30 -0400 Subject: [PATCH 4/8] set jdk for maven-surefire-plugin --- gax-java/gax/pom.xml | 59 +++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index 1577b55c24..4e62a48a0a 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -98,20 +98,49 @@ - - - org.apache.maven.plugins - maven-surefire-plugin - - - -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" - - --add-opens java.base/java.util=ALL-UNNAMED - --add-opens java.base/java.lang=ALL-UNNAMED - - - - \ No newline at end of file + + + + java17-unit-test + + [17,) + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" + + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + + + + + + + java16-unit-test + + (,16] + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" + + + + + + + From 88370ae1feeb73080cf588606a93c87c62da1ddf Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 20:19:38 -0400 Subject: [PATCH 5/8] add profile --- .github/workflows/ci.yaml | 3 ++- gax-java/gax/pom.xml | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9c1b26d668..1435e26ca5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -97,7 +97,8 @@ jobs: # the "jvm" system property. mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \ -Dfmt.skip \ - -Djvm="${JAVA8_HOME}/bin/java" + -Djvm="${JAVA8_HOME}/bin/java" \ + -Pjava16-unit-test build-java8-gapic-generator-java: name: "build(8) for gapic-generator-java" diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index 4e62a48a0a..aed637a3aa 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -119,7 +119,8 @@ see https://junit-pioneer.org/docs/environment-variables/#warnings-for-reflective-access --> --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED - + + @@ -137,7 +138,8 @@ -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" - + + From f64712f4e3fddd728a505ef20704ea65f9e199cb Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 20:29:44 -0400 Subject: [PATCH 6/8] reset plugin --- .github/workflows/ci.yaml | 2 +- gax-java/gax/pom.xml | 58 +++++++++------------------------------ 2 files changed, 14 insertions(+), 46 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1435e26ca5..8b692e756a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -98,7 +98,7 @@ jobs: mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \ -Dfmt.skip \ -Djvm="${JAVA8_HOME}/bin/java" \ - -Pjava16-unit-test + -DargLine="" build-java8-gapic-generator-java: name: "build(8) for gapic-generator-java" diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index aed637a3aa..de5dda81d5 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -98,51 +98,19 @@ + + org.apache.maven.plugins + maven-surefire-plugin + + + -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" + + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + + + - - - - java17-unit-test - - [17,) - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" - - --add-opens java.base/java.util=ALL-UNNAMED - --add-opens java.base/java.lang=ALL-UNNAMED - - - - - - - - java16-unit-test - - (,16] - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - -Djava.util.logging.SimpleFormatter.format="%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n" - - - - - - - From 4d097946be83a88174ef0cb290f64c6295a49329 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Wed, 22 May 2024 21:01:41 -0400 Subject: [PATCH 7/8] overwrite surefire plugin --- .github/workflows/ci.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8b692e756a..845a47eaac 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -63,7 +63,7 @@ jobs: - name: Unit Tests run: | mvn test --batch-mode --no-transfer-progress -Dcheckstyle.skip \ - -Dfmt.skip -DenableTestCoverage + - run: bazelisk version - name: Install Maven modules run: | @@ -95,10 +95,14 @@ jobs: export PATH=${JAVA_HOME}/bin:$PATH # Maven surefire plugin lets us to specify the JVM when running tests via # the "jvm" system property. - mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \ + mvn org.apache.maven.plugins:maven-surefire-plugin:test \ + verify \ + --batch-mode \ + --no-transfer-progress \ + -Dcheckstyle.skip \ -Dfmt.skip \ -Djvm="${JAVA8_HOME}/bin/java" \ - -DargLine="" + -DargLine="-Djava.util.logging.SimpleFormatter.format='%1$tY %1$tl:%1$tM:%1$tS.%1$tL %2$s %4$s: %5$s%6$s%n'" build-java8-gapic-generator-java: name: "build(8) for gapic-generator-java" From ec4277d83f129a8f5ee0f79031864e71298ad832 Mon Sep 17 00:00:00 2001 From: Joe Wang Date: Thu, 23 May 2024 11:06:39 -0400 Subject: [PATCH 8/8] refactor --- .../java/com/google/api/gax/rpc/EndpointContextTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java index 0a8bfa5d7c..ab298e039d 100644 --- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java +++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java @@ -338,9 +338,8 @@ void endpointContextBuild_gdchFlow_noUniverseDomain_customEndpoint() throws IOEx // This Universe Domain should match the `GOOGLE_CLOUD_UNIVERSE_DOMAIN` Env Var // For this test running locally or in CI, check that the Env Var is set properly. - // This test should only run when the maven profile `EnvVarTest` is enabled. @Test - @SetEnvironmentVariable(key = "GOOGLE_CLOUD_UNIVERSE_DOMAIN", value = "random.com") + @SetEnvironmentVariable(key = EndpointContext.GOOGLE_CLOUD_UNIVERSE_DOMAIN, value = "random.com") void endpointContextBuild_universeDomainEnvVarSet() throws IOException { String envVarUniverseDomain = "random.com"; EndpointContext endpointContext = @@ -354,9 +353,8 @@ void endpointContextBuild_universeDomainEnvVarSet() throws IOException { // This Universe Domain should match the `GOOGLE_CLOUD_UNIVERSE_DOMAIN` Env Var // For this test running locally or in CI, check that the Env Var is set properly. - // This test should only run when the maven profile `EnvVarTest` is enabled. @Test - @SetEnvironmentVariable(key = "GOOGLE_CLOUD_UNIVERSE_DOMAIN", value = "random.com") + @SetEnvironmentVariable(key = EndpointContext.GOOGLE_CLOUD_UNIVERSE_DOMAIN, value = "random.com") void endpointContextBuild_multipleUniverseDomainConfigurations_clientSettingsHasPriority() throws IOException { String clientSettingsUniverseDomain = "clientSettingsUniverseDomain.com";