Skip to content

Commit 51a8557

Browse files
authored
fix(firestore): rename internal Version class to FirestoreAdminVersion to avoid duplicate class conflict (#13397)
bom-content-test [failed](https://github.com/googleapis/java-cloud-bom/actions/runs/27166666222/job/80195524697?pr=7496) in the releasing PR of java-cloud-bom due to duplicated class error. This would result in build-time failures in customer's applications if they have static analysis tools enabled. As a short term fix, replaced the internal Version class in google-cloud-firestore-admin with FirestoreAdminVersion to avoid the error. In the long term, we should have static checks in this repo to prevent this from happening.
1 parent 2499316 commit 51a8557

4 files changed

Lines changed: 23 additions & 5 deletions

File tree

java-firestore/.OwlBot-hermetic.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ deep-remove-regex:
44
- /java-firestore/google-cloud-firestore/src/.*/java/com/google/cloud/firestore/v1/
55
- /java-firestore/google-cloud-firestore-admin/src
66
deep-preserve-regex:
7-
- /java-firestore/.*google-.*/src/main/java/.*/stub/Version.java
7+
- /java-firestore/.*google-.*/src/main/java/.*/stub/(Version|FirestoreAdminVersion).java
88
- /java-firestore/google-.*/src/test/java/com/google/cloud/.*/v.*/it/IT.*Test.java
99
- /java-firestore/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/DocumentPathName.java
1010
- /java-firestore/proto-google-cloud-firestore-v1/src/main/java/com/google/firestore/v1/AnyPathName.java

java-firestore/google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminStubSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ protected LibraryMetadata getLibraryMetadata() {
757757
return LibraryMetadata.newBuilder()
758758
.setArtifactName("com.google.cloud:google-cloud-firestore")
759759
.setRepository("googleapis/google-cloud-java")
760-
.setVersion(Version.VERSION)
760+
.setVersion(FirestoreAdminVersion.VERSION)
761761
.build();
762762
}
763763

java-firestore/google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/Version.java renamed to java-firestore/google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.google.api.core.InternalApi;
2020

2121
@InternalApi("For internal use only")
22-
final class Version {
22+
final class FirestoreAdminVersion {
2323
// {x-version-update-start:google-cloud-firestore:current}
2424
static final String VERSION = "3.43.0";
2525
// {x-version-update-end}

java-firestore/owlbot.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,28 @@
3838
service = 'firestore'
3939
version = 'v1'
4040
s.replace(f'owl-bot-staging/v1/proto-google-cloud-{service}-{version}-java/src/**/*.java', protobuf_header, f'{license_header}{protobuf_header}')
41-
service == 'firestore-admin'
41+
service = 'firestore-admin'
4242
s.replace(f'owl-bot-staging/v1/grpc-google-cloud-{service}-{version}-java/src/**/*.java', bad_license_header, license_header)
4343
s.replace(f'owl-bot-staging/v1/proto-google-cloud-{service}-{version}-java/src/**/*.java', bad_license_header, license_header)
44-
s.move(library)
44+
if "firestore-admin" in str(library):
45+
s.move(library, excludes=["**/Version.java"])
46+
s.move(
47+
f"{library}/src/main/java/com/google/cloud/firestore/v1/stub/Version.java",
48+
"google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminVersion.java"
49+
)
50+
s.replace(
51+
"google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminVersion.java",
52+
"class Version",
53+
"class FirestoreAdminVersion"
54+
)
55+
# Replace Version.VERSION with FirestoreAdminVersion.VERSION in stub files
56+
s.replace(
57+
"google-cloud-firestore-admin/src/main/java/com/google/cloud/firestore/v1/stub/**/*.java",
58+
"Version.VERSION",
59+
"FirestoreAdminVersion.VERSION",
60+
)
61+
else:
62+
s.move(library)
4563
s.remove_staging_dirs()
4664
java.common_templates(
4765
monorepo=True,

0 commit comments

Comments
 (0)