Skip to content

Commit baea8cb

Browse files
authored
registry: fix provider discovery (#320)
1 parent bf575e6 commit baea8cb

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

registry/registry-client/src/main/java/com/salesforce/multicloudj/registry/driver/AbstractRegistry.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ protected AbstractRegistry(Builder<?, ?> builder) {
3737
this.proxyEndpoint = builder.getProxyEndpoint();
3838
this.credentialsOverrider = builder.getCredentialsOverrider();
3939
this.targetPlatform = builder.getPlatform() != null ? builder.getPlatform() : Platform.DEFAULT;
40-
41-
if (StringUtils.isBlank(registryEndpoint)) {
42-
throw new InvalidArgumentException("Registry endpoint is required");
43-
}
4440
}
4541

4642
@Override

registry/registry-client/src/test/java/com/salesforce/multicloudj/registry/driver/AbstractRegistryTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,9 @@ public TestBuilder self() {
330330

331331
@Override
332332
public TestRegistry build() {
333+
if (registryEndpoint == null || registryEndpoint.isBlank()) {
334+
throw new InvalidArgumentException("Registry endpoint is required");
335+
}
333336
return new TestRegistry(this);
334337
}
335338
}

registry/registry-gcp/src/main/java/com/salesforce/multicloudj/registry/gcp/GcpRegistry.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.salesforce.multicloudj.common.exceptions.SubstrateSdkException;
1010
import com.salesforce.multicloudj.common.exceptions.UnknownException;
1111
import com.salesforce.multicloudj.common.gcp.CommonErrorCodeMapping;
12+
import com.salesforce.multicloudj.common.gcp.GcpConstants;
1213
import com.salesforce.multicloudj.common.gcp.GcpCredentialsProvider;
1314
import com.salesforce.multicloudj.registry.driver.AbstractRegistry;
1415
import com.salesforce.multicloudj.registry.driver.OciRegistryClient;
@@ -29,7 +30,6 @@
2930
@AutoService(AbstractRegistry.class)
3031
public class GcpRegistry extends AbstractRegistry {
3132

32-
public static final String PROVIDER_ID = "gcp";
3333
private static final String GCP_AUTH_USERNAME = "oauth2accesstoken";
3434
private static final String CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform";
3535

@@ -41,9 +41,13 @@ public class GcpRegistry extends AbstractRegistry {
4141
/** Lazily initialized credentials with double-checked locking. */
4242
private volatile GoogleCredentials credentials;
4343

44+
public GcpRegistry() {
45+
this(new Builder());
46+
}
47+
4448
public GcpRegistry(Builder builder) {
4549
super(builder);
46-
this.ociClient = new OciRegistryClient(registryEndpoint, this);
50+
this.ociClient = registryEndpoint != null ? new OciRegistryClient(registryEndpoint, this) : null;
4751
}
4852

4953
@Override
@@ -140,7 +144,11 @@ public void close() throws Exception {
140144
}
141145
}
142146

143-
public static final class Builder extends AbstractRegistry.Builder<GcpRegistry, Builder> {
147+
public static class Builder extends AbstractRegistry.Builder<GcpRegistry, Builder> {
148+
149+
public Builder() {
150+
providerId(GcpConstants.PROVIDER_ID);
151+
}
144152

145153
@Override
146154
public Builder self() {
@@ -149,8 +157,6 @@ public Builder self() {
149157

150158
@Override
151159
public GcpRegistry build() {
152-
providerId(PROVIDER_ID);
153-
154160
if (StringUtils.isBlank(registryEndpoint)) {
155161
throw new InvalidArgumentException("Registry endpoint is required for GCP Artifact Registry");
156162
}

registry/registry-gcp/src/test/java/com/salesforce/multicloudj/registry/gcp/GcpRegistryTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@ void testBuilderAndBasicProperties() throws Exception {
6363
});
6464
}
6565

66+
@Test
67+
void testNoArgConstructor_ForServiceLoaderDiscovery() {
68+
GcpRegistry registry = new GcpRegistry();
69+
assertEquals("gcp", registry.getProviderId());
70+
assertNotNull(registry.builder());
71+
}
72+
6673
@Test
6774
void testGetAuthToken_Success() throws Exception {
6875
try (MockedStatic<GoogleCredentials> mockedStatic = mockStatic(GoogleCredentials.class)) {

0 commit comments

Comments
 (0)