Skip to content

Commit 85b8868

Browse files
committed
Replace deprecated DatabaseAuthProvider API
1 parent 35efa6c commit 85b8868

File tree

9 files changed

+64
-59
lines changed

9 files changed

+64
-59
lines changed

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/datagrip/auth/SecretsManagerAuth.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ import com.fasterxml.jackson.databind.DeserializationFeature
77
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
88
import com.fasterxml.jackson.module.kotlin.readValue
99
import com.intellij.credentialStore.Credentials
10-
import com.intellij.database.access.DatabaseCredentials
1110
import com.intellij.database.dataSource.DatabaseAuthProvider.AuthWidget
1211
import com.intellij.database.dataSource.DatabaseConnectionInterceptor.ProtoConnection
1312
import com.intellij.database.dataSource.DatabaseCredentialsAuthProvider
1413
import com.intellij.database.dataSource.LocalDataSource
15-
import com.intellij.openapi.project.Project
1614
import kotlinx.coroutines.future.future
1715
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient
1816
import software.aws.toolkits.core.ConnectionSettings
@@ -45,8 +43,7 @@ class SecretsManagerAuth : DatabaseAuthProviderCompatabilityAdapter {
4543

4644
override fun getDisplayName(): String = message("datagrip.auth.secrets_manager")
4745

48-
override fun createWidget(project: Project?, creds: DatabaseCredentials, source: LocalDataSource): AuthWidget? =
49-
SecretsManagerAuthWidget()
46+
override fun createWidget(): AuthWidget? = SecretsManagerAuthWidget()
5047

5148
override fun intercept(
5249
connection: ProtoConnection,

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/datagrip/auth/SecretsManagerAuthWidget.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
package software.aws.toolkits.jetbrains.datagrip.auth
55

66
import com.intellij.database.dataSource.DataSourceUiUtil
7-
import com.intellij.database.dataSource.LocalDataSource
7+
import com.intellij.database.dataSource.DatabaseConnectionConfig
8+
import com.intellij.database.dataSource.DatabaseConnectionPoint
89
import com.intellij.ui.components.JBCheckBox
910
import com.intellij.ui.components.JBLabel
1011
import com.intellij.ui.components.JBTextField
@@ -38,28 +39,28 @@ class SecretsManagerAuthWidget : AwsAuthWidget(userFieldEnabled = false) {
3839
return panel
3940
}
4041

41-
override fun save(dataSource: LocalDataSource, copyCredentials: Boolean) {
42-
super.save(dataSource, copyCredentials)
42+
override fun save(config: DatabaseConnectionConfig, copyCredentials: Boolean) {
43+
super.save(config, copyCredentials)
4344

4445
DataSourceUiUtil.putOrRemove(
45-
dataSource.additionalProperties,
46+
config.additionalProperties,
4647
SECRET_ID_PROPERTY,
4748
secretIdSelector.text.nullize()
4849
)
4950

5051
DataSourceUiUtil.putOrRemove(
51-
dataSource.additionalProperties,
52+
config.additionalProperties,
5253
GET_URL_FROM_SECRET,
5354
urlFromSecret.isSelected.toString()
5455
)
5556
}
5657

57-
override fun reset(dataSource: LocalDataSource, resetCredentials: Boolean) {
58-
super.reset(dataSource, resetCredentials)
59-
dataSource.additionalProperties[SECRET_ID_PROPERTY]?.nullize()?.let {
58+
override fun reset(config: DatabaseConnectionPoint, resetCredentials: Boolean) {
59+
super.reset(config, resetCredentials)
60+
config.additionalProperties[SECRET_ID_PROPERTY]?.nullize()?.let {
6061
secretIdSelector.text = it
6162
}
62-
dataSource.additionalProperties[GET_URL_FROM_SECRET]?.nullize()?.let {
63+
config.additionalProperties[GET_URL_FROM_SECRET]?.nullize()?.let {
6364
urlFromSecret.isSelected = it.toBoolean()
6465
}
6566
}

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/datagrip/auth/compatability/DatabaseAuthProviderCompatabilityAdapter.kt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,35 @@
33

44
package software.aws.toolkits.jetbrains.datagrip.auth.compatability
55

6+
import com.intellij.database.access.DatabaseCredentials
67
import com.intellij.database.dataSource.DatabaseAuthProvider
8+
import com.intellij.database.dataSource.DatabaseAuthProvider.ApplicabilityLevel
9+
import com.intellij.database.dataSource.DatabaseConnectionConfig
710
import com.intellij.database.dataSource.DatabaseConnectionInterceptor
11+
import com.intellij.database.dataSource.DatabaseConnectionPoint
812
import com.intellij.database.dataSource.LocalDataSource
13+
import com.intellij.openapi.project.Project
914

15+
@Suppress("UnstableApiUsage")
1016
interface DatabaseAuthProviderCompatabilityAdapter : DatabaseAuthProvider {
11-
override fun isApplicable(dataSource: LocalDataSource, level: DatabaseAuthProvider.ApplicabilityLevel): Boolean =
12-
isApplicable(dataSource)
17+
override fun getApplicability(
18+
point: DatabaseConnectionPoint,
19+
level: ApplicabilityLevel
20+
): ApplicabilityLevel.Result {
21+
if (!isApplicable(point.dataSource)) return ApplicabilityLevel.Result.NOT_APPLICABLE
22+
return super.getApplicability(point, level)
23+
}
24+
25+
override fun createWidget(
26+
project: Project?,
27+
credentials: DatabaseCredentials,
28+
config: DatabaseConnectionConfig
29+
): DatabaseAuthProvider.AuthWidget? {
30+
return createWidget()
31+
}
1332

1433
fun isApplicable(dataSource: LocalDataSource): Boolean
34+
fun createWidget(): DatabaseAuthProvider.AuthWidget?
1535
}
1636

1737
fun DatabaseConnectionInterceptor.ProtoConnection.project() = project

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/rds/auth/IamAuth.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package software.aws.toolkits.jetbrains.services.rds.auth
55

66
import com.intellij.credentialStore.Credentials
7-
import com.intellij.database.access.DatabaseCredentials
87
import com.intellij.database.connection.throwable.KnownDatabaseException
98
import com.intellij.database.connection.throwable.info.ErrorInfo
109
import com.intellij.database.connection.throwable.info.SimpleErrorInfo
@@ -58,7 +57,7 @@ class IamAuth : DatabaseAuthProviderCompatabilityAdapter {
5857

5958
override fun isApplicable(dataSource: LocalDataSource): Boolean = iamIsApplicable(dataSource)
6059

61-
override fun createWidget(project: Project?, credentials: DatabaseCredentials, dataSource: LocalDataSource): AuthWidget? = IamAuthWidget()
60+
override fun createWidget(): AuthWidget? = IamAuthWidget()
6261

6362
inner class SsoNoTokenFix(val project: Project, val connection: ProtoConnection) : ErrorInfo.Fix {
6463

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/rds/auth/IamAuthWidget.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
package software.aws.toolkits.jetbrains.services.rds.auth
55

66
import com.intellij.database.dataSource.DataSourceUiUtil
7-
import com.intellij.database.dataSource.LocalDataSource
7+
import com.intellij.database.dataSource.DatabaseConnectionConfig
8+
import com.intellij.database.dataSource.DatabaseConnectionPoint
89
import com.intellij.database.dataSource.url.template.ParametersHolder
910
import com.intellij.ui.components.JBLabel
1011
import com.intellij.ui.components.JBTextField
@@ -37,8 +38,8 @@ class IamAuthWidget : AwsAuthWidget() {
3738
return panel
3839
}
3940

40-
override fun save(dataSource: LocalDataSource, copyCredentials: Boolean) {
41-
super.save(dataSource, copyCredentials)
41+
override fun save(config: DatabaseConnectionConfig, copyCredentials: Boolean) {
42+
super.save(config, copyCredentials)
4243

4344
// If the user has not specified a signing host/port we will try to use the URL in the connection
4445
val host = if (rdsSigningHostField.text.isNullOrBlank()) {
@@ -47,7 +48,7 @@ class IamAuthWidget : AwsAuthWidget() {
4748
rdsSigningHostField.text
4849
}
4950
DataSourceUiUtil.putOrRemove(
50-
dataSource.additionalProperties,
51+
config.additionalProperties,
5152
RDS_SIGNING_HOST_PROPERTY,
5253
host
5354
)
@@ -58,16 +59,16 @@ class IamAuthWidget : AwsAuthWidget() {
5859
rdsSigningPortField.text
5960
}
6061
DataSourceUiUtil.putOrRemove(
61-
dataSource.additionalProperties,
62+
config.additionalProperties,
6263
RDS_SIGNING_PORT_PROPERTY,
6364
port
6465
)
6566
}
6667

67-
override fun reset(dataSource: LocalDataSource, resetCredentials: Boolean) {
68-
super.reset(dataSource, resetCredentials)
69-
rdsSigningHostField.text = dataSource.additionalProperties[RDS_SIGNING_HOST_PROPERTY]
70-
rdsSigningPortField.text = dataSource.additionalProperties[RDS_SIGNING_PORT_PROPERTY]
68+
override fun reset(config: DatabaseConnectionPoint, resetCredentials: Boolean) {
69+
super.reset(config, resetCredentials)
70+
rdsSigningHostField.text = config.additionalProperties[RDS_SIGNING_HOST_PROPERTY]
71+
rdsSigningPortField.text = config.additionalProperties[RDS_SIGNING_PORT_PROPERTY]
7172
}
7273

7374
override fun updateFromUrl(holder: ParametersHolder) {

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/redshift/auth/IamAuth.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
package software.aws.toolkits.jetbrains.services.redshift.auth
55

66
import com.intellij.credentialStore.Credentials
7-
import com.intellij.database.access.DatabaseCredentials
87
import com.intellij.database.dataSource.DatabaseAuthProvider.AuthWidget
98
import com.intellij.database.dataSource.DatabaseConnectionInterceptor.ProtoConnection
109
import com.intellij.database.dataSource.DatabaseCredentialsAuthProvider
1110
import com.intellij.database.dataSource.LocalDataSource
12-
import com.intellij.openapi.project.Project
1311
import kotlinx.coroutines.future.future
1412
import software.amazon.awssdk.services.redshift.RedshiftClient
1513
import software.aws.toolkits.core.ConnectionSettings
@@ -37,7 +35,7 @@ class IamAuth : DatabaseAuthProviderCompatabilityAdapter {
3735
override fun isApplicable(dataSource: LocalDataSource): Boolean = dataSource.dbms.isRedshift
3836
override fun getDisplayName(): String = message("redshift.auth.aws")
3937

40-
override fun createWidget(project: Project?, creds: DatabaseCredentials, source: LocalDataSource): AuthWidget? = IamAuthWidget()
38+
override fun createWidget(): AuthWidget? = IamAuthWidget()
4139

4240
override fun intercept(connection: ProtoConnection, silent: Boolean): CompletionStage<ProtoConnection>? {
4341
LOG.info { "Intercepting db connection [$connection]" }

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/redshift/auth/IamAuthWidget.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
package software.aws.toolkits.jetbrains.services.redshift.auth
55

66
import com.intellij.database.dataSource.DataSourceUiUtil
7-
import com.intellij.database.dataSource.LocalDataSource
7+
import com.intellij.database.dataSource.DatabaseConnectionConfig
8+
import com.intellij.database.dataSource.DatabaseConnectionPoint
89
import com.intellij.database.dataSource.url.template.ParametersHolder
910
import com.intellij.database.dataSource.url.template.UrlEditorModel
1011
import com.intellij.ui.components.JBLabel
@@ -34,19 +35,19 @@ class IamAuthWidget : AwsAuthWidget() {
3435
return panel
3536
}
3637

37-
override fun save(dataSource: LocalDataSource, copyCredentials: Boolean) {
38-
super.save(dataSource, copyCredentials)
38+
override fun save(config: DatabaseConnectionConfig, copyCredentials: Boolean) {
39+
super.save(config, copyCredentials)
3940

4041
DataSourceUiUtil.putOrRemove(
41-
dataSource.additionalProperties,
42+
config.additionalProperties,
4243
CLUSTER_ID_PROPERTY,
4344
clusterIdSelector.text
4445
)
4546
}
4647

47-
override fun reset(dataSource: LocalDataSource, resetCredentials: Boolean) {
48-
super.reset(dataSource, resetCredentials)
49-
clusterIdSelector.text = dataSource.additionalProperties[CLUSTER_ID_PROPERTY]
48+
override fun reset(config: DatabaseConnectionPoint, resetCredentials: Boolean) {
49+
super.reset(config, resetCredentials)
50+
clusterIdSelector.text = config.additionalProperties[CLUSTER_ID_PROPERTY]
5051
}
5152

5253
override fun updateFromUrl(holder: ParametersHolder) {

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/ui/AwsAuthWidget.kt

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,4 @@
33

44
package software.aws.toolkits.jetbrains.ui
55

6-
import com.intellij.database.dataSource.DatabaseConnectionConfig
7-
import com.intellij.database.dataSource.DatabaseConnectionPoint
8-
9-
abstract class AwsAuthWidget(userFieldEnabled: Boolean = true) : @Suppress("DEPRECATION") AwsAuthWidgetBase(userFieldEnabled) {
10-
override fun save(config: DatabaseConnectionConfig, copyCredentials: Boolean) {
11-
super.save(config, copyCredentials)
12-
save(config.dataSource, copyCredentials)
13-
}
14-
15-
override fun reset(point: DatabaseConnectionPoint, resetCredentials: Boolean) {
16-
super.reset(point, resetCredentials)
17-
reset(point.dataSource, resetCredentials)
18-
}
19-
}
6+
abstract class AwsAuthWidget(userFieldEnabled: Boolean = true) : @Suppress("DEPRECATION") AwsAuthWidgetBase(userFieldEnabled)

plugins/toolkit/jetbrains-ultimate/src/software/aws/toolkits/jetbrains/ui/AwsAuthWidgetBase.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
package software.aws.toolkits.jetbrains.ui
55

66
import com.intellij.database.dataSource.DataSourceUiUtil
7+
import com.intellij.database.dataSource.DatabaseConnectionConfig
8+
import com.intellij.database.dataSource.DatabaseConnectionPoint
79
import com.intellij.database.dataSource.DatabaseCredentialsAuthProviderUi
8-
import com.intellij.database.dataSource.LocalDataSource
910
import com.intellij.database.dataSource.url.template.ParametersHolder
1011
import com.intellij.database.dataSource.url.template.UrlEditorModel
1112
import com.intellij.ui.components.JBLabel
@@ -53,28 +54,28 @@ abstract class AwsAuthWidgetBase(private val userFieldEnabled: Boolean) : Databa
5354
return panel
5455
}
5556

56-
override fun save(dataSource: LocalDataSource, copyCredentials: Boolean) {
57-
super.save(dataSource, copyCredentials)
57+
override fun save(config: DatabaseConnectionConfig, copyCredentials: Boolean) {
58+
super.save(config, copyCredentials)
5859

5960
DataSourceUiUtil.putOrRemove(
60-
dataSource.additionalProperties,
61+
config.additionalProperties,
6162
CREDENTIAL_ID_PROPERTY,
6263
credentialSelector.getSelectedCredentialsProvider()
6364
)
6465
DataSourceUiUtil.putOrRemove(
65-
dataSource.additionalProperties,
66+
config.additionalProperties,
6667
REGION_ID_PROPERTY,
6768
regionSelector.selectedRegion?.id
6869
)
6970
}
7071

71-
override fun reset(dataSource: LocalDataSource, resetCredentials: Boolean) {
72-
super.reset(dataSource, resetCredentials)
72+
override fun reset(config: DatabaseConnectionPoint, resetCredentials: Boolean) {
73+
super.reset(config, resetCredentials)
7374

7475
val regionProvider = AwsRegionProvider.getInstance()
7576
val allRegions = regionProvider.allRegionsForService(serviceId)
7677
regionSelector.setRegions(allRegions.values.toMutableList())
77-
val regionId = dataSource.additionalProperties[REGION_ID_PROPERTY]?.nullize()
78+
val regionId = config.additionalProperties[REGION_ID_PROPERTY]?.nullize()
7879
regionId?.let {
7980
allRegions[regionId]?.let { region ->
8081
regionSelector.selectedRegion = region
@@ -83,7 +84,7 @@ abstract class AwsAuthWidgetBase(private val userFieldEnabled: Boolean) : Databa
8384

8485
val credentialManager = CredentialManager.getInstance()
8586
credentialSelector.setCredentialsProviders(credentialManager.getCredentialIdentifiers())
86-
val credentialId = dataSource.additionalProperties[CREDENTIAL_ID_PROPERTY]?.nullize()
87+
val credentialId = config.additionalProperties[CREDENTIAL_ID_PROPERTY]?.nullize()
8788
if (credentialId != null) {
8889
val credentialIdentifierById = credentialManager.getCredentialIdentifierById(credentialId)
8990
if (credentialIdentifierById != null) {

0 commit comments

Comments
 (0)