Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: parent pom and gapic-generator-java-bom #1170

Merged
merged 15 commits into from
Dec 21, 2022
Merged
28 changes: 21 additions & 7 deletions .github/workflows/ci-maven.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ jobs:
- run: java -version
- name: Unit Tests
run: |
mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip
mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \
-Dfmt.skip

units-java8:
name: "units (8) except gapic-generator-java"
Expand Down Expand Up @@ -48,7 +49,8 @@ jobs:

# Why not compile? It's because the process needs to package jar so
# that gapic-generator-java module can use testlib modules of gax.
mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip -DskipTests
mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \
-DskipTests -Dfmt.skip
- name: Run test with Java 8 for all modules except gapic-generator-java
shell: bash
run: |
Expand All @@ -58,23 +60,35 @@ jobs:
# useIncrementalCompilation=false to avoid recompiling classes
# generated by Java 11 compiler above.
mvn -B -ntp test --projects '!gapic-generator-java' \
-Dcheckstyle.skip -Dmaven.compiler.useIncrementalCompilation=false
-Dcheckstyle.skip -Dmaven.compiler.useIncrementalCompilation=false \
-Dfmt.skip

units-java8-gapic-generator-java:
name: "units (8) for gapic-generator-java"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: temurin
cache: maven
- name: Install modules outside gapic-generator-java
shell: bash
run: |
mvn -B -ntp install --projects '!gapic-generator-java' \
-Dcheckstyle.skip -Dfmt.skip -DskipTests
- uses: actions/setup-java@v3
with:
java-version: 8
distribution: temurin
cache: maven
- run: java -version
- name: Run test only for gapic-generator-java
- name: Run test only for gapic-generator-java using Java 8
shell: bash
run: |
mvn -B -ntp verify --projects 'gapic-generator-java' -Dcheckstyle.skip
mvn -B -ntp verify --projects 'gapic-generator-java' \
-Dcheckstyle.skip -Dfmt.skip

lint:
runs-on: ubuntu-latest
Expand All @@ -87,5 +101,5 @@ jobs:
cache: maven
- run: java -version
- name: Java Linter
run: mvn fmt:check
working-directory: gapic-generator-java
# Exclude the root project
run: mvn -B -ntp --projects '!.' fmt:check
Comment on lines +104 to +105
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With this PR, gapic-generator-java alone does not work. So running the fmt:check plugin from the root.

11 changes: 6 additions & 5 deletions api-common-java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@
<groupId>com.google.api</groupId>
<artifactId>api-common</artifactId>
<packaging>jar</packaging>
<version>2.3.1</version><!-- {x-version-update:api-common:current} -->
<version>2.3.2-SNAPSHOT</version><!-- {x-version-update:api-common:current} -->
<name>API Common</name>
<url>https://github.com/googleapis/api-common-java</url>
<description>Common utilities for Google APIs in Java</description>

<parent>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-shared-config</artifactId>
<version>1.5.5</version>
<artifactId>gapic-generator-java-pom-parent</artifactId>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<relativePath>../gapic-generator-java-pom-parent</relativePath>
</parent>

<developers>
Expand Down Expand Up @@ -49,7 +50,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.auto.value</groupId>
Expand All @@ -69,7 +70,7 @@
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
<version>${javax.annotation-api.version}</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
Expand Down
99 changes: 99 additions & 0 deletions gapic-generator-java-bom/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<?xml version='1.0' encoding='UTF-8'?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.api</groupId>
<artifactId>gapic-generator-java-bom</artifactId>
<packaging>pom</packaging>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<name>GAPIC Generator Java BOM</name>
<description>
BOM for the libraries in gapic-generator-java repository. Users should not
depend on this artifact explicitly because this BOM is an implementation
detail of the Libraries BOM.
</description>

<parent>
<groupId>com.google.cloud</groupId>
<artifactId>gapic-generator-java-pom-parent</artifactId>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<relativePath>../gapic-generator-java-pom-parent</relativePath>
</parent>

