Skip to content

Commit e25f7f4

Browse files
committed
patch
1 parent 4badf5e commit e25f7f4

File tree

15 files changed

+47
-31
lines changed

15 files changed

+47
-31
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/clients/chat/model/Requests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package software.aws.toolkits.jetbrains.services.cwc.clients.chat.model
55

66
import com.fasterxml.jackson.annotation.JsonProperty
77
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
8-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
8+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
99
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
1010
import software.aws.toolkits.jetbrains.services.cwc.editor.context.project.RelevantDocument
1111

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import software.aws.toolkits.core.utils.debug
1212
import software.aws.toolkits.core.utils.getLogger
1313
import software.aws.toolkits.core.utils.info
1414
import software.aws.toolkits.core.utils.warn
15+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
1516
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
1617
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
17-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
1818
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
1919
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererSettings
2020
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.ChatRequestData

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/TelemetryHelperTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
4141
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES
4242
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
4343
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
44-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
4544
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
4645
import software.aws.toolkits.jetbrains.services.codewhisperer.settings.CodeWhispererSettings
4746
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.ChatSession

plugins/amazonq/codewhisperer/jetbrains-community/src/migration/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package migration.software.aws.toolkits.jetbrains.services.codewhisperer.customi
55

66
import com.intellij.openapi.components.service
77
import com.intellij.openapi.project.Project
8-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
8+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
99
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CustomizationUiItem
1010

1111
// A component responsible managing client's codewhisperer model configuration (currently customization feature only support enterprise tier users)

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/credentials/CodeWhispererClientAdaptor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
4343
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4444
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
4545
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
46+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
4647
import software.aws.toolkits.jetbrains.services.amazonq.FEATURE_EVALUATION_PRODUCT_NAME
47-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
4848
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
4949
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
5050
import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContext

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererCustomizationDialog.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import software.amazon.awssdk.arns.Arn
2626
import software.aws.toolkits.core.utils.debug
2727
import software.aws.toolkits.core.utils.getLogger
2828
import software.aws.toolkits.core.utils.tryOrNull
29+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
2930
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.Q_CUSTOM_LEARN_MORE_URI
3031
import software.aws.toolkits.jetbrains.ui.AsyncComboBox
3132
import software.aws.toolkits.jetbrains.utils.notifyInfo

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.util.xmlb.annotations.Property
2020
import software.amazon.awssdk.services.codewhispererruntime.model.CodeWhispererRuntimeException
2121
import software.aws.toolkits.core.utils.debug
2222
import software.aws.toolkits.core.utils.getLogger
23+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
2324
import software.aws.toolkits.jetbrains.services.amazonq.calculateIfIamIdentityCenterConnection
2425
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
2526
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererFeatureConfigService

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererFeatureConfigService.kt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import com.intellij.openapi.project.Project
99
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread
1010
import software.amazon.awssdk.services.codewhispererruntime.CodeWhispererRuntimeClient
1111
import software.amazon.awssdk.services.codewhispererruntime.model.FeatureValue
12+
import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
1213
import software.aws.toolkits.core.utils.debug
1314
import software.aws.toolkits.core.utils.getLogger
1415
import software.aws.toolkits.jetbrains.core.awsClient
1516
import software.aws.toolkits.jetbrains.services.amazonq.calculateIfBIDConnection
1617
import software.aws.toolkits.jetbrains.services.amazonq.calculateIfIamIdentityCenterConnection
1718
import software.aws.toolkits.jetbrains.services.amazonq.codeWhispererUserContext
18-
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
1919
import software.aws.toolkits.jetbrains.utils.isQExpired
2020

2121
@Service
@@ -54,7 +54,16 @@ class CodeWhispererFeatureConfigService {
5454
val availableCustomizations =
5555
calculateIfIamIdentityCenterConnection(project) {
5656
try {
57-
CodeWhispererClientAdaptor.getInstance(project).listAvailableCustomizations().map { c -> c.arn }
57+
project.awsClient<CodeWhispererRuntimeClient>().listAvailableCustomizationsPaginator(
58+
ListAvailableCustomizationsRequest.builder().build()
59+
)
60+
.stream()
61+
.toList()
62+
.flatMap { resp ->
63+
resp.customizations().map {
64+
it.arn()
65+
}
66+
}
5867
} catch (e: Exception) {
5968
LOG.debug(e) { "Failed to list available customizations" }
6069
null
@@ -76,9 +85,11 @@ class CodeWhispererFeatureConfigService {
7685
}
7786

7887
fun getFeatureConfigsTelemetry(): String =
79-
"{${featureConfigs.entries.joinToString(", ") { (name, context) ->
80-
"$name: ${context.variation}"
81-
}}}"
88+
"{${
89+
featureConfigs.entries.joinToString(", ") { (name, context) ->
90+
"$name: ${context.variation}"
91+
}
92+
}}"
8293

