@@ -27,6 +27,79 @@ source ${scriptDir}/common.sh
2727mvn -version
2828echo  ${JOB_TYPE} 
2929
30+ #  Store the current Java version since the version may change when installing sdk-platform-java
31+ current_java_home=$JAVA_HOME 
32+ 
33+ #  testing-infra-docker has Java 11 installed in java8 docker container. Use this as sdk-platform-java
34+ #  needs Java 11+ to run with GraalVM. For GH actions, JAVA11_HOME does not exist and would skip this.
35+ if  [ !  -z  " ${JAVA11_HOME} " ;  then 
36+  export  JAVA_HOME=" ${JAVA11_HOME} " 
37+  export  PATH=${JAVA_HOME} /bin:$PATH 
38+ fi 
39+ 
40+ #  Get the current proto runtime version used in this repo
41+ CURRENT_PROTO_VERSION=$( mvn -ntp help:effective-pom | 
42+ sed -n " /<artifactId>protobuf-java<\/artifactId>/,/<\/dependency>/ { 
43+  /<version>/{ 
44+  s/<version>\(.*\)<\/version>/\1/p 
45+  q 
46+  } 
47+ }"   |  sed -e ' s/^[[:space:]]*//' ' s/[[:space:]]*$//' ) 
48+ echo  " The current proto version is: ${CURRENT_PROTO_VERSION} " 
49+ 
50+ #  Find the latest proto runtime version available
51+ LATEST_PROTO_VERSION=$( curl -s https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/maven-metadata.xml |  sed -n ' /<release>/s/.*<release>\(.*\)<\/release>.*/\1/p' ) 
52+ echo  " The latest proto version is: ${LATEST_PROTO_VERSION} " 
53+ 
54+ #  Only reinstall shared-deps again to test for a newer proto version
55+ if  [[ " ${CURRENT_PROTO_VERSION} " !=  " ${LATEST_PROTO_VERSION} " ;  then 
56+  pushd  /tmp
57+  git clone https://github.com/googleapis/sdk-platform-java.git
58+  pushd  sdk-platform-java
59+  pushd  gapic-generator-java-pom-parent
60+  sed -i " /<protobuf.version>.*<\/protobuf.version>/s/\(.*<protobuf.version>\).*\(<\/protobuf.version>\)/\1${LATEST_PROTO_VERSION} \2/" 
61+  #  sdk-platform-java
62+  popd 
63+ 
64+  pushd  sdk-platform-java-config
65+  #  Get current Shared-Deps version in sdk-platform-java
66+  SHARED_DEPS_VERSION=$( mvn -ntp help:effective-pom | 
67+  sed -n " /<artifactId>sdk-platform-java-config<\/artifactId>/,/<\/dependency>/ { 
68+  /<version>/{ 
69+  s/<version>\(.*\)<\/version>/\1/p 
70+  q 
71+  } 
72+  }"   |  sed -e ' s/^[[:space:]]*//' ' s/[[:space:]]*$//' ) 
73+  echo  " Shared-Deps Version: ${SHARED_DEPS_VERSION} " 
74+  #  sdk-platform-java
75+  popd 
76+ 
77+  mvn clean install -q -ntp \
78+  -DskipTests=true \
79+  -Dclirr.skip=true \
80+  -Denforcer.skip=true \
81+  -T 1C
82+  #  /tmp
83+  popd 
84+ 
85+  #  Back to the original directory of the repo
86+  popd 
87+  #  Find all the poms with a reference to shared-deps and update to the new local version
88+  poms=($( find .  -name pom.xml) 
89+  for  pom  in  " ${poms[@]} " ;  do 
90+  if  grep -q " sdk-platform-java-config" " ${pom} " ;  then 
91+  echo  " Updating the pom: ${pom}  to use shared-deps version: ${SHARED_DEPS_VERSION} " 
92+  sed -i -E " /<groupId>com.google.cloud<\/groupId>.*<artifactId>sdk-platform-java-config<\/artifactId>/ {
93+  s/(<version>)[^<]+(<\/version>)/\1${SHARED_DEPS_VERSION} \2/ 
94+  }"   " ${pom} " 
95+  fi 
96+  done 
97+ fi 
98+ 
99+ #  Reset back to the original Java version if changed
100+ export  JAVA_HOME=" ${current_java_home} " 
101+ export  PATH=${JAVA_HOME} /bin:$PATH 
102+ 
30103#  attempt to install 3 times with exponential backoff (starting with 10 seconds)
31104retry_with_backoff 3 10 \
32105 mvn install -B -V -ntp \
0 commit comments