Skip to content

Commit f4ac820

Browse files
authored
Tolerate missing GCP dependencies (#214)
## Changes <!-- Summary of your changes that are easy to understand --> ## Tests <!-- How is this tested? -->
1 parent 0fc085f commit f4ac820

File tree

1 file changed

+29
-13
lines changed

1 file changed

+29
-13
lines changed

databricks-sdk-java/src/main/java/com/databricks/sdk/core/DefaultCredentialsProvider.java

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.databricks.sdk.core.oauth.AzureServicePrincipalCredentialsProvider;
44
import com.databricks.sdk.core.oauth.ExternalBrowserCredentialsProvider;
55
import com.databricks.sdk.core.oauth.OAuthM2MServicePrincipalCredentialsProvider;
6+
import java.util.ArrayList;
67
import java.util.Arrays;
78
import java.util.List;
89
import org.slf4j.Logger;
@@ -11,7 +12,20 @@
1112
public class DefaultCredentialsProvider implements CredentialsProvider {
1213
private static final Logger LOG = LoggerFactory.getLogger(DefaultCredentialsProvider.class);
1314

14-
private List<CredentialsProvider> providers;
15+
private static final List<Class<?>> providerClasses =
16+
Arrays.asList(
17+
PatCredentialsProvider.class,
18+
BasicCredentialsProvider.class,
19+
OAuthM2MServicePrincipalCredentialsProvider.class,
20+
AzureServicePrincipalCredentialsProvider.class,
21+
AzureCliCredentialsProvider.class,
22+
ExternalBrowserCredentialsProvider.class,
23+
DatabricksCliCredentialsProvider.class,
24+
NotebookNativeCredentialsProvider.class,
25+
GoogleCredentialsCredentialsProvider.class,
26+
GoogleIdCredentialsProvider.class);
27+
28+
private final List<CredentialsProvider> providers;
1529

1630
private String authType = "default";
1731

@@ -20,18 +34,20 @@ public String authType() {
2034
}
2135

2236
public DefaultCredentialsProvider() {
23-
providers =
24-
Arrays.asList(
25-
new PatCredentialsProvider(),
26-
new BasicCredentialsProvider(),
27-
new OAuthM2MServicePrincipalCredentialsProvider(),
28-
new AzureServicePrincipalCredentialsProvider(),
29-
new AzureCliCredentialsProvider(),
30-
new ExternalBrowserCredentialsProvider(),
31-
new DatabricksCliCredentialsProvider(),
32-
new NotebookNativeCredentialsProvider(),
33-
new GoogleCredentialsCredentialsProvider(),
34-
new GoogleIdCredentialsProvider());
37+
providers = new ArrayList<>();
38+
for (Class<?> clazz : providerClasses) {
39+
try {
40+
providers.add((CredentialsProvider) clazz.newInstance());
41+
} catch (NoClassDefFoundError | InstantiationException | IllegalAccessException e) {
42+
LOG.warn(
43+
"Failed to instantiate credentials provider: "
44+
+ clazz.getName()
45+
+ ", skipping. Cause: "
46+
+ e.getClass().getCanonicalName()
47+
+ ": "
48+
+ e.getMessage());
49+
}
50+
}
3551
}
3652

3753
@Override

0 commit comments

Comments
 (0)