Skip to content

Commit fa48e3c

Browse files
authored
chore: upgrade to smithy 1.13.0 (#474)
1 parent 4dd36ed commit fa48e3c

File tree

10 files changed

+29
-11
lines changed

10 files changed

+29
-11
lines changed

builder.json

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
],
1414
"test_steps": [
1515
"cd {source_dir}/AWSClientRuntime && swift test",
16+
"cd {source_dir} && ./scripts/mergeModels.sh {source_dir}/codegen/protocol-test-codegen/build/smithyprojections/protocol-test-codegen/aws-restjson/swift-codegen/AWSRestJsonTestSDK/models",
1617
"cd {source_dir}/codegen && swift test"
1718
],
1819
"build_dir": "target/build",

codegen/Package.swift

+4
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,12 @@ appendLibTarget(name: "AWSQueryTestSDK", path: "\(baseDir)/aws-query")
4545
appendTstTarget(name: "AWSQueryTestSDKTests", path: "\(baseDir)/aws-query", dependency: "AWSQueryTestSDK")
4646

4747
//Service specific
48+
appendLibTarget(name: "APIGatewayTestSDK", path: "\(baseDir)/apigateway")
49+
appendTstTarget(name: "APIGatewayTestSDKTests", path: "\(baseDir)/apigateway", dependency: "APIGatewayTestSDK")
4850
appendLibTarget(name: "GlacierTestSDK", path: "\(baseDir)/glacier")
4951
appendTstTarget(name: "GlacierTestSDKTests", path: "\(baseDir)/glacier", dependency: "GlacierTestSDK")
52+
appendLibTarget(name: "MachineLearningTestSDK", path: "\(baseDir)/machinelearning")
53+
appendTstTarget(name: "MachineLearningTestSDKTests", path: "\(baseDir)/machinelearning", dependency: "MachineLearningTestSDK")
5054
appendLibTarget(name: "S3TestSDK", path: "\(baseDir)/s3")
5155
appendTstTarget(name: "S3TestSDKTests", path: "\(baseDir)/s3", dependency: "S3TestSDK")
5256

codegen/protocol-test-codegen/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ val enabledProtocols = listOf(
3535
ProtocolTest("aws-query", "aws.protocoltests.query#AwsQuery", "AWSQueryTestSDK"),
3636

3737
// service specific tests
38-
//ProtocolTest("apigateway", "com.amazonaws.apigateway#BackplaneControlService"),
38+
ProtocolTest("apigateway", "com.amazonaws.apigateway#BackplaneControlService", "APIGatewayTestSDK"),
3939
ProtocolTest("glacier", "com.amazonaws.glacier#Glacier", "GlacierTestSDK"),
4040
ProtocolTest("s3", "com.amazonaws.s3#AmazonS3", "S3TestSDK"),
4141
ProtocolTest("machinelearning", "com.amazonaws.machinelearning#AmazonML_20141212", "MachineLearningTestSDK")

codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpBindingProtocolGenerator.kt

-7
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,6 @@ abstract class AWSHttpBindingProtocolGenerator : HttpBindingProtocolGenerator()
4444
override val shouldRenderCodingKeysForEncodable = true
4545

4646
override fun generateProtocolUnitTests(ctx: ProtocolGenerator.GenerationContext): Int {
47-
// TODO: enable these tests once this PR is merged/released into Smithy: https://github.com/awslabs/smithy/pull/930
48-
val ignoredTests = setOf(
49-
"GlacierChecksums", // aws-sdk-swift#208
50-
"GlacierMultipartChecksums", // aws-sdk-swift#208
51-
"RestJsonNoInputAndOutput" // REMOVE THIS with version of smithy released after 1.12.0: https://github.com/awslabs/smithy/pull/935
52-
)
5347
val imports = listOf(AWSSwiftDependency.AWS_CLIENT_RUNTIME.target)
5448
return HttpProtocolTestGenerator(
5549
ctx,
@@ -61,7 +55,6 @@ abstract class AWSHttpBindingProtocolGenerator : HttpBindingProtocolGenerator()
6155
getProtocolHttpBindingResolver(ctx, defaultContentType),
6256
serdeContext,
6357
imports,
64-
ignoredTests
6558
).generateProtocolTests()
6659
}
6760

codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/awsjson/AwsJson1_0_ProtocolGenerator.kt

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import software.amazon.smithy.swift.codegen.integration.ProtocolGenerator
1717
import software.amazon.smithy.swift.codegen.integration.codingKeys.CodingKeysCustomizationJsonName
1818
import software.amazon.smithy.swift.codegen.integration.codingKeys.DefaultCodingKeysGenerator
1919
import software.amazon.smithy.swift.codegen.integration.httpResponse.HttpResponseGenerator
20+
import software.amazon.smithy.swift.codegen.integration.middlewares.ContentTypeMiddleware
21+
import software.amazon.smithy.swift.codegen.middleware.MiddlewareStep
2022

2123
open class AwsJson1_0_ProtocolGenerator : AWSHttpBindingProtocolGenerator() {
2224
override val codingKeysGenerator = DefaultCodingKeysGenerator(CodingKeysCustomizationJsonName())
@@ -37,5 +39,9 @@ open class AwsJson1_0_ProtocolGenerator : AWSHttpBindingProtocolGenerator() {
3739
super.addProtocolSpecificMiddleware(ctx, operation)
3840

3941
operationMiddleware.appendMiddleware(operation, AWSXAmzTargetMiddleware(ctx.model, ctx.symbolProvider, ctx.service))
42+
43+
val resolver = getProtocolHttpBindingResolver(ctx, defaultContentType)
44+
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "ContentTypeMiddleware")
45+
operationMiddleware.appendMiddleware(operation, ContentTypeMiddleware(ctx.model, ctx.symbolProvider, resolver.determineRequestContentType(operation), true))
4046
}
4147
}

codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/awsjson/AwsJson1_1_ProtocolGenerator.kt

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import software.amazon.smithy.swift.codegen.integration.ProtocolGenerator
1717
import software.amazon.smithy.swift.codegen.integration.codingKeys.CodingKeysCustomizationJsonName
1818
import software.amazon.smithy.swift.codegen.integration.codingKeys.DefaultCodingKeysGenerator
1919
import software.amazon.smithy.swift.codegen.integration.httpResponse.HttpResponseGenerator
20+
import software.amazon.smithy.swift.codegen.integration.middlewares.ContentTypeMiddleware
21+
import software.amazon.smithy.swift.codegen.middleware.MiddlewareStep
2022

2123
class AwsJson1_1_ProtocolGenerator : AWSHttpBindingProtocolGenerator() {
2224
override val codingKeysGenerator = DefaultCodingKeysGenerator(CodingKeysCustomizationJsonName())
@@ -37,5 +39,9 @@ class AwsJson1_1_ProtocolGenerator : AWSHttpBindingProtocolGenerator() {
3739
super.addProtocolSpecificMiddleware(ctx, operation)
3840

3941
operationMiddleware.appendMiddleware(operation, AWSXAmzTargetMiddleware(ctx.model, ctx.symbolProvider, ctx.service))
42+
43+
val resolver = getProtocolHttpBindingResolver(ctx, defaultContentType)
44+
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "ContentTypeMiddleware")
45+
operationMiddleware.appendMiddleware(operation, ContentTypeMiddleware(ctx.model, ctx.symbolProvider, resolver.determineRequestContentType(operation), true))
4046
}
4147
}

codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/awsquery/AwsQueryProtocolGenerator.kt