8394
// TODO: for all feature variations, define a contract that can be enforced upon the implementation of
8495
// the business logic.
@@ -93,7 +104,8 @@ class CodeWhispererFeatureConfigService {
93104
// 6) Add a test case for this feature.
94105
fun getTestFeature(): String = getFeatureValueForKey(TEST_FEATURE_NAME).stringValue()
95106

96-
fun getIsDataCollectionEnabled(): Boolean = getFeatureValueForKey(DATA_COLLECTION_FEATURE).stringValue() == "data-collection"
107+
fun getIsDataCollectionEnabled(): Boolean =
108+
getFeatureValueForKey(DATA_COLLECTION_FEATURE).stringValue() == "data-collection"
97109

98110
fun getCustomizationArnOverride(): String = getFeatureValueForKey(CUSTOMIZATION_ARN_OVERRIDE_NAME).stringValue()
99111

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererClientAdaptorTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,21 +73,21 @@ import software.aws.toolkits.jetbrains.core.credentials.MockCredentialManagerRul
7373
import software.aws.toolkits.jetbrains.core.credentials.MockToolkitAuthManagerRule
7474
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
7575
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_REGION
76+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererCustomization
77+
import software.aws.toolkits.jetbrains.services.amazonq.FEATURE_EVALUATION_PRODUCT_NAME
7678
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.metadata
7779
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.pythonRequest
7880
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.pythonResponseWithToken
7981
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.sdkHttpResponse
8082
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
8183
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptorImpl
82-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
8384
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
8485
import software.aws.toolkits.jetbrains.services.codewhisperer.model.LatencyContext
8586
import software.aws.toolkits.jetbrains.services.codewhisperer.model.TriggerTypeInfo
8687
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererAutomatedTriggerType
8788
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererService
8889
import software.aws.toolkits.jetbrains.services.codewhisperer.service.ResponseContext
8990
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
90-
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.FEATURE_EVALUATION_PRODUCT_NAME
9191
import software.aws.toolkits.jetbrains.settings.AwsSettings
9292
import software.aws.toolkits.jetbrains.utils.rules.JavaCodeInsightTestFixtureRule
9393
import software.aws.toolkits.telemetry.CodewhispererCompletionType

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererFeatureConfigServiceTest.kt

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,24 @@ import com.intellij.testFramework.replaceService
1010
import kotlinx.coroutines.runBlocking
1111
import org.assertj.core.api.Assertions.assertThat
1212
import org.junit.Rule
13+
import org.mockito.kotlin.any
1314
import org.mockito.kotlin.doReturn
1415
import org.mockito.kotlin.eq
1516
import org.mockito.kotlin.mock
1617
import org.mockito.kotlin.stub
18+
import software.amazon.awssdk.services.codewhispererruntime.CodeWhispererRuntimeClient
19+
import software.amazon.awssdk.services.codewhispererruntime.model.Customization
1720
import software.amazon.awssdk.services.codewhispererruntime.model.FeatureEvaluation
1821
import software.amazon.awssdk.services.codewhispererruntime.model.FeatureValue
22+
import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
23+
import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsResponse
24+
import software.amazon.awssdk.services.codewhispererruntime.model.ListFeatureEvaluationsRequest
1925
import software.amazon.awssdk.services.codewhispererruntime.model.ListFeatureEvaluationsResponse
26+
import software.aws.toolkits.jetbrains.core.MockClientManagerRule
2027
import software.aws.toolkits.jetbrains.core.credentials.LegacyManagedBearerSsoConnection
2128
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
2229
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
2330
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_URL
24-
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
25-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
2631
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererFeatureConfigService
2732
import kotlin.reflect.full.memberFunctions
2833
import kotlin.test.Test
@@ -40,6 +45,10 @@ class CodeWhispererFeatureConfigServiceTest {
4045
@Rule
4146
val projectRule = ProjectRule()
4247

48+
@JvmField
49+
@Rule
50+
val mockClientManagerRule = MockClientManagerRule()
51+
4352
@Test
4453
fun `test FEATURE_DEFINITIONS is not empty`() {
4554
assertThat(CodeWhispererFeatureConfigService.FEATURE_DEFINITIONS).isNotEmpty
@@ -63,9 +72,8 @@ class CodeWhispererFeatureConfigServiceTest {
6372
}
6473

6574
private fun testCustomizationArnOverrideABHelper(isIdc: Boolean, isInListAvailableCustomizations: Boolean) {
66-
val clientAdaptorSpy = mock<CodeWhispererClientAdaptor>()
67-
clientAdaptorSpy.stub {
68-
on { listFeatureEvaluations() } doReturn ListFeatureEvaluationsResponse.builder().featureEvaluations(
75+
mockClientManagerRule.create<CodeWhispererRuntimeClient>().stub {
76+
on { listFeatureEvaluations(any<ListFeatureEvaluationsRequest>()) } doReturn ListFeatureEvaluationsResponse.builder().featureEvaluations(
6977
listOf(
7078
FeatureEvaluation.builder()
7179
.feature(CodeWhispererFeatureConfigService.CUSTOMIZATION_ARN_OVERRIDE_NAME)
@@ -74,11 +82,12 @@ class CodeWhispererFeatureConfigServiceTest {
7482
.build()
7583
)
7684
).build()
77-
on { listAvailableCustomizations() } doReturn
85+
86+
on { listAvailableCustomizations(any<ListAvailableCustomizationsRequest>()) } doReturn
7887
if (isInListAvailableCustomizations) {
79-
listOf(CodeWhispererCustomization(arn = "test arn", name = "Test Arn"))
88+
ListAvailableCustomizationsResponse.builder().customizations({ builder -> builder.arn("test arn").name("Test Arn") }).build()
8089
} else {
81-
emptyList()
90+
ListAvailableCustomizationsResponse.builder().customizations(emptyList<Customization>()).build()
8291
}
8392
}
8493

@@ -92,12 +101,6 @@ class CodeWhispererFeatureConfigServiceTest {
92101
disposableRule.disposable
93102
)
94103

95-
projectRule.project.replaceService(
96-
CodeWhispererClientAdaptor::class.java,
97-
clientAdaptorSpy,
98-
disposableRule.disposable
99-
)
100-
101104
runBlocking {
102105
CodeWhispererFeatureConfigService.getInstance().fetchFeatureConfigs(projectRule.project)
103106
}

0 commit comments

Comments
 (0)