<dependencyManagement>
<dependencies>
<!-- Major external dependencies -->
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-bom</artifactId>
<version>${grpc.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId>
<version>${protobuf.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<!-- Libraries published from this repositories -->
<dependency>
<groupId>com.google.api</groupId>
<artifactId>api-common</artifactId>
<version>2.3.2-SNAPSHOT</version><!-- {x-version-update:api-common:current} -->
</dependency>
<dependency>
<groupId>com.google.api</groupId>
<artifactId>gax-bom</artifactId>
<version>2.20.2-SNAPSHOT</version><!-- {x-version-update:gax:current} -->
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>grpc-google-common-protos</artifactId>
<version>2.11.1-SNAPSHOT</version><!-- {x-version-update:proto-google-common-protos:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-common-protos</artifactId>
<version>2.11.1-SNAPSHOT</version><!-- {x-version-update:proto-google-common-protos:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-iam-v1</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:proto-google-iam-v1:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-iam-v2</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:proto-google-iam-v2:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-iam-v2beta</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:proto-google-iam-v2beta:current} -->
</dependency>

<!-- Following test deps are kept to keep them consistent with versions above -->
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>grpc-google-iam-v1</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:grpc-google-iam-v1:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>grpc-google-iam-v2</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:grpc-google-iam-v2:current} -->
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>grpc-google-iam-v2beta</artifactId>
<version>1.6.23-SNAPSHOT</version><!-- {x-version-update:grpc-google-iam-v2beta:current} -->
</dependency>
</dependencies>

</dependencyManagement>

</project>
109 changes: 109 additions & 0 deletions gapic-generator-java-pom-parent/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" child.project.url.inherit.append.path="false">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.cloud</groupId>
<artifactId>gapic-generator-java-pom-parent</artifactId>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<packaging>pom</packaging>
<name>GAPIC Generator Java POM Parent</name>
<url>https://github.com/googleapis/google-cloud-java</url>
<description>
The top-level parent for all modules in the repository.
</description>
<parent>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-shared-config</artifactId>
<version>1.5.5</version>
<relativePath/>
</parent>

<properties>
<skipUnitTests>false</skipUnitTests>
<checkstyle.header.file>java.header</checkstyle.header.file>

<!-- External dependencies, expecially gRPC and Protobuf version, should be
consistent across modules in this repository -->
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
<grpc.version>1.51.1</grpc.version>
<guava.version>31.1-jre</guava.version>
<protobuf.version>3.21.10</protobuf.version>
</properties>

<developers>
<developer>
<id>suztomo</id>
<name>Tomo Suzuki</name>
<email>suztomo@google.com</email>
<organization>Google</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
</developers>
<organization>
<name>Google LLC</name>
</organization>
<scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false"
child.scm.url.inherit.append.path="false">
<connection>scm:git:git@github.com:googleapis/google-cloud-java.git</connection>
<developerConnection>scm:git:git@github.com:googleapis/google-cloud-java.git</developerConnection>
<url>https://github.com/googleapis/google-cloud-java</url>
<tag>HEAD</tag>
</scm>
<issueManagement>
<url>https://github.com/googleapis/google-cloud-java/issues</url>
<system>GitHub Issues</system>
</issueManagement>

<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>

<profiles>
<profile>
<!-- Only run checkstyle plugin on Java 11+ (checkstyle artifact only supports Java 11+) -->
<id>checkstyle-tests</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>checkstyle</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<headerLocation>${checkstyle.header.file}</headerLocation>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

<repositories>
<repository>
<id>google-maven-central-copy</id>
<name>Google Maven Central copy</name>
<url>https://maven-central.storage-download.googleapis.com/maven2</url>
</repository>
<repository>
<id>maven-central</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2</url>
</repository>
</repositories>
</project>
23 changes: 6 additions & 17 deletions gapic-generator-java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,24 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Should be in sync with repositories.bzl -->
<googleapis.commit>44d6bef0ca6db8bba3fb324c8186e694bcc4829c</googleapis.commit>
<gax.version>2.20.1</gax.version>
<grpc.version>1.51.1</grpc.version>
<protobuf.version>3.21.10</protobuf.version>
<auto-value.version>1.10.1</auto-value.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<parent>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-shared-config</artifactId>
<version>1.5.5</version>
<relativePath/>
<artifactId>gapic-generator-java-pom-parent</artifactId>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<relativePath>../gapic-generator-java-pom-parent</relativePath>
</parent>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.api</groupId>
<artifactId>gax-bom</artifactId>
<version>${gax.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-bom</artifactId>
<version>${grpc.version}</version>
<artifactId>gapic-generator-java-bom</artifactId>
<version>2.12.1-SNAPSHOT</version><!-- {x-version-update:gapic-generator-java:current} -->
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -410,7 +400,6 @@
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>${protobuf.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
Expand Down Expand Up @@ -448,7 +437,7 @@
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
<version>${javax.annotation-api.version}</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion gax-java/gax-bom/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {

archivesBaseName = 'gax-bom'

project.version = "2.20.1" // {x-version-update:gax-bom:current}
project.version = "2.20.1" // {x-version-update:gax:current}

def mavenJavaDir = "$buildDir/publications/mavenJava"
def mavenJavaBomOutputFile = file(mavenJavaDir + '/pom-default.xml')
Expand Down
Loading