diff --git a/codegen/smithy-aws-kotlin-codegen/build.gradle.kts b/codegen/smithy-aws-kotlin-codegen/build.gradle.kts index 0f1f4329223..2b91d0b6b9e 100644 --- a/codegen/smithy-aws-kotlin-codegen/build.gradle.kts +++ b/codegen/smithy-aws-kotlin-codegen/build.gradle.kts @@ -31,7 +31,7 @@ dependencies { api("software.amazon.smithy:smithy-aws-iam-traits:$smithyVersion") api("software.amazon.smithy:smithy-aws-cloudformation-traits:$smithyVersion") api("software.amazon.smithy:smithy-protocol-test-traits:$smithyVersion") - implementation("software.amazon.smithy:smithy-rules-engine:$smithyVersion") + implementation("software.amazon.smithy:smithy-aws-endpoints:$smithyVersion") testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") testImplementation("org.junit.jupiter:junit-jupiter-params:$junitVersion") diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsEndpointDelegator.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsEndpointDelegator.kt index 47a98539faf..b444b723b6d 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsEndpointDelegator.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsEndpointDelegator.kt @@ -56,6 +56,7 @@ class AwsEndpointDelegator : EndpointDelegator { }, ) } + if (rules != null) { ctx.delegator.useFileWriter(defaultProviderSymbol) { DefaultEndpointProviderGenerator(it, rules, defaultProviderSymbol, providerSymbol, paramsSymbol, ctx.settings, endpointFunctions, awsEndpointPropertyRenderers).render() diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/core/AwsHttpBindingProtocolGenerator.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/core/AwsHttpBindingProtocolGenerator.kt index fd7cc8afdca..7d746e0c099 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/core/AwsHttpBindingProtocolGenerator.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/core/AwsHttpBindingProtocolGenerator.kt @@ -52,6 +52,30 @@ abstract class AwsHttpBindingProtocolGenerator : HttpBindingProtocolGenerator() } override fun generateProtocolUnitTests(ctx: ProtocolGenerator.GenerationContext) { + val ignoredTests = TestMemberDelta( + setOf( + // FIXME - compression not yet supported, see https://github.com/awslabs/smithy-kotlin/issues/955 + "SDKAppliedContentEncoding_awsJson1_0", + "SDKAppliedContentEncoding_awsJson1_1", + "SDKAppliedContentEncoding_awsQuery", + "SDKAppliedContentEncoding_ec2Query", + "SDKAppliedContentEncoding_restJson1", + "SDKAppliedContentEncoding_restXml", + "SDKAppendedGzipAfterProvidedEncoding_restJson1", + "SDKAppendedGzipAfterProvidedEncoding_restXml", + "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_0", + "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_1", + "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsQuery", + "SDKAppendsGzipAndIgnoresHttpProvidedEncoding_ec2Query", + + // FIXME - missing Content-Type on restXml empty payloads, see https://github.com/awslabs/aws-sdk-kotlin/issues/1050 + "RestXmlHttpPayloadWithUnsetUnion", + + // FIXME - xmlns incorrect in XML maps, see https://github.com/awslabs/smithy-kotlin/issues/957 + "RestXmlXmlMapWithXmlNamespace", + ), + ) + // The following can be used to generate only a specific test by name. // val targetedTest = TestMemberDelta(setOf("RestJsonComplexErrorWithNoMessage"), TestContainmentMode.RUN_TESTS) @@ -64,6 +88,7 @@ abstract class AwsHttpBindingProtocolGenerator : HttpBindingProtocolGenerator() requestTestBuilder, responseTestBuilder, errorTestBuilder, + ignoredTests, ).generateProtocolTests() } diff --git a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/endpoints/DefaultEndpointProviderExt.kt b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/endpoints/DefaultEndpointProviderExt.kt index 0b92246eb7a..5b323cec92f 100644 --- a/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/endpoints/DefaultEndpointProviderExt.kt +++ b/codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/endpoints/DefaultEndpointProviderExt.kt @@ -12,7 +12,7 @@ import software.amazon.smithy.kotlin.codegen.rendering.endpoints.ExpressionRende import software.amazon.smithy.kotlin.codegen.utils.getOrNull import software.amazon.smithy.model.node.Node import software.amazon.smithy.model.node.ObjectNode -import software.amazon.smithy.rulesengine.language.syntax.expr.Expression +import software.amazon.smithy.rulesengine.language.syntax.expressions.Expression import java.util.* val awsEndpointFunctions = mapOf( @@ -24,9 +24,6 @@ val awsEndpointPropertyRenderers = mapOf( "authSchemes" to ::renderAuthSchemes, ) -// valid auth scheme names that can appear in a smithy endpoint's properties -private val validAuthSchemeNames = setOf("sigv4", "sigv4a") - private fun String.toSigningContextClassName(): String? = when (this) { "sigv4" -> "SigV4" diff --git a/gradle.properties b/gradle.properties index d5998cbcd31..9e402be5fee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,10 +9,10 @@ org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=2G sdkVersion=0.32.3-SNAPSHOT # codegen -smithyVersion=1.29.0 +smithyVersion=1.39.0 smithyGradleVersion=0.6.0 # smithy-kotlin codegen and runtime are versioned together -smithyKotlinVersion=0.27.4 +smithyKotlinVersion=0.27.5-SNAPSHOT # kotlin kotlinVersion=1.8.22 @@ -37,4 +37,4 @@ mockkVersion=1.13.3 slf4jVersion=2.0.6 # dokka config (values specified at build-time as needed) -smithyKotlinDocBaseUrl=https://sdk.amazonaws.com/kotlin/api/smithy-kotlin/api/$smithyKotlinVersion/ \ No newline at end of file +smithyKotlinDocBaseUrl=https://sdk.amazonaws.com/kotlin/api/smithy-kotlin/api/$smithyKotlinVersion/ diff --git a/gradle/sdk-plugins/build.gradle.kts b/gradle/sdk-plugins/build.gradle.kts index aba275ecd37..28b19e29c8e 100644 --- a/gradle/sdk-plugins/build.gradle.kts +++ b/gradle/sdk-plugins/build.gradle.kts @@ -5,6 +5,7 @@ import java.util.Properties buildscript { repositories { + mavenLocal() mavenCentral() } } @@ -15,6 +16,7 @@ plugins { } repositories { + mavenLocal() mavenCentral() gradlePluginPortal() } diff --git a/settings.gradle.kts b/settings.gradle.kts index aa3248c2f6a..23351a8a2a8 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,6 +5,7 @@ pluginManagement { repositories { + mavenLocal() mavenCentral() gradlePluginPortal() }