+5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import software.amazon.smithy.swift.codegen.integration.ProtocolGenerator
2424
import software.amazon.smithy.swift.codegen.integration.codingKeys.CodingKeysCustomizationXmlName
2525
import software.amazon.smithy.swift.codegen.integration.codingKeys.DefaultCodingKeysGenerator
2626
import software.amazon.smithy.swift.codegen.integration.httpResponse.HttpResponseGenerator
27+
import software.amazon.smithy.swift.codegen.integration.middlewares.ContentTypeMiddleware
2728
import software.amazon.smithy.swift.codegen.integration.middlewares.OperationInputBodyMiddleware
2829
import software.amazon.smithy.swift.codegen.integration.serde.formurl.StructEncodeFormURLGenerator
2930
import software.amazon.smithy.swift.codegen.middleware.MiddlewareStep
@@ -87,5 +88,9 @@ open class AwsQueryProtocolGenerator : AWSHttpBindingProtocolGenerator() {
8788
// we always need to have an InputBodyMiddleware
8889
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "OperationInputBodyMiddleware")
8990
operationMiddleware.appendMiddleware(operation, OperationInputBodyMiddleware(ctx.model, ctx.symbolProvider, true))
91+
92+
val resolver = getProtocolHttpBindingResolver(ctx, defaultContentType)
93+
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "ContentTypeMiddleware")
94+
operationMiddleware.appendMiddleware(operation, ContentTypeMiddleware(ctx.model, ctx.symbolProvider, resolver.determineRequestContentType(operation), true))
9095
}
9196
}

codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/ec2query/Ec2QueryProtocolGenerator.kt

+5
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import software.amazon.smithy.swift.codegen.integration.ProtocolGenerator
2525
import software.amazon.smithy.swift.codegen.integration.codingKeys.CodingKeysCustomizationXmlName
2626
import software.amazon.smithy.swift.codegen.integration.codingKeys.DefaultCodingKeysGenerator
2727
import software.amazon.smithy.swift.codegen.integration.httpResponse.HttpResponseGenerator
28+
import software.amazon.smithy.swift.codegen.integration.middlewares.ContentTypeMiddleware
2829
import software.amazon.smithy.swift.codegen.integration.middlewares.OperationInputBodyMiddleware
2930
import software.amazon.smithy.swift.codegen.integration.serde.formurl.StructEncodeFormURLGenerator
3031
import software.amazon.smithy.swift.codegen.integration.serde.xml.StructDecodeXMLGenerator
@@ -84,5 +85,9 @@ class Ec2QueryProtocolGenerator : AWSHttpBindingProtocolGenerator() {
8485
// we always need to have an InputBodyMiddleware
8586
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "OperationInputBodyMiddleware")
8687
operationMiddleware.appendMiddleware(operation, OperationInputBodyMiddleware(ctx.model, ctx.symbolProvider, true))
88+
89+
val resolver = getProtocolHttpBindingResolver(ctx, defaultContentType)
90+
operationMiddleware.removeMiddleware(operation, MiddlewareStep.SERIALIZESTEP, "ContentTypeMiddleware")
91+
operationMiddleware.appendMiddleware(operation, ContentTypeMiddleware(ctx.model, ctx.symbolProvider, resolver.determineRequestContentType(operation), true))
8792
}
8893
}

codegen/smithy-aws-swift-codegen/src/test/kotlin/software/amazon/smithy/aws/swift/codegen/PresignerGeneratorTests.kt

-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ class PresignerGeneratorTests {
4747
operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0.0"))))
4848
operation.serializeStep.intercept(position: .after, middleware: GetFooInputHeadersMiddleware())
4949
operation.serializeStep.intercept(position: .after, middleware: GetFooInputQueryItemMiddleware())
50-
operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware<GetFooInput, GetFooOutputResponse, GetFooOutputError>(contentType: "application/json"))
51-
operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware())
5250
operation.finalizeStep.intercept(position: .after, middleware: AWSClientRuntime.RetryerMiddleware(retryer: config.retryer))
5351
let sigv4Config = AWSClientRuntime.SigV4Config(expiration: expiration, unsignedBody: false)
5452
operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config))

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
kotlin.code.style=official
22

33
# codegen
4-
smithyVersion=1.12.0
4+
smithyVersion=1.13.0
55

66
smithySwiftVersion = 0.1.0
77

0 commit comments

Comments
 (0)