Skip to content
This repository was archived by the owner on May 14, 2026. It is now read-only.

Commit 650feee

Browse files
authored
[ggj] fix: treat version-less APIs as GAs (#648)
* fix: fix dep ordering in Bazel dedupe rules * fix: treat version-less APIs as GAs
1 parent 7a22323 commit 650feee

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

src/main/java/com/google/api/generator/gapic/composer/utils/PackageChecker.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ public static boolean isGaApi(String pakkage) {
4343
break;
4444
}
4545
}
46-
Preconditions.checkState(isFound, "No version component found in package %s", pakkage);
46+
if (!isFound) {
47+
// No version component is present (applies to APIs like LRO), so treat this as a GA version.
48+
return true;
49+
}
4750
String versionSubstr = versionComponent.replace(matcher.group(), "");
4851
return Strings.isNullOrEmpty(versionSubstr)
4952
|| (!versionSubstr.contains("alpha") && !versionSubstr.contains("beta"));

src/test/java/com/google/api/generator/gapic/composer/utils/PackageCheckerTest.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,25 @@
1616

1717
import static junit.framework.Assert.assertFalse;
1818
import static junit.framework.Assert.assertTrue;
19-
import static org.junit.Assert.assertThrows;
2019

2120
import org.junit.Test;
2221

2322
public class PackageCheckerTest {
2423
@Test
25-
public void isGaApi_normalExpectedPackageStructure() {
24+
public void isGaApi_gaVersionPresent() {
2625
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v1.services"));
2726
assertTrue(PackageChecker.isGaApi("com.google.cloud.v1.foobar.services"));
2827
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v1"));
2928
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v999"));
3029
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v12345a"));
3130
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v999asdf"));
31+
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc.v1main"));
32+
assertTrue(PackageChecker.isGaApi("com.google.cloud.dataproc"));
33+
assertTrue(PackageChecker.isGaApi("com.google.longrunning"));
34+
}
35+
36+
@Test
37+
public void isGaApi_alphaBetaVersionPresent() {
3238
assertFalse(PackageChecker.isGaApi("com.google.cloud.dataproc.v1beta1"));
3339
assertFalse(PackageChecker.isGaApi("com.google.cloud.dataproc.v1alpha1"));
3440
assertFalse(PackageChecker.isGaApi("com.google.cloud.dataproc.v1beta"));
@@ -37,12 +43,4 @@ public void isGaApi_normalExpectedPackageStructure() {
3743
assertFalse(PackageChecker.isGaApi("com.google.cloud.dataproc.v1p4beta"));
3844
assertFalse(PackageChecker.isGaApi("com.google.cloud.asset.v1beta1"));
3945
}
40-
41-
@Test
42-
public void isGaApi_invalidPackageStructure() {
43-
assertThrows(
44-
IllegalStateException.class,
45-
() -> PackageChecker.isGaApi("com.google.cloud.dataproc.foo.bar"));
46-
assertThrows(IllegalStateException.class, () -> PackageChecker.isGaApi(""));
47-
}
4846
}

0 commit comments

Comments
 (0)