Skip to content

Commit fbc48a8

Browse files
authored
xds: replace static initializers with hardcoded registration of 3 cert providers (#7606)
1 parent cffc07f commit fbc48a8

File tree

4 files changed

+28
-30
lines changed

4 files changed

+28
-30
lines changed

xds/src/main/java/io/grpc/xds/internal/certprovider/CertificateProviderRegistry.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ public CertificateProviderRegistry() {
3838
public static synchronized CertificateProviderRegistry getInstance() {
3939
if (instance == null) {
4040
instance = new CertificateProviderRegistry();
41+
// TODO(sanjaypujare): replace with Java's SPI mechanism and META-INF resource
42+
instance.register(new FileWatcherCertificateProviderProvider());
43+
instance.register(new DynamicReloadingCertificateProviderProvider());
44+
instance.register(new MeshCaCertificateProviderProvider());
4145
}
4246
return instance;
4347
}

xds/src/main/java/io/grpc/xds/internal/certprovider/DynamicReloadingCertificateProviderProvider.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,17 @@ final class DynamicReloadingCertificateProviderProvider implements CertificatePr
4343

4444
static final String DYNAMIC_RELOADING_PROVIDER_NAME = "gke-cas-certs";
4545

46-
static {
47-
CertificateProviderRegistry.getInstance()
48-
.register(
49-
new DynamicReloadingCertificateProviderProvider(
50-
DynamicReloadingCertificateProvider.Factory.getInstance(),
51-
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
52-
TimeProvider.SYSTEM_TIME_PROVIDER));
53-
}
54-
5546
final DynamicReloadingCertificateProvider.Factory dynamicReloadingCertificateProviderFactory;
5647
private final ScheduledExecutorServiceFactory scheduledExecutorServiceFactory;
5748
private final TimeProvider timeProvider;
5849

50+
DynamicReloadingCertificateProviderProvider() {
51+
this(
52+
DynamicReloadingCertificateProvider.Factory.getInstance(),
53+
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
54+
TimeProvider.SYSTEM_TIME_PROVIDER);
55+
}
56+
5957
@VisibleForTesting
6058
DynamicReloadingCertificateProviderProvider(
6159
DynamicReloadingCertificateProvider.Factory dynamicReloadingCertificateProviderFactory,

xds/src/main/java/io/grpc/xds/internal/certprovider/FileWatcherCertificateProviderProvider.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,17 @@ final class FileWatcherCertificateProviderProvider implements CertificateProvide
4545

4646
static final String FILE_WATCHER_PROVIDER_NAME = "file_watcher";
4747

48-
static {
49-
CertificateProviderRegistry.getInstance()
50-
.register(
51-
new FileWatcherCertificateProviderProvider(
52-
FileWatcherCertificateProvider.Factory.getInstance(),
53-
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
54-
TimeProvider.SYSTEM_TIME_PROVIDER));
55-
}
56-
5748
final FileWatcherCertificateProvider.Factory fileWatcherCertificateProviderFactory;
5849
private final ScheduledExecutorServiceFactory scheduledExecutorServiceFactory;
5950
private final TimeProvider timeProvider;
6051

52+
FileWatcherCertificateProviderProvider() {
53+
this(
54+
FileWatcherCertificateProvider.Factory.getInstance(),
55+
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
56+
TimeProvider.SYSTEM_TIME_PROVIDER);
57+
}
58+
6159
@VisibleForTesting
6260
FileWatcherCertificateProviderProvider(
6361
FileWatcherCertificateProvider.Factory fileWatcherCertificateProviderFactory,

xds/src/main/java/io/grpc/xds/internal/certprovider/MeshCaCertificateProviderProvider.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,23 @@ final class MeshCaCertificateProviderProvider implements CertificateProviderProv
7575
private static final String AUDIENCE_PREFIX = "identitynamespace:";
7676
static final String MESH_CA_NAME = "meshCA";
7777

78-
static {
79-
CertificateProviderRegistry.getInstance()
80-
.register(
81-
new MeshCaCertificateProviderProvider(
82-
StsCredentials.Factory.getInstance(),
83-
MeshCaCertificateProvider.MeshCaChannelFactory.getInstance(),
84-
new ExponentialBackoffPolicy.Provider(),
85-
MeshCaCertificateProvider.Factory.getInstance(),
86-
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
87-
TimeProvider.SYSTEM_TIME_PROVIDER));
88-
}
89-
9078
final StsCredentials.Factory stsCredentialsFactory;
9179
final MeshCaCertificateProvider.MeshCaChannelFactory meshCaChannelFactory;
9280
final BackoffPolicy.Provider backoffPolicyProvider;
9381
final MeshCaCertificateProvider.Factory meshCaCertificateProviderFactory;
9482
final ScheduledExecutorServiceFactory scheduledExecutorServiceFactory;
9583
final TimeProvider timeProvider;
9684

85+
MeshCaCertificateProviderProvider() {
86+
this(
87+
StsCredentials.Factory.getInstance(),
88+
MeshCaCertificateProvider.MeshCaChannelFactory.getInstance(),
89+
new ExponentialBackoffPolicy.Provider(),
90+
MeshCaCertificateProvider.Factory.getInstance(),
91+
ScheduledExecutorServiceFactory.DEFAULT_INSTANCE,
92+
TimeProvider.SYSTEM_TIME_PROVIDER);
93+
}
94+
9795
@VisibleForTesting
9896
MeshCaCertificateProviderProvider(
9997
StsCredentials.Factory stsCredentialsFactory,

0 commit comments

Comments
 (0)