From ec0573a583783dfd3c960be655fa3a1770c2da7e Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Wed, 8 Jul 2020 19:12:31 -0700 Subject: [PATCH 01/14] feat: add package manifest file generator --- smithy-swift/.gitignore | 7 + .../ClientRuntime.xcodeproj/project.pbxproj | 1150 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../UserInterfaceState.xcuserstate | Bin 49285 -> 0 bytes .../UserInterfaceState.xcuserstate | Bin 31605 -> 0 bytes .../xcschemes/ClientRuntime.xcscheme | 78 -- .../xcschemes/ClientRuntimeTests.xcscheme | 53 - .../xcschemes/xcschememanagement.plist | 14 - .../xcschemes/xcschememanagement.plist | 14 - .../XMLEncoder/XMLEncoderImplementation.swift | 2 + smithy-swift/ClientRuntime/Package.swift | 23 + .../smithy/swift/codegen/CodegenVisitor.kt | 3 + .../swift/codegen/PackageManifestGenerator.kt | 74 ++ .../smithy/swift/codegen/SwiftDependency.kt | 10 +- .../codegen/PackageManifestGeneratorTests.kt | 119 ++ 16 files changed, 235 insertions(+), 1327 deletions(-) create mode 100644 smithy-swift/.gitignore delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.pbxproj delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/edupp.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/nickik.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntime.xcscheme delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntimeTests.xcscheme delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/edupp.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/nickik.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 smithy-swift/ClientRuntime/Package.swift create mode 100644 smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt create mode 100644 smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt diff --git a/smithy-swift/.gitignore b/smithy-swift/.gitignore new file mode 100644 index 000000000..08e7af58f --- /dev/null +++ b/smithy-swift/.gitignore @@ -0,0 +1,7 @@ +.build/ +.swiftpm/ +ClientRuntime/.build/ +ClientRuntime/ClientRuntime.xcodeproj +ClientRuntime/ClientRuntime.xcodeproj/ + + diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.pbxproj b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.pbxproj deleted file mode 100644 index 3da4c700c..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1150 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 43DD75E6249025250038F7AB /* ClientRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43DD75DC249025250038F7AB /* ClientRuntime.framework */; }; - 43DD75ED249025250038F7AB /* ClientRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 43DD75DF249025250038F7AB /* ClientRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 43DD76A32491526E0038F7AB /* BookXMLTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A12491526E0038F7AB /* BookXMLTests.swift */; }; - 43DD76A42491526E0038F7AB /* XMLEncoderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A22491526E0038F7AB /* XMLEncoderTests.swift */; }; - 43DD76FF2491533C0038F7AB /* NetworkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A62491533B0038F7AB /* NetworkOperation.swift */; }; - 43DD77002491533C0038F7AB /* StreamingProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A72491533B0038F7AB /* StreamingProvider.swift */; }; - 43DD77012491533C0038F7AB /* SdkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A82491533B0038F7AB /* SdkResult.swift */; }; - 43DD77022491533C0038F7AB /* OperationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76A92491533B0038F7AB /* OperationError.swift */; }; - 43DD77032491533C0038F7AB /* OperationQueue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76AA2491533B0038F7AB /* OperationQueue+Extension.swift */; }; - 43DD77042491533C0038F7AB /* ResponsePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76AB2491533B0038F7AB /* ResponsePayload.swift */; }; - 43DD77052491533C0038F7AB /* HttpBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76AC2491533B0038F7AB /* HttpBody.swift */; }; - 43DD77062491533C0038F7AB /* DataNetworkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76AD2491533B0038F7AB /* DataNetworkOperation.swift */; }; - 43DD77072491533C0038F7AB /* ResponseType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76AE2491533B0038F7AB /* ResponseType.swift */; }; - 43DD77082491533C0038F7AB /* HttpSerialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B02491533B0038F7AB /* HttpSerialize.swift */; }; - 43DD77092491533C0038F7AB /* Stream+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B12491533B0038F7AB /* Stream+Extensions.swift */; }; - 43DD770A2491533C0038F7AB /* ProtocolType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B22491533B0038F7AB /* ProtocolType.swift */; }; - 43DD770B2491533C0038F7AB /* HttpRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B32491533B0038F7AB /* HttpRequest.swift */; }; - 43DD770C2491533C0038F7AB /* HttpResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B42491533B0038F7AB /* HttpResponse.swift */; }; - 43DD770D2491533C0038F7AB /* HttpClientConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B52491533B0038F7AB /* HttpClientConfiguration.swift */; }; - 43DD770E2491533C0038F7AB /* HttpClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B62491533B0038F7AB /* HttpClient.swift */; }; - 43DD770F2491533C0038F7AB /* HttpHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B72491533B0038F7AB /* HttpHeaders.swift */; }; - 43DD77102491533C0038F7AB /* HttpMethodType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B82491533B0038F7AB /* HttpMethodType.swift */; }; - 43DD77112491533C0038F7AB /* HttpUrlResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76B92491533B0038F7AB /* HttpUrlResponse.swift */; }; - 43DD77122491533C0038F7AB /* HttpOperationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76BA2491533B0038F7AB /* HttpOperationError.swift */; }; - 43DD77142491533C0038F7AB /* HttpStatusCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76BC2491533B0038F7AB /* HttpStatusCode.swift */; }; - 43DD77152491533C0038F7AB /* StreamErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76BD2491533B0038F7AB /* StreamErrors.swift */; }; - 43DD77162491533C0038F7AB /* ClientError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76BE2491533C0038F7AB /* ClientError.swift */; }; - 43DD771A2491533C0038F7AB /* SdkError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76C32491533C0038F7AB /* SdkError.swift */; }; - 43DD771B2491533C0038F7AB /* StreamEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76C42491533C0038F7AB /* StreamEvents.swift */; }; - 43DD771C2491533C0038F7AB /* StreamingNetworkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76C52491533C0038F7AB /* StreamingNetworkOperation.swift */; }; - 43DD771D2491533C0038F7AB /* Endpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76C62491533C0038F7AB /* Endpoint.swift */; }; - 43DD771E2491533C0038F7AB /* RequestEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76C92491533C0038F7AB /* RequestEncoder.swift */; }; - 43DD771F2491533C0038F7AB /* JSONEncoder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76CA2491533C0038F7AB /* JSONEncoder+Extensions.swift */; }; - 43DD77202491533C0038F7AB /* XMLEncoder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76CB2491533C0038F7AB /* XMLEncoder+Extensions.swift */; }; - 43DD77212491533C0038F7AB /* JSONDecoder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76CD2491533C0038F7AB /* JSONDecoder+Extensions.swift */; }; - 43DD77222491533C0038F7AB /* XMLDecoder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76CE2491533C0038F7AB /* XMLDecoder+Extensions.swift */; }; - 43DD77232491533C0038F7AB /* ResponseDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76CF2491533C0038F7AB /* ResponseDecoder.swift */; }; - 43DD77242491533C0038F7AB /* XMLKeyBasedStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D12491533C0038F7AB /* XMLKeyBasedStorage.swift */; }; - 43DD77252491533C0038F7AB /* XMLTreeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D32491533C0038F7AB /* XMLTreeParser.swift */; }; - 43DD77262491533C0038F7AB /* XMLElementRepresentable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D52491533C0038F7AB /* XMLElementRepresentable+Extensions.swift */; }; - 43DD77272491533C0038F7AB /* XMLSingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D62491533C0038F7AB /* XMLSingleValueEncodingContainer.swift */; }; - 43DD77282491533C0038F7AB /* XMLEncoderImplementation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D72491533C0038F7AB /* XMLEncoderImplementation.swift */; }; - 43DD77292491533C0038F7AB /* XMLReferencingEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D82491533C0038F7AB /* XMLReferencingEncoder.swift */; }; - 43DD772A2491533C0038F7AB /* XMLEncoderOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76D92491533C0038F7AB /* XMLEncoderOptions.swift */; }; - 43DD772B2491533C0038F7AB /* XMLKeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76DA2491533C0038F7AB /* XMLKeyedEncodingContainer.swift */; }; - 43DD772C2491533C0038F7AB /* XMLUnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76DB2491533C0038F7AB /* XMLUnkeyedEncodingContainer.swift */; }; - 43DD772D2491533C0038F7AB /* XMLEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76DC2491533C0038F7AB /* XMLEncoder.swift */; }; - 43DD772E2491533C0038F7AB /* EncodingError+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76DD2491533C0038F7AB /* EncodingError+Extensions.swift */; }; - 43DD772F2491533C0038F7AB /* XMLEncodingStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76DE2491533C0038F7AB /* XMLEncodingStorage.swift */; }; - 43DD77302491533C0038F7AB /* XMLHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E02491533C0038F7AB /* XMLHeader.swift */; }; - 43DD77312491533C0038F7AB /* XMLAttributeRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E12491533C0038F7AB /* XMLAttributeRepresentable.swift */; }; - 43DD77322491533C0038F7AB /* XMLAnySequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E22491533C0038F7AB /* XMLAnySequence.swift */; }; - 43DD77332491533C0038F7AB /* XMLElementRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E32491533C0038F7AB /* XMLElementRepresentable.swift */; }; - 43DD77342491533C0038F7AB /* XMLKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E42491533C0038F7AB /* XMLKey.swift */; }; - 43DD77352491533C0038F7AB /* XMLUnkeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E62491533C0038F7AB /* XMLUnkeyedDecodingContainer.swift */; }; - 43DD77362491533C0038F7AB /* XMLKeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E72491533C0038F7AB /* XMLKeyedDecodingContainer.swift */; }; - 43DD77372491533C0038F7AB /* XMLDecodingStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E82491533C0038F7AB /* XMLDecodingStorage.swift */; }; - 43DD77382491533C0038F7AB /* XMLDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76E92491533C0038F7AB /* XMLDecoder.swift */; }; - 43DD77392491533C0038F7AB /* XMLSingleValueDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76EA2491533C0038F7AB /* XMLSingleValueDecodingContainer.swift */; }; - 43DD773A2491533C0038F7AB /* XMLDecoderImplementation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76EB2491533C0038F7AB /* XMLDecoderImplementation.swift */; }; - 43DD773B2491533C0038F7AB /* XMLDecodingError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76EC2491533C0038F7AB /* XMLDecodingError.swift */; }; - 43DD773C2491533C0038F7AB /* XMLBoolContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76EE2491533C0038F7AB /* XMLBoolContainer.swift */; }; - 43DD773D2491533C0038F7AB /* XMLArrayBasedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76EF2491533C0038F7AB /* XMLArrayBasedContainer.swift */; }; - 43DD773E2491533C0038F7AB /* XMLSharedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F02491533C0038F7AB /* XMLSharedContainer.swift */; }; - 43DD773F2491533C0038F7AB /* XMLNullContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F12491533C0038F7AB /* XMLNullContainer.swift */; }; - 43DD77402491533C0038F7AB /* XMLValueContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F22491533C0038F7AB /* XMLValueContainer.swift */; }; - 43DD77412491533C0038F7AB /* XMLKeyBasedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F32491533C0038F7AB /* XMLKeyBasedContainer.swift */; }; - 43DD77422491533C0038F7AB /* XMLDateContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F42491533C0038F7AB /* XMLDateContainer.swift */; }; - 43DD77432491533C0038F7AB /* XMLStringContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F52491533C0038F7AB /* XMLStringContainer.swift */; }; - 43DD77442491533C0038F7AB /* XMLURLContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F62491533C0038F7AB /* XMLURLContainer.swift */; }; - 43DD77452491533C0038F7AB /* XMLIntegerTypesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F72491533C0038F7AB /* XMLIntegerTypesContainer.swift */; }; - 43DD77462491533C0038F7AB /* XMLSimpleKeyBasedContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F82491533C0038F7AB /* XMLSimpleKeyBasedContainer.swift */; }; - 43DD77472491533C0038F7AB /* XMLContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76F92491533C0038F7AB /* XMLContainer.swift */; }; - 43DD77482491533C0038F7AB /* XMLFloatingPointTypesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76FA2491533C0038F7AB /* XMLFloatingPointTypesContainer.swift */; }; - 43DD77492491533C0038F7AB /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD76FC2491533C0038F7AB /* String+Extensions.swift */; }; - 43DD774F24918A920038F7AB /* ResponsePayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD774E24918A920038F7AB /* ResponsePayloadTests.swift */; }; - 43DD7755249197C40038F7AB /* HttpRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7754249197C40038F7AB /* HttpRequestTests.swift */; }; - 43DD77572492A36E0038F7AB /* HttpClientConfigTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77562492A36E0038F7AB /* HttpClientConfigTests.swift */; }; - 43DD77592492AB7E0038F7AB /* HttpHeadersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77582492AB7E0038F7AB /* HttpHeadersTests.swift */; }; - 43DD775B2492B7940038F7AB /* StreamExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD775A2492B7940038F7AB /* StreamExtensionsTests.swift */; }; - 43DD775E2492C8590038F7AB /* StringExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD775D2492C8590038F7AB /* StringExtensionsTests.swift */; }; - 43DD77602493DE570038F7AB /* HttpClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD775F2493DE570038F7AB /* HttpClientTests.swift */; }; - 43DD776224942FBC0038F7AB /* URLSession+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD776124942FBC0038F7AB /* URLSession+Extensions.swift */; }; - 43DD7764249701950038F7AB /* SessionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7763249701950038F7AB /* SessionProtocol.swift */; }; - 43DD7766249702030038F7AB /* MockURLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7765249702030038F7AB /* MockURLSession.swift */; }; - 43DD7768249702C70038F7AB /* MockURLProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7767249702C70038F7AB /* MockURLProtocol.swift */; }; - 43DD776A24973A7A0038F7AB /* URLSessionDelegateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD776924973A7A0038F7AB /* URLSessionDelegateTests.swift */; }; - 43DD776C24973AF60038F7AB /* NetworkingTestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD776B24973AF60038F7AB /* NetworkingTestUtils.swift */; }; - 43DD7771249892A10038F7AB /* BoolTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7770249892A10038F7AB /* BoolTests.swift */; }; - 43DD7773249936740038F7AB /* DateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7772249936740038F7AB /* DateTests.swift */; }; - 43DD7777249957000038F7AB /* XMLSimpleTypesTestsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7776249957000038F7AB /* XMLSimpleTypesTestsUtils.swift */; }; - 43DD77792499576C0038F7AB /* XMLDecoderOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77782499576C0038F7AB /* XMLDecoderOptions.swift */; }; - 43DD777B249964250038F7AB /* FloatFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD777A249964250038F7AB /* FloatFamilyTests.swift */; }; - 43DD777D249976EA0038F7AB /* IntFamilyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD777C249976EA0038F7AB /* IntFamilyTests.swift */; }; - 43DD777F24997CB20038F7AB /* StringTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD777E24997CB20038F7AB /* StringTests.swift */; }; - 43DD778124997EA00038F7AB /* OptionalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD778024997EA00038F7AB /* OptionalTests.swift */; }; - 43DD7783249997530038F7AB /* DictionaryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7782249997530038F7AB /* DictionaryTests.swift */; }; - 43DD77852499A0920038F7AB /* ArrayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77842499A0920038F7AB /* ArrayTests.swift */; }; - 43DD7787249AA6C50038F7AB /* URLTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7786249AA6C50038F7AB /* URLTests.swift */; }; - 43DD778A249AA8820038F7AB /* XMLElementRepresentableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7789249AA8820038F7AB /* XMLElementRepresentableTests.swift */; }; - 43DD778C249AAEC00038F7AB /* XMLHeaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD778B249AAEC00038F7AB /* XMLHeaderTests.swift */; }; - 43DD778E249AB23D0038F7AB /* XMLKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD778D249AB23D0038F7AB /* XMLKeyTests.swift */; }; - 43DD7791249AB2FA0038F7AB /* XMLTreeParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7790249AB2FA0038F7AB /* XMLTreeParserTests.swift */; }; - 43DD7793249BED370038F7AB /* HttpSerializeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7792249BED370038F7AB /* HttpSerializeTests.swift */; }; - 43DD7796249D6FE00038F7AB /* Data+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7795249D6FE00038F7AB /* Data+Extensions.swift */; }; - 43DD7799249FD7550038F7AB /* XMLBoolContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD7798249FD7550038F7AB /* XMLBoolContainerTests.swift */; }; - 43DD779B249FD8F70038F7AB /* XMLDateContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD779A249FD8F70038F7AB /* XMLDateContainerTests.swift */; }; - 43DD779D249FD9C70038F7AB /* XMLFloatFamilyContainers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD779C249FD9C70038F7AB /* XMLFloatFamilyContainers.swift */; }; - 43DD77A0249FDACD0038F7AB /* XMLIntFamilyContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD779F249FDACD0038F7AB /* XMLIntFamilyContainerTests.swift */; }; - 43DD77A2249FDBA30038F7AB /* XMLURLContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77A1249FDBA30038F7AB /* XMLURLContainerTests.swift */; }; - 43DD77A4249FDBFD0038F7AB /* XMLStringContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77A3249FDBFD0038F7AB /* XMLStringContainerTests.swift */; }; - 43DD77A6249FDC570038F7AB /* XMLNullContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77A5249FDC570038F7AB /* XMLNullContainerTests.swift */; }; - 43DD77A8249FDCAA0038F7AB /* XMLSharedContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77A7249FDCAA0038F7AB /* XMLSharedContainerTests.swift */; }; - 43DD77AA249FDD3B0038F7AB /* XMLArrayBasedContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77A9249FDD3B0038F7AB /* XMLArrayBasedContainerTests.swift */; }; - 43DD77AC249FDDDC0038F7AB /* XMLKeyBasedContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77AB249FDDDC0038F7AB /* XMLKeyBasedContainerTests.swift */; }; - 43DD77AE249FE6FF0038F7AB /* XMLSimpleKeyBasedContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77AD249FE6FF0038F7AB /* XMLSimpleKeyBasedContainerTests.swift */; }; - 43DD77B1249FE90F0038F7AB /* EncodingErrorExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DD77B0249FE90F0038F7AB /* EncodingErrorExtensionsTests.swift */; }; - 958620AD24917D7A00EAE3FA /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 958620AC24917D7A00EAE3FA /* SessionDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 43DD75E7249025250038F7AB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 43DD75D3249025250038F7AB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 43DD75DB249025250038F7AB; - remoteInfo = ClientRuntime; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 43DD75DC249025250038F7AB /* ClientRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ClientRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 43DD75DF249025250038F7AB /* ClientRuntime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientRuntime.h; sourceTree = ""; }; - 43DD75E0249025250038F7AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 43DD75E5249025250038F7AB /* ClientRuntimeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ClientRuntimeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 43DD75EC249025250038F7AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 43DD76A12491526E0038F7AB /* BookXMLTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookXMLTests.swift; sourceTree = ""; }; - 43DD76A22491526E0038F7AB /* XMLEncoderTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLEncoderTests.swift; sourceTree = ""; }; - 43DD76A62491533B0038F7AB /* NetworkOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkOperation.swift; sourceTree = ""; }; - 43DD76A72491533B0038F7AB /* StreamingProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StreamingProvider.swift; sourceTree = ""; }; - 43DD76A82491533B0038F7AB /* SdkResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SdkResult.swift; sourceTree = ""; }; - 43DD76A92491533B0038F7AB /* OperationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OperationError.swift; sourceTree = ""; }; - 43DD76AA2491533B0038F7AB /* OperationQueue+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OperationQueue+Extension.swift"; sourceTree = ""; }; - 43DD76AB2491533B0038F7AB /* ResponsePayload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponsePayload.swift; sourceTree = ""; }; - 43DD76AC2491533B0038F7AB /* HttpBody.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpBody.swift; sourceTree = ""; }; - 43DD76AD2491533B0038F7AB /* DataNetworkOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataNetworkOperation.swift; sourceTree = ""; }; - 43DD76AE2491533B0038F7AB /* ResponseType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseType.swift; sourceTree = ""; }; - 43DD76B02491533B0038F7AB /* HttpSerialize.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpSerialize.swift; sourceTree = ""; }; - 43DD76B12491533B0038F7AB /* Stream+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Stream+Extensions.swift"; sourceTree = ""; }; - 43DD76B22491533B0038F7AB /* ProtocolType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProtocolType.swift; sourceTree = ""; }; - 43DD76B32491533B0038F7AB /* HttpRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpRequest.swift; sourceTree = ""; }; - 43DD76B42491533B0038F7AB /* HttpResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpResponse.swift; sourceTree = ""; }; - 43DD76B52491533B0038F7AB /* HttpClientConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClientConfiguration.swift; sourceTree = ""; }; - 43DD76B62491533B0038F7AB /* HttpClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClient.swift; sourceTree = ""; }; - 43DD76B72491533B0038F7AB /* HttpHeaders.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpHeaders.swift; sourceTree = ""; }; - 43DD76B82491533B0038F7AB /* HttpMethodType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpMethodType.swift; sourceTree = ""; }; - 43DD76B92491533B0038F7AB /* HttpUrlResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpUrlResponse.swift; sourceTree = ""; }; - 43DD76BA2491533B0038F7AB /* HttpOperationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpOperationError.swift; sourceTree = ""; }; - 43DD76BB2491533B0038F7AB /* HttpClientDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpClientDelegate.swift; sourceTree = ""; }; - 43DD76BC2491533B0038F7AB /* HttpStatusCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpStatusCode.swift; sourceTree = ""; }; - 43DD76BD2491533B0038F7AB /* StreamErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StreamErrors.swift; sourceTree = ""; }; - 43DD76BE2491533C0038F7AB /* ClientError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClientError.swift; sourceTree = ""; }; - 43DD76C02491533C0038F7AB /* MqttOperationError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttOperationError.swift; sourceTree = ""; }; - 43DD76C12491533C0038F7AB /* MqttClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttClient.swift; sourceTree = ""; }; - 43DD76C22491533C0038F7AB /* MqttResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MqttResponse.swift; sourceTree = ""; }; - 43DD76C32491533C0038F7AB /* SdkError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SdkError.swift; sourceTree = ""; }; - 43DD76C42491533C0038F7AB /* StreamEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StreamEvents.swift; sourceTree = ""; }; - 43DD76C52491533C0038F7AB /* StreamingNetworkOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StreamingNetworkOperation.swift; sourceTree = ""; }; - 43DD76C62491533C0038F7AB /* Endpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Endpoint.swift; sourceTree = ""; }; - 43DD76C92491533C0038F7AB /* RequestEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestEncoder.swift; sourceTree = ""; }; - 43DD76CA2491533C0038F7AB /* JSONEncoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "JSONEncoder+Extensions.swift"; sourceTree = ""; }; - 43DD76CB2491533C0038F7AB /* XMLEncoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XMLEncoder+Extensions.swift"; sourceTree = ""; }; - 43DD76CD2491533C0038F7AB /* JSONDecoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "JSONDecoder+Extensions.swift"; sourceTree = ""; }; - 43DD76CE2491533C0038F7AB /* XMLDecoder+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XMLDecoder+Extensions.swift"; sourceTree = ""; }; - 43DD76CF2491533C0038F7AB /* ResponseDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseDecoder.swift; sourceTree = ""; }; - 43DD76D12491533C0038F7AB /* XMLKeyBasedStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLKeyBasedStorage.swift; sourceTree = ""; }; - 43DD76D32491533C0038F7AB /* XMLTreeParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLTreeParser.swift; sourceTree = ""; }; - 43DD76D52491533C0038F7AB /* XMLElementRepresentable+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XMLElementRepresentable+Extensions.swift"; sourceTree = ""; }; - 43DD76D62491533C0038F7AB /* XMLSingleValueEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLSingleValueEncodingContainer.swift; sourceTree = ""; }; - 43DD76D72491533C0038F7AB /* XMLEncoderImplementation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLEncoderImplementation.swift; sourceTree = ""; }; - 43DD76D82491533C0038F7AB /* XMLReferencingEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLReferencingEncoder.swift; sourceTree = ""; }; - 43DD76D92491533C0038F7AB /* XMLEncoderOptions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLEncoderOptions.swift; sourceTree = ""; }; - 43DD76DA2491533C0038F7AB /* XMLKeyedEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLKeyedEncodingContainer.swift; sourceTree = ""; }; - 43DD76DB2491533C0038F7AB /* XMLUnkeyedEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLUnkeyedEncodingContainer.swift; sourceTree = ""; }; - 43DD76DC2491533C0038F7AB /* XMLEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLEncoder.swift; sourceTree = ""; }; - 43DD76DD2491533C0038F7AB /* EncodingError+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "EncodingError+Extensions.swift"; sourceTree = ""; }; - 43DD76DE2491533C0038F7AB /* XMLEncodingStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLEncodingStorage.swift; sourceTree = ""; }; - 43DD76E02491533C0038F7AB /* XMLHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLHeader.swift; sourceTree = ""; }; - 43DD76E12491533C0038F7AB /* XMLAttributeRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLAttributeRepresentable.swift; sourceTree = ""; }; - 43DD76E22491533C0038F7AB /* XMLAnySequence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLAnySequence.swift; sourceTree = ""; }; - 43DD76E32491533C0038F7AB /* XMLElementRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLElementRepresentable.swift; sourceTree = ""; }; - 43DD76E42491533C0038F7AB /* XMLKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLKey.swift; sourceTree = ""; }; - 43DD76E62491533C0038F7AB /* XMLUnkeyedDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLUnkeyedDecodingContainer.swift; sourceTree = ""; }; - 43DD76E72491533C0038F7AB /* XMLKeyedDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLKeyedDecodingContainer.swift; sourceTree = ""; }; - 43DD76E82491533C0038F7AB /* XMLDecodingStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLDecodingStorage.swift; sourceTree = ""; }; - 43DD76E92491533C0038F7AB /* XMLDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLDecoder.swift; sourceTree = ""; }; - 43DD76EA2491533C0038F7AB /* XMLSingleValueDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLSingleValueDecodingContainer.swift; sourceTree = ""; }; - 43DD76EB2491533C0038F7AB /* XMLDecoderImplementation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLDecoderImplementation.swift; sourceTree = ""; }; - 43DD76EC2491533C0038F7AB /* XMLDecodingError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLDecodingError.swift; sourceTree = ""; }; - 43DD76EE2491533C0038F7AB /* XMLBoolContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLBoolContainer.swift; sourceTree = ""; }; - 43DD76EF2491533C0038F7AB /* XMLArrayBasedContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLArrayBasedContainer.swift; sourceTree = ""; }; - 43DD76F02491533C0038F7AB /* XMLSharedContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLSharedContainer.swift; sourceTree = ""; }; - 43DD76F12491533C0038F7AB /* XMLNullContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLNullContainer.swift; sourceTree = ""; }; - 43DD76F22491533C0038F7AB /* XMLValueContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLValueContainer.swift; sourceTree = ""; }; - 43DD76F32491533C0038F7AB /* XMLKeyBasedContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLKeyBasedContainer.swift; sourceTree = ""; }; - 43DD76F42491533C0038F7AB /* XMLDateContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLDateContainer.swift; sourceTree = ""; }; - 43DD76F52491533C0038F7AB /* XMLStringContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLStringContainer.swift; sourceTree = ""; }; - 43DD76F62491533C0038F7AB /* XMLURLContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLURLContainer.swift; sourceTree = ""; }; - 43DD76F72491533C0038F7AB /* XMLIntegerTypesContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLIntegerTypesContainer.swift; sourceTree = ""; }; - 43DD76F82491533C0038F7AB /* XMLSimpleKeyBasedContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLSimpleKeyBasedContainer.swift; sourceTree = ""; }; - 43DD76F92491533C0038F7AB /* XMLContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLContainer.swift; sourceTree = ""; }; - 43DD76FA2491533C0038F7AB /* XMLFloatingPointTypesContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMLFloatingPointTypesContainer.swift; sourceTree = ""; }; - 43DD76FC2491533C0038F7AB /* String+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = ""; }; - 43DD774E24918A920038F7AB /* ResponsePayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponsePayloadTests.swift; sourceTree = ""; }; - 43DD7754249197C40038F7AB /* HttpRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpRequestTests.swift; sourceTree = ""; }; - 43DD77562492A36E0038F7AB /* HttpClientConfigTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpClientConfigTests.swift; sourceTree = ""; }; - 43DD77582492AB7E0038F7AB /* HttpHeadersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpHeadersTests.swift; sourceTree = ""; }; - 43DD775A2492B7940038F7AB /* StreamExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamExtensionsTests.swift; sourceTree = ""; }; - 43DD775D2492C8590038F7AB /* StringExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensionsTests.swift; sourceTree = ""; }; - 43DD775F2493DE570038F7AB /* HttpClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpClientTests.swift; sourceTree = ""; }; - 43DD776124942FBC0038F7AB /* URLSession+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URLSession+Extensions.swift"; sourceTree = ""; }; - 43DD7763249701950038F7AB /* SessionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionProtocol.swift; sourceTree = ""; }; - 43DD7765249702030038F7AB /* MockURLSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockURLSession.swift; sourceTree = ""; }; - 43DD7767249702C70038F7AB /* MockURLProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockURLProtocol.swift; sourceTree = ""; }; - 43DD776924973A7A0038F7AB /* URLSessionDelegateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLSessionDelegateTests.swift; sourceTree = ""; }; - 43DD776B24973AF60038F7AB /* NetworkingTestUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkingTestUtils.swift; sourceTree = ""; }; - 43DD7770249892A10038F7AB /* BoolTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoolTests.swift; sourceTree = ""; }; - 43DD7772249936740038F7AB /* DateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateTests.swift; sourceTree = ""; }; - 43DD7776249957000038F7AB /* XMLSimpleTypesTestsUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLSimpleTypesTestsUtils.swift; sourceTree = ""; }; - 43DD77782499576C0038F7AB /* XMLDecoderOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLDecoderOptions.swift; sourceTree = ""; }; - 43DD777A249964250038F7AB /* FloatFamilyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatFamilyTests.swift; sourceTree = ""; }; - 43DD777C249976EA0038F7AB /* IntFamilyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntFamilyTests.swift; sourceTree = ""; }; - 43DD777E24997CB20038F7AB /* StringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringTests.swift; sourceTree = ""; }; - 43DD778024997EA00038F7AB /* OptionalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OptionalTests.swift; sourceTree = ""; }; - 43DD7782249997530038F7AB /* DictionaryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryTests.swift; sourceTree = ""; }; - 43DD77842499A0920038F7AB /* ArrayTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayTests.swift; sourceTree = ""; }; - 43DD7786249AA6C50038F7AB /* URLTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLTests.swift; sourceTree = ""; }; - 43DD7789249AA8820038F7AB /* XMLElementRepresentableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLElementRepresentableTests.swift; sourceTree = ""; }; - 43DD778B249AAEC00038F7AB /* XMLHeaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLHeaderTests.swift; sourceTree = ""; }; - 43DD778D249AB23D0038F7AB /* XMLKeyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLKeyTests.swift; sourceTree = ""; }; - 43DD7790249AB2FA0038F7AB /* XMLTreeParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLTreeParserTests.swift; sourceTree = ""; }; - 43DD7792249BED370038F7AB /* HttpSerializeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpSerializeTests.swift; sourceTree = ""; }; - 43DD7795249D6FE00038F7AB /* Data+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Extensions.swift"; sourceTree = ""; }; - 43DD7798249FD7550038F7AB /* XMLBoolContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLBoolContainerTests.swift; sourceTree = ""; }; - 43DD779A249FD8F70038F7AB /* XMLDateContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLDateContainerTests.swift; sourceTree = ""; }; - 43DD779C249FD9C70038F7AB /* XMLFloatFamilyContainers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLFloatFamilyContainers.swift; sourceTree = ""; }; - 43DD779F249FDACD0038F7AB /* XMLIntFamilyContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLIntFamilyContainerTests.swift; sourceTree = ""; }; - 43DD77A1249FDBA30038F7AB /* XMLURLContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLURLContainerTests.swift; sourceTree = ""; }; - 43DD77A3249FDBFD0038F7AB /* XMLStringContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLStringContainerTests.swift; sourceTree = ""; }; - 43DD77A5249FDC570038F7AB /* XMLNullContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLNullContainerTests.swift; sourceTree = ""; }; - 43DD77A7249FDCAA0038F7AB /* XMLSharedContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLSharedContainerTests.swift; sourceTree = ""; }; - 43DD77A9249FDD3B0038F7AB /* XMLArrayBasedContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLArrayBasedContainerTests.swift; sourceTree = ""; }; - 43DD77AB249FDDDC0038F7AB /* XMLKeyBasedContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLKeyBasedContainerTests.swift; sourceTree = ""; }; - 43DD77AD249FE6FF0038F7AB /* XMLSimpleKeyBasedContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMLSimpleKeyBasedContainerTests.swift; sourceTree = ""; }; - 43DD77B0249FE90F0038F7AB /* EncodingErrorExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncodingErrorExtensionsTests.swift; sourceTree = ""; }; - 958620AC24917D7A00EAE3FA /* SessionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionDelegate.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 43DD75D9249025250038F7AB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 43DD75E2249025250038F7AB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 43DD75E6249025250038F7AB /* ClientRuntime.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 43DD75D2249025250038F7AB = { - isa = PBXGroup; - children = ( - 43DD75DE249025250038F7AB /* ClientRuntime */, - 43DD75E9249025250038F7AB /* ClientRuntimeTests */, - 43DD75DD249025250038F7AB /* Products */, - ); - sourceTree = ""; - }; - 43DD75DD249025250038F7AB /* Products */ = { - isa = PBXGroup; - children = ( - 43DD75DC249025250038F7AB /* ClientRuntime.framework */, - 43DD75E5249025250038F7AB /* ClientRuntimeTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 43DD75DE249025250038F7AB /* ClientRuntime */ = { - isa = PBXGroup; - children = ( - 43DD76FD2491533C0038F7AB /* Logging */, - 43DD76A52491533B0038F7AB /* Networking */, - 43DD76FB2491533C0038F7AB /* PrimitiveTypeExtensions */, - 43DD76C72491533C0038F7AB /* Serialization */, - 43DD75DF249025250038F7AB /* ClientRuntime.h */, - 43DD75E0249025250038F7AB /* Info.plist */, - ); - path = ClientRuntime; - sourceTree = ""; - }; - 43DD75E9249025250038F7AB /* ClientRuntimeTests */ = { - isa = PBXGroup; - children = ( - 43DD775C2492C8330038F7AB /* PrimitiveTypeExtensionsTests */, - 43DD774D24918A4D0038F7AB /* NetworkingTests */, - 43DD76A02491526E0038F7AB /* XMLTests */, - 43DD75EC249025250038F7AB /* Info.plist */, - ); - path = ClientRuntimeTests; - sourceTree = ""; - }; - 43DD76A02491526E0038F7AB /* XMLTests */ = { - isa = PBXGroup; - children = ( - 43DD77AF249FE88E0038F7AB /* XMLEncoderTests */, - 43DD7797249FD7320038F7AB /* XMLContainersTests */, - 43DD778F249AB2D50038F7AB /* XMLParserTests */, - 43DD7788249AA7AD0038F7AB /* XMLObjectsTests */, - 43DD776F2498922B0038F7AB /* SimpleTypesTests */, - 43DD76A12491526E0038F7AB /* BookXMLTests.swift */, - 43DD76A22491526E0038F7AB /* XMLEncoderTests.swift */, - ); - path = XMLTests; - sourceTree = ""; - }; - 43DD76A52491533B0038F7AB /* Networking */ = { - isa = PBXGroup; - children = ( - 958620AE24917DF200EAE3FA /* Extensions */, - 43DD76BF2491533C0038F7AB /* Mqtt */, - 43DD76AF2491533B0038F7AB /* Http */, - 43DD76A62491533B0038F7AB /* NetworkOperation.swift */, - 43DD76A72491533B0038F7AB /* StreamingProvider.swift */, - 43DD76A82491533B0038F7AB /* SdkResult.swift */, - 43DD76A92491533B0038F7AB /* OperationError.swift */, - 43DD76AA2491533B0038F7AB /* OperationQueue+Extension.swift */, - 43DD76AB2491533B0038F7AB /* ResponsePayload.swift */, - 43DD76AD2491533B0038F7AB /* DataNetworkOperation.swift */, - 43DD76AE2491533B0038F7AB /* ResponseType.swift */, - 43DD76BD2491533B0038F7AB /* StreamErrors.swift */, - 43DD76BE2491533C0038F7AB /* ClientError.swift */, - 43DD76C32491533C0038F7AB /* SdkError.swift */, - 43DD76C42491533C0038F7AB /* StreamEvents.swift */, - 43DD76C52491533C0038F7AB /* StreamingNetworkOperation.swift */, - 43DD76C62491533C0038F7AB /* Endpoint.swift */, - 958620AC24917D7A00EAE3FA /* SessionDelegate.swift */, - 43DD7763249701950038F7AB /* SessionProtocol.swift */, - ); - path = Networking; - sourceTree = ""; - }; - 43DD76AF2491533B0038F7AB /* Http */ = { - isa = PBXGroup; - children = ( - 43DD76AC2491533B0038F7AB /* HttpBody.swift */, - 43DD76B02491533B0038F7AB /* HttpSerialize.swift */, - 43DD76B22491533B0038F7AB /* ProtocolType.swift */, - 43DD76B32491533B0038F7AB /* HttpRequest.swift */, - 43DD76B42491533B0038F7AB /* HttpResponse.swift */, - 43DD76B52491533B0038F7AB /* HttpClientConfiguration.swift */, - 43DD76B62491533B0038F7AB /* HttpClient.swift */, - 43DD76B72491533B0038F7AB /* HttpHeaders.swift */, - 43DD76B82491533B0038F7AB /* HttpMethodType.swift */, - 43DD76B92491533B0038F7AB /* HttpUrlResponse.swift */, - 43DD76BA2491533B0038F7AB /* HttpOperationError.swift */, - 43DD76BB2491533B0038F7AB /* HttpClientDelegate.swift */, - 43DD76BC2491533B0038F7AB /* HttpStatusCode.swift */, - ); - path = Http; - sourceTree = ""; - }; - 43DD76BF2491533C0038F7AB /* Mqtt */ = { - isa = PBXGroup; - children = ( - 43DD76C02491533C0038F7AB /* MqttOperationError.swift */, - 43DD76C12491533C0038F7AB /* MqttClient.swift */, - 43DD76C22491533C0038F7AB /* MqttResponse.swift */, - ); - path = Mqtt; - sourceTree = ""; - }; - 43DD76C72491533C0038F7AB /* Serialization */ = { - isa = PBXGroup; - children = ( - 43DD76C82491533C0038F7AB /* Encoder */, - 43DD76CC2491533C0038F7AB /* Decoder */, - 43DD76D02491533C0038F7AB /* XML */, - ); - path = Serialization; - sourceTree = ""; - }; - 43DD76C82491533C0038F7AB /* Encoder */ = { - isa = PBXGroup; - children = ( - 43DD76C92491533C0038F7AB /* RequestEncoder.swift */, - 43DD76CA2491533C0038F7AB /* JSONEncoder+Extensions.swift */, - 43DD76CB2491533C0038F7AB /* XMLEncoder+Extensions.swift */, - ); - path = Encoder; - sourceTree = ""; - }; - 43DD76CC2491533C0038F7AB /* Decoder */ = { - isa = PBXGroup; - children = ( - 43DD76CD2491533C0038F7AB /* JSONDecoder+Extensions.swift */, - 43DD76CE2491533C0038F7AB /* XMLDecoder+Extensions.swift */, - 43DD76CF2491533C0038F7AB /* ResponseDecoder.swift */, - ); - path = Decoder; - sourceTree = ""; - }; - 43DD76D02491533C0038F7AB /* XML */ = { - isa = PBXGroup; - children = ( - 43DD76D12491533C0038F7AB /* XMLKeyBasedStorage.swift */, - 43DD76D22491533C0038F7AB /* XMLParser */, - 43DD76D42491533C0038F7AB /* XMLEncoder */, - 43DD76DF2491533C0038F7AB /* XMLObjects */, - 43DD76E52491533C0038F7AB /* XMLDecoder */, - 43DD76ED2491533C0038F7AB /* XMLContainers */, - ); - path = XML; - sourceTree = ""; - }; - 43DD76D22491533C0038F7AB /* XMLParser */ = { - isa = PBXGroup; - children = ( - 43DD76D32491533C0038F7AB /* XMLTreeParser.swift */, - ); - path = XMLParser; - sourceTree = ""; - }; - 43DD76D42491533C0038F7AB /* XMLEncoder */ = { - isa = PBXGroup; - children = ( - 43DD76D52491533C0038F7AB /* XMLElementRepresentable+Extensions.swift */, - 43DD76D62491533C0038F7AB /* XMLSingleValueEncodingContainer.swift */, - 43DD76D72491533C0038F7AB /* XMLEncoderImplementation.swift */, - 43DD76D82491533C0038F7AB /* XMLReferencingEncoder.swift */, - 43DD76D92491533C0038F7AB /* XMLEncoderOptions.swift */, - 43DD76DA2491533C0038F7AB /* XMLKeyedEncodingContainer.swift */, - 43DD76DB2491533C0038F7AB /* XMLUnkeyedEncodingContainer.swift */, - 43DD76DC2491533C0038F7AB /* XMLEncoder.swift */, - 43DD76DD2491533C0038F7AB /* EncodingError+Extensions.swift */, - 43DD76DE2491533C0038F7AB /* XMLEncodingStorage.swift */, - ); - path = XMLEncoder; - sourceTree = ""; - }; - 43DD76DF2491533C0038F7AB /* XMLObjects */ = { - isa = PBXGroup; - children = ( - 43DD76E02491533C0038F7AB /* XMLHeader.swift */, - 43DD76E12491533C0038F7AB /* XMLAttributeRepresentable.swift */, - 43DD76E22491533C0038F7AB /* XMLAnySequence.swift */, - 43DD76E32491533C0038F7AB /* XMLElementRepresentable.swift */, - 43DD76E42491533C0038F7AB /* XMLKey.swift */, - ); - path = XMLObjects; - sourceTree = ""; - }; - 43DD76E52491533C0038F7AB /* XMLDecoder */ = { - isa = PBXGroup; - children = ( - 43DD76E62491533C0038F7AB /* XMLUnkeyedDecodingContainer.swift */, - 43DD76E72491533C0038F7AB /* XMLKeyedDecodingContainer.swift */, - 43DD76E82491533C0038F7AB /* XMLDecodingStorage.swift */, - 43DD76E92491533C0038F7AB /* XMLDecoder.swift */, - 43DD76EA2491533C0038F7AB /* XMLSingleValueDecodingContainer.swift */, - 43DD76EB2491533C0038F7AB /* XMLDecoderImplementation.swift */, - 43DD76EC2491533C0038F7AB /* XMLDecodingError.swift */, - 43DD77782499576C0038F7AB /* XMLDecoderOptions.swift */, - ); - path = XMLDecoder; - sourceTree = ""; - }; - 43DD76ED2491533C0038F7AB /* XMLContainers */ = { - isa = PBXGroup; - children = ( - 43DD76EE2491533C0038F7AB /* XMLBoolContainer.swift */, - 43DD76EF2491533C0038F7AB /* XMLArrayBasedContainer.swift */, - 43DD76F02491533C0038F7AB /* XMLSharedContainer.swift */, - 43DD76F12491533C0038F7AB /* XMLNullContainer.swift */, - 43DD76F22491533C0038F7AB /* XMLValueContainer.swift */, - 43DD76F32491533C0038F7AB /* XMLKeyBasedContainer.swift */, - 43DD76F42491533C0038F7AB /* XMLDateContainer.swift */, - 43DD76F52491533C0038F7AB /* XMLStringContainer.swift */, - 43DD76F62491533C0038F7AB /* XMLURLContainer.swift */, - 43DD76F72491533C0038F7AB /* XMLIntegerTypesContainer.swift */, - 43DD76F82491533C0038F7AB /* XMLSimpleKeyBasedContainer.swift */, - 43DD76F92491533C0038F7AB /* XMLContainer.swift */, - 43DD76FA2491533C0038F7AB /* XMLFloatingPointTypesContainer.swift */, - ); - path = XMLContainers; - sourceTree = ""; - }; - 43DD76FB2491533C0038F7AB /* PrimitiveTypeExtensions */ = { - isa = PBXGroup; - children = ( - 43DD7795249D6FE00038F7AB /* Data+Extensions.swift */, - 43DD76FC2491533C0038F7AB /* String+Extensions.swift */, - ); - path = PrimitiveTypeExtensions; - sourceTree = ""; - }; - 43DD76FD2491533C0038F7AB /* Logging */ = { - isa = PBXGroup; - children = ( - ); - path = Logging; - sourceTree = ""; - }; - 43DD774D24918A4D0038F7AB /* NetworkingTests */ = { - isa = PBXGroup; - children = ( - 43DD774E24918A920038F7AB /* ResponsePayloadTests.swift */, - 43DD7754249197C40038F7AB /* HttpRequestTests.swift */, - 43DD77562492A36E0038F7AB /* HttpClientConfigTests.swift */, - 43DD77582492AB7E0038F7AB /* HttpHeadersTests.swift */, - 43DD775A2492B7940038F7AB /* StreamExtensionsTests.swift */, - 43DD775F2493DE570038F7AB /* HttpClientTests.swift */, - 43DD7765249702030038F7AB /* MockURLSession.swift */, - 43DD7767249702C70038F7AB /* MockURLProtocol.swift */, - 43DD776924973A7A0038F7AB /* URLSessionDelegateTests.swift */, - 43DD776B24973AF60038F7AB /* NetworkingTestUtils.swift */, - 43DD7792249BED370038F7AB /* HttpSerializeTests.swift */, - ); - path = NetworkingTests; - sourceTree = ""; - }; - 43DD775C2492C8330038F7AB /* PrimitiveTypeExtensionsTests */ = { - isa = PBXGroup; - children = ( - 43DD775D2492C8590038F7AB /* StringExtensionsTests.swift */, - ); - path = PrimitiveTypeExtensionsTests; - sourceTree = ""; - }; - 43DD776F2498922B0038F7AB /* SimpleTypesTests */ = { - isa = PBXGroup; - children = ( - 43DD7770249892A10038F7AB /* BoolTests.swift */, - 43DD7772249936740038F7AB /* DateTests.swift */, - 43DD7776249957000038F7AB /* XMLSimpleTypesTestsUtils.swift */, - 43DD777A249964250038F7AB /* FloatFamilyTests.swift */, - 43DD777C249976EA0038F7AB /* IntFamilyTests.swift */, - 43DD777E24997CB20038F7AB /* StringTests.swift */, - 43DD778024997EA00038F7AB /* OptionalTests.swift */, - 43DD7782249997530038F7AB /* DictionaryTests.swift */, - 43DD77842499A0920038F7AB /* ArrayTests.swift */, - 43DD7786249AA6C50038F7AB /* URLTests.swift */, - ); - path = SimpleTypesTests; - sourceTree = ""; - }; - 43DD7788249AA7AD0038F7AB /* XMLObjectsTests */ = { - isa = PBXGroup; - children = ( - 43DD7789249AA8820038F7AB /* XMLElementRepresentableTests.swift */, - 43DD778B249AAEC00038F7AB /* XMLHeaderTests.swift */, - 43DD778D249AB23D0038F7AB /* XMLKeyTests.swift */, - ); - path = XMLObjectsTests; - sourceTree = ""; - }; - 43DD778F249AB2D50038F7AB /* XMLParserTests */ = { - isa = PBXGroup; - children = ( - 43DD7790249AB2FA0038F7AB /* XMLTreeParserTests.swift */, - ); - path = XMLParserTests; - sourceTree = ""; - }; - 43DD7797249FD7320038F7AB /* XMLContainersTests */ = { - isa = PBXGroup; - children = ( - 43DD7798249FD7550038F7AB /* XMLBoolContainerTests.swift */, - 43DD779A249FD8F70038F7AB /* XMLDateContainerTests.swift */, - 43DD779C249FD9C70038F7AB /* XMLFloatFamilyContainers.swift */, - 43DD779F249FDACD0038F7AB /* XMLIntFamilyContainerTests.swift */, - 43DD77A1249FDBA30038F7AB /* XMLURLContainerTests.swift */, - 43DD77A3249FDBFD0038F7AB /* XMLStringContainerTests.swift */, - 43DD77A5249FDC570038F7AB /* XMLNullContainerTests.swift */, - 43DD77A7249FDCAA0038F7AB /* XMLSharedContainerTests.swift */, - 43DD77A9249FDD3B0038F7AB /* XMLArrayBasedContainerTests.swift */, - 43DD77AB249FDDDC0038F7AB /* XMLKeyBasedContainerTests.swift */, - 43DD77AD249FE6FF0038F7AB /* XMLSimpleKeyBasedContainerTests.swift */, - ); - path = XMLContainersTests; - sourceTree = ""; - }; - 43DD77AF249FE88E0038F7AB /* XMLEncoderTests */ = { - isa = PBXGroup; - children = ( - 43DD77B0249FE90F0038F7AB /* EncodingErrorExtensionsTests.swift */, - ); - path = XMLEncoderTests; - sourceTree = ""; - }; - 958620AE24917DF200EAE3FA /* Extensions */ = { - isa = PBXGroup; - children = ( - 43DD76B12491533B0038F7AB /* Stream+Extensions.swift */, - 43DD776124942FBC0038F7AB /* URLSession+Extensions.swift */, - ); - path = Extensions; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 43DD75D7249025250038F7AB /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 43DD75ED249025250038F7AB /* ClientRuntime.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 43DD75DB249025250038F7AB /* ClientRuntime */ = { - isa = PBXNativeTarget; - buildConfigurationList = 43DD75F0249025250038F7AB /* Build configuration list for PBXNativeTarget "ClientRuntime" */; - buildPhases = ( - 43DD75D7249025250038F7AB /* Headers */, - 43DD75D8249025250038F7AB /* Sources */, - 43DD75D9249025250038F7AB /* Frameworks */, - 43DD75DA249025250038F7AB /* Resources */, - 43DD77D924A54B070038F7AB /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ClientRuntime; - productName = ClientRuntime; - productReference = 43DD75DC249025250038F7AB /* ClientRuntime.framework */; - productType = "com.apple.product-type.framework"; - }; - 43DD75E4249025250038F7AB /* ClientRuntimeTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 43DD75F3249025250038F7AB /* Build configuration list for PBXNativeTarget "ClientRuntimeTests" */; - buildPhases = ( - 43DD75E1249025250038F7AB /* Sources */, - 43DD75E2249025250038F7AB /* Frameworks */, - 43DD75E3249025250038F7AB /* Resources */, - 43DD77D824A54A470038F7AB /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 43DD75E8249025250038F7AB /* PBXTargetDependency */, - ); - name = ClientRuntimeTests; - productName = ClientRuntimeTests; - productReference = 43DD75E5249025250038F7AB /* ClientRuntimeTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 43DD75D3249025250038F7AB /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1130; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = "Amazon AWS"; - TargetAttributes = { - 43DD75DB249025250038F7AB = { - CreatedOnToolsVersion = 11.3.1; - }; - 43DD75E4249025250038F7AB = { - CreatedOnToolsVersion = 11.3.1; - }; - }; - }; - buildConfigurationList = 43DD75D6249025250038F7AB /* Build configuration list for PBXProject "ClientRuntime" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 43DD75D2249025250038F7AB; - productRefGroup = 43DD75DD249025250038F7AB /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 43DD75DB249025250038F7AB /* ClientRuntime */, - 43DD75E4249025250038F7AB /* ClientRuntimeTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 43DD75DA249025250038F7AB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 43DD75E3249025250038F7AB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 43DD77D824A54A470038F7AB /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: Recommended to install SwiftLint, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; - 43DD77D924A54B070038F7AB /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: Recommended to install SwiftLint, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 43DD75D8249025250038F7AB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 43DD773B2491533C0038F7AB /* XMLDecodingError.swift in Sources */, - 43DD77302491533C0038F7AB /* XMLHeader.swift in Sources */, - 43DD77142491533C0038F7AB /* HttpStatusCode.swift in Sources */, - 43DD77382491533C0038F7AB /* XMLDecoder.swift in Sources */, - 43DD77242491533C0038F7AB /* XMLKeyBasedStorage.swift in Sources */, - 43DD77792499576C0038F7AB /* XMLDecoderOptions.swift in Sources */, - 43DD77212491533C0038F7AB /* JSONDecoder+Extensions.swift in Sources */, - 43DD772E2491533C0038F7AB /* EncodingError+Extensions.swift in Sources */, - 43DD77362491533C0038F7AB /* XMLKeyedDecodingContainer.swift in Sources */, - 43DD77092491533C0038F7AB /* Stream+Extensions.swift in Sources */, - 43DD772F2491533C0038F7AB /* XMLEncodingStorage.swift in Sources */, - 43DD772C2491533C0038F7AB /* XMLUnkeyedEncodingContainer.swift in Sources */, - 43DD77032491533C0038F7AB /* OperationQueue+Extension.swift in Sources */, - 43DD77412491533C0038F7AB /* XMLKeyBasedContainer.swift in Sources */, - 43DD77262491533C0038F7AB /* XMLElementRepresentable+Extensions.swift in Sources */, - 43DD77102491533C0038F7AB /* HttpMethodType.swift in Sources */, - 43DD77202491533C0038F7AB /* XMLEncoder+Extensions.swift in Sources */, - 43DD773C2491533C0038F7AB /* XMLBoolContainer.swift in Sources */, - 43DD77012491533C0038F7AB /* SdkResult.swift in Sources */, - 43DD771C2491533C0038F7AB /* StreamingNetworkOperation.swift in Sources */, - 43DD773D2491533C0038F7AB /* XMLArrayBasedContainer.swift in Sources */, - 43DD77072491533C0038F7AB /* ResponseType.swift in Sources */, - 43DD77342491533C0038F7AB /* XMLKey.swift in Sources */, - 43DD773A2491533C0038F7AB /* XMLDecoderImplementation.swift in Sources */, - 43DD771D2491533C0038F7AB /* Endpoint.swift in Sources */, - 43DD77352491533C0038F7AB /* XMLUnkeyedDecodingContainer.swift in Sources */, - 43DD77152491533C0038F7AB /* StreamErrors.swift in Sources */, - 43DD77062491533C0038F7AB /* DataNetworkOperation.swift in Sources */, - 43DD77422491533C0038F7AB /* XMLDateContainer.swift in Sources */, - 43DD77282491533C0038F7AB /* XMLEncoderImplementation.swift in Sources */, - 43DD771B2491533C0038F7AB /* StreamEvents.swift in Sources */, - 43DD770B2491533C0038F7AB /* HttpRequest.swift in Sources */, - 43DD776224942FBC0038F7AB /* URLSession+Extensions.swift in Sources */, - 43DD77052491533C0038F7AB /* HttpBody.swift in Sources */, - 43DD773E2491533C0038F7AB /* XMLSharedContainer.swift in Sources */, - 43DD77272491533C0038F7AB /* XMLSingleValueEncodingContainer.swift in Sources */, - 43DD77462491533C0038F7AB /* XMLSimpleKeyBasedContainer.swift in Sources */, - 43DD771F2491533C0038F7AB /* JSONEncoder+Extensions.swift in Sources */, - 43DD77472491533C0038F7AB /* XMLContainer.swift in Sources */, - 43DD77452491533C0038F7AB /* XMLIntegerTypesContainer.swift in Sources */, - 43DD77222491533C0038F7AB /* XMLDecoder+Extensions.swift in Sources */, - 43DD77372491533C0038F7AB /* XMLDecodingStorage.swift in Sources */, - 43DD77492491533C0038F7AB /* String+Extensions.swift in Sources */, - 43DD76FF2491533C0038F7AB /* NetworkOperation.swift in Sources */, - 43DD77022491533C0038F7AB /* OperationError.swift in Sources */, - 43DD770F2491533C0038F7AB /* HttpHeaders.swift in Sources */, - 43DD77002491533C0038F7AB /* StreamingProvider.swift in Sources */, - 43DD773F2491533C0038F7AB /* XMLNullContainer.swift in Sources */, - 43DD772D2491533C0038F7AB /* XMLEncoder.swift in Sources */, - 43DD770E2491533C0038F7AB /* HttpClient.swift in Sources */, - 43DD77392491533C0038F7AB /* XMLSingleValueDecodingContainer.swift in Sources */, - 43DD770A2491533C0038F7AB /* ProtocolType.swift in Sources */, - 43DD77122491533C0038F7AB /* HttpOperationError.swift in Sources */, - 43DD77442491533C0038F7AB /* XMLURLContainer.swift in Sources */, - 43DD77332491533C0038F7AB /* XMLElementRepresentable.swift in Sources */, - 43DD772B2491533C0038F7AB /* XMLKeyedEncodingContainer.swift in Sources */, - 43DD77252491533C0038F7AB /* XMLTreeParser.swift in Sources */, - 43DD77292491533C0038F7AB /* XMLReferencingEncoder.swift in Sources */, - 43DD77402491533C0038F7AB /* XMLValueContainer.swift in Sources */, - 43DD77232491533C0038F7AB /* ResponseDecoder.swift in Sources */, - 43DD770D2491533C0038F7AB /* HttpClientConfiguration.swift in Sources */, - 43DD771E2491533C0038F7AB /* RequestEncoder.swift in Sources */, - 43DD771A2491533C0038F7AB /* SdkError.swift in Sources */, - 43DD77082491533C0038F7AB /* HttpSerialize.swift in Sources */, - 43DD77112491533C0038F7AB /* HttpUrlResponse.swift in Sources */, - 43DD77322491533C0038F7AB /* XMLAnySequence.swift in Sources */, - 43DD7796249D6FE00038F7AB /* Data+Extensions.swift in Sources */, - 43DD772A2491533C0038F7AB /* XMLEncoderOptions.swift in Sources */, - 43DD7764249701950038F7AB /* SessionProtocol.swift in Sources */, - 43DD77312491533C0038F7AB /* XMLAttributeRepresentable.swift in Sources */, - 43DD770C2491533C0038F7AB /* HttpResponse.swift in Sources */, - 43DD77162491533C0038F7AB /* ClientError.swift in Sources */, - 43DD77432491533C0038F7AB /* XMLStringContainer.swift in Sources */, - 43DD77482491533C0038F7AB /* XMLFloatingPointTypesContainer.swift in Sources */, - 43DD77042491533C0038F7AB /* ResponsePayload.swift in Sources */, - 958620AD24917D7A00EAE3FA /* SessionDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 43DD75E1249025250038F7AB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 43DD7791249AB2FA0038F7AB /* XMLTreeParserTests.swift in Sources */, - 43DD775E2492C8590038F7AB /* StringExtensionsTests.swift in Sources */, - 43DD776A24973A7A0038F7AB /* URLSessionDelegateTests.swift in Sources */, - 43DD779B249FD8F70038F7AB /* XMLDateContainerTests.swift in Sources */, - 43DD77602493DE570038F7AB /* HttpClientTests.swift in Sources */, - 43DD778C249AAEC00038F7AB /* XMLHeaderTests.swift in Sources */, - 43DD779D249FD9C70038F7AB /* XMLFloatFamilyContainers.swift in Sources */, - 43DD77AA249FDD3B0038F7AB /* XMLArrayBasedContainerTests.swift in Sources */, - 43DD7768249702C70038F7AB /* MockURLProtocol.swift in Sources */, - 43DD778124997EA00038F7AB /* OptionalTests.swift in Sources */, - 43DD77572492A36E0038F7AB /* HttpClientConfigTests.swift in Sources */, - 43DD7787249AA6C50038F7AB /* URLTests.swift in Sources */, - 43DD777F24997CB20038F7AB /* StringTests.swift in Sources */, - 43DD777B249964250038F7AB /* FloatFamilyTests.swift in Sources */, - 43DD76A42491526E0038F7AB /* XMLEncoderTests.swift in Sources */, - 43DD77AC249FDDDC0038F7AB /* XMLKeyBasedContainerTests.swift in Sources */, - 43DD77A4249FDBFD0038F7AB /* XMLStringContainerTests.swift in Sources */, - 43DD77A6249FDC570038F7AB /* XMLNullContainerTests.swift in Sources */, - 43DD774F24918A920038F7AB /* ResponsePayloadTests.swift in Sources */, - 43DD77A2249FDBA30038F7AB /* XMLURLContainerTests.swift in Sources */, - 43DD777D249976EA0038F7AB /* IntFamilyTests.swift in Sources */, - 43DD77B1249FE90F0038F7AB /* EncodingErrorExtensionsTests.swift in Sources */, - 43DD76A32491526E0038F7AB /* BookXMLTests.swift in Sources */, - 43DD7793249BED370038F7AB /* HttpSerializeTests.swift in Sources */, - 43DD77592492AB7E0038F7AB /* HttpHeadersTests.swift in Sources */, - 43DD776C24973AF60038F7AB /* NetworkingTestUtils.swift in Sources */, - 43DD778A249AA8820038F7AB /* XMLElementRepresentableTests.swift in Sources */, - 43DD7773249936740038F7AB /* DateTests.swift in Sources */, - 43DD7777249957000038F7AB /* XMLSimpleTypesTestsUtils.swift in Sources */, - 43DD7799249FD7550038F7AB /* XMLBoolContainerTests.swift in Sources */, - 43DD778E249AB23D0038F7AB /* XMLKeyTests.swift in Sources */, - 43DD775B2492B7940038F7AB /* StreamExtensionsTests.swift in Sources */, - 43DD7766249702030038F7AB /* MockURLSession.swift in Sources */, - 43DD77A8249FDCAA0038F7AB /* XMLSharedContainerTests.swift in Sources */, - 43DD77852499A0920038F7AB /* ArrayTests.swift in Sources */, - 43DD7783249997530038F7AB /* DictionaryTests.swift in Sources */, - 43DD7755249197C40038F7AB /* HttpRequestTests.swift in Sources */, - 43DD77A0249FDACD0038F7AB /* XMLIntFamilyContainerTests.swift in Sources */, - 43DD7771249892A10038F7AB /* BoolTests.swift in Sources */, - 43DD77AE249FE6FF0038F7AB /* XMLSimpleKeyBasedContainerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 43DD75E8249025250038F7AB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 43DD75DB249025250038F7AB /* ClientRuntime */; - targetProxy = 43DD75E7249025250038F7AB /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 43DD75EE249025250038F7AB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 43DD75EF249025250038F7AB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.2; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 43DD75F1249025250038F7AB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = W3DRXD72QU; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ClientRuntime/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.amazonaws.ClientRuntime; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 43DD75F2249025250038F7AB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = W3DRXD72QU; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ClientRuntime/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.amazonaws.ClientRuntime; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 43DD75F4249025250038F7AB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = W3DRXD72QU; - INFOPLIST_FILE = ClientRuntimeTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.amazonaws.ClientRuntimeTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 43DD75F5249025250038F7AB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = W3DRXD72QU; - INFOPLIST_FILE = ClientRuntimeTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.amazonaws.ClientRuntimeTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 43DD75D6249025250038F7AB /* Build configuration list for PBXProject "ClientRuntime" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 43DD75EE249025250038F7AB /* Debug */, - 43DD75EF249025250038F7AB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 43DD75F0249025250038F7AB /* Build configuration list for PBXNativeTarget "ClientRuntime" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 43DD75F1249025250038F7AB /* Debug */, - 43DD75F2249025250038F7AB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 43DD75F3249025250038F7AB /* Build configuration list for PBXNativeTarget "ClientRuntimeTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 43DD75F4249025250038F7AB /* Debug */, - 43DD75F5249025250038F7AB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 43DD75D3249025250038F7AB /* Project object */; -} diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 557f95af9..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/edupp.xcuserdatad/UserInterfaceState.xcuserstate b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/edupp.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index eaf2a6eccfa49a6ff8b9eb7b8f9e3bf2e822da7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49285 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 diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/nickik.xcuserdatad/UserInterfaceState.xcuserstate b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/project.xcworkspace/xcuserdata/nickik.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 18890c1287d40a5297651ef1d5b1c438f5410502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31605 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 z 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

tz4{ diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntime.xcscheme b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntime.xcscheme deleted file mode 100644 index 77df6179a..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntime.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntimeTests.xcscheme b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntimeTests.xcscheme deleted file mode 100644 index 4dff08776..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcshareddata/xcschemes/ClientRuntimeTests.xcscheme +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/edupp.xcuserdatad/xcschemes/xcschememanagement.plist b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/edupp.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 1b103dd6a..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/edupp.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - ClientRuntime.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/nickik.xcuserdatad/xcschemes/xcschememanagement.plist b/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/nickik.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 1b103dd6a..000000000 --- a/smithy-swift/ClientRuntime/ClientRuntime.xcodeproj/xcuserdata/nickik.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - ClientRuntime.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/smithy-swift/ClientRuntime/ClientRuntime/Serialization/XML/XMLEncoder/XMLEncoderImplementation.swift b/smithy-swift/ClientRuntime/ClientRuntime/Serialization/XML/XMLEncoder/XMLEncoderImplementation.swift index 793a2db18..facf0f329 100644 --- a/smithy-swift/ClientRuntime/ClientRuntime/Serialization/XML/XMLEncoder/XMLEncoderImplementation.swift +++ b/smithy-swift/ClientRuntime/ClientRuntime/Serialization/XML/XMLEncoder/XMLEncoderImplementation.swift @@ -4,6 +4,8 @@ // // TODO:: Add copyrights +import Foundation + class XMLEncoderImplementation: Encoder { // MARK: Properties diff --git a/smithy-swift/ClientRuntime/Package.swift b/smithy-swift/ClientRuntime/Package.swift new file mode 100644 index 000000000..f59e3868e --- /dev/null +++ b/smithy-swift/ClientRuntime/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version:5.1 +import PackageDescription + +let package = Package( + name: "ClientRuntime", + platforms: [ + .macOS(.v10_15), + .iOS(.v13) + ], + products: [ + .library(name: "ClientRuntime", targets: ["ClientRuntime"]) + ], + targets: [ + .target( + name: "ClientRuntime", + path: "./ClientRuntime" + ), + .testTarget( + name: "ClientRuntimeTests", + path: "./ClientRuntimeTests" + ) + ] +) diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/CodegenVisitor.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/CodegenVisitor.kt index 4fd71059f..8b664f287 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/CodegenVisitor.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/CodegenVisitor.kt @@ -49,6 +49,9 @@ class CodegenVisitor(context: PluginContext) : ShapeVisitor.Default() { println("Generating swift podspec file") writePodspec(settings, fileManifest, dependencies) + println("Generating package manifest file") + writePackageManifest(settings, fileManifest, dependencies) + println("Generating info plist") writeInfoPlist(settings, fileManifest) } diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt new file mode 100644 index 000000000..01a2fc3f8 --- /dev/null +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt @@ -0,0 +1,74 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package software.amazon.smithy.swift.codegen + +import software.amazon.smithy.build.FileManifest +import software.amazon.smithy.codegen.core.SymbolDependency +import software.amazon.smithy.utils.CodeWriter + +fun writePackageManifest(settings: SwiftSettings, fileManifest: FileManifest, dependencies: List) { + + // filter duplicates in dependencies + // val distinctDependencies = dependencies.distinctBy { it.packageName } + val writer = CodeWriter().apply { + trimBlankLines() + trimTrailingSpaces() + setIndentText(" ") + } + + writer.write("// swift-tools-version:5.1") + writer.write("") + writer.write("import PackageDescription") + + writer.openBlock("let package = Package(", ")") { + writer.write("name: '${settings.moduleName}',") + + writer.openBlock("platforms: [", "]") { + writer.write(".macOS(.v10_15), .iOS(.v13)") + } + + writer.openBlock("products: [", "]") { + writer.write(".library(name: '${settings.moduleName}', targets: ['${settings.moduleName}'])") + } + + writer.openBlock("dependencies: [", "]") { + for (dependency in dependencies) { + val dependencyURL = dependency.expectProperty("url", String::class.java) + if (dependencyURL.take(4).toLowerCase().equals("http")) { + writer.openBlock(".package(", ")") { + writer.write("url: '$dependencyURL',") + writer.write("from: ${dependency.version}") + } + } + else { + writer.write(".package(path: '$dependencyURL')") + } + } + } + + writer.openBlock("targets: [", "]") { + writer.openBlock(".target(", ")") { + writer.write("name: '${settings.moduleName}',") + writer.openBlock("dependencies: [", "]") { + writer.write(dependencies.map { it.packageName }.joinToString(separator = ", ")) + } + writer.write("path: './${settings.moduleName}'") + } + } + } + + val contents = writer.toString() + fileManifest.writeFile("Package.swift", contents) +} diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt index 13c5fa97d..c32cdb6a3 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt @@ -18,15 +18,19 @@ package software.amazon.smithy.swift.codegen import software.amazon.smithy.codegen.core.SymbolDependency import software.amazon.smithy.codegen.core.SymbolDependencyContainer -enum class SwiftDependency(val type: String, val namespace: String, val version: String) : SymbolDependencyContainer { - BIG("pod", "BigNumber", "2.0"), - CLIENT_RUNTIME("pod", "ClientRuntime", "0.1.0"); +enum class SwiftDependency(val type: String, + val namespace: String, + val version: String, + val url: String) : SymbolDependencyContainer { + BIG("pod", "BigNumber", "2.0", url = "https://github.com/mkrd/Swift-Big-Integer.git"), + CLIENT_RUNTIME("pod", "ClientRuntime", "0.1.0", "../../../../../../ClientRuntime"); override fun getDependencies(): List { val dependency = SymbolDependency.builder() .dependencyType(type) .packageName(namespace) .version(version) + .putProperty("url", url) .build() return listOf(dependency) } diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt new file mode 100644 index 000000000..b00bd36f7 --- /dev/null +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt @@ -0,0 +1,119 @@ +/* + * + * * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * * + * * Licensed under the Apache License, Version 2.0 (the "License"). + * * You may not use this file except in compliance with the License. + * * A copy of the License is located at + * * + * * http://aws.amazon.com/apache2.0 + * * + * * or in the "license" file accompanying this file. This file is distributed + * * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * * express or implied. See the License for the specific language governing + * * permissions and limitations under the License. + * + */ + +package software.amazon.smithy.swift.codegen + +import io.kotest.matchers.string.shouldContain +import kotlin.streams.toList +import org.junit.jupiter.api.Assertions.assertNotNull +import org.junit.jupiter.api.Test +import software.amazon.smithy.build.MockManifest +import software.amazon.smithy.codegen.core.SymbolDependency +import software.amazon.smithy.codegen.core.SymbolProvider +import software.amazon.smithy.model.Model +import software.amazon.smithy.model.node.Node + +class PackageManifestGeneratorTests : TestsBase() { + + private val model: Model + private val settings: SwiftSettings + private val manifest: MockManifest + private val mockDependencies: MutableList + + init { + model = createModelFromSmithy("simple-service-with-operation-and-dependency.smithy") + settings = SwiftSettings.from( + model, + Node.objectNodeBuilder() + .withMember("module", Node.from("MockSDK")) + .withMember("moduleVersion", Node.from("1.0.0")) + .withMember("homepage", Node.from("https://docs.amplify.aws/")) + .withMember("author", Node.from("Amazon Web Services")) + .withMember("gitRepo", Node.from("https://github.com/aws-amplify/amplify-codegen.git")) + .build() + ) + manifest = MockManifest() + val provider: SymbolProvider = SwiftCodegenPlugin.createSymbolProvider(model, "MockSDK") + mockDependencies = getMockDependenciesFromModel(model, provider) + } + + @Test + fun `it renders package manifest file with correct dependencies block`() { + writePackageManifest(settings, manifest, mockDependencies) + val packageManifest = manifest.getFileString("Package.swift").get() + assertNotNull(packageManifest) + packageManifest.shouldContain( + "dependencies: [\n" + + " .package(\n" + + " url: 'https://github.com/mkrd/Swift-Big-Integer.git',\n" + + " from: 2.0\n" + + " )\n" + + " .package(path: '../../../../../../ClientRuntime')\n" + + " ]") + } + + @Test + fun `it renders package manifest file with correct platforms block`() { + writePackageManifest(settings, manifest, mockDependencies) + val packageManifest = manifest.getFileString("Package.swift").get() + assertNotNull(packageManifest) + packageManifest.shouldContain( + "platforms: [\n" + + " .macOS(.v10_15), .iOS(.v13)\n" + + " ]") + } + + @Test + fun `it renders package manifest file with correct products block`() { + writePackageManifest(settings, manifest, mockDependencies) + val packageManifest = manifest.getFileString("Package.swift").get() + assertNotNull(packageManifest) + packageManifest.shouldContain( + "products: [\n" + + " .library(name: 'MockSDK', targets: ['MockSDK'])\n" + + " ]") + } + + @Test + fun `it renders package manifest file with correct targets block`() { + writePackageManifest(settings, manifest, mockDependencies) + val packageManifest = manifest.getFileString("Package.swift").get() + assertNotNull(packageManifest) + packageManifest.shouldContain( + "targets: [\n" + + " .target(\n" + + " name: 'MockSDK',\n" + + " dependencies: [\n" + + " BigNumber, ClientRuntime\n" + + " ]\n" + + " path: './MockSDK'\n" + + " )\n" + + " ]") + } + + fun getMockDependenciesFromModel(model: Model, symbolProvider: SymbolProvider): MutableList { + val mockDependencies = mutableListOf() + + // BigInteger and Document types have dependencies on other packages + val bigIntTypeMember = model.shapes().filter { it.isBigIntegerShape }.toList().first() + mockDependencies.addAll(symbolProvider.toSymbol(bigIntTypeMember).dependencies) + + val documentTypeMember = model.shapes().filter { it.isDocumentShape }.toList().first() + mockDependencies.addAll(symbolProvider.toSymbol(documentTypeMember).dependencies) + return mockDependencies + } +} From 259019a3ec266fcccdfe1c0de87a631a3db0a55e Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 10 Jul 2020 11:18:50 -0700 Subject: [PATCH 02/14] feat: tools support to test code generated sdk builds --- smithy-swift/buildSrc/build.gradle.kts | 7 ++ .../swift/gradle/tasks/BuildGeneratedSDK.kt | 83 +++++++++++++++++++ .../build.gradle.kts | 29 ++++++- .../swift/codegen/PackageManifestGenerator.kt | 28 +++---- .../smithy/swift/codegen/ServiceGenerator.kt | 2 + .../codegen/PackageManifestGeneratorTests.kt | 22 ++--- .../swift/codegen/ServiceGeneratorTests.kt | 5 ++ 7 files changed, 147 insertions(+), 29 deletions(-) create mode 100644 smithy-swift/buildSrc/build.gradle.kts create mode 100644 smithy-swift/buildSrc/src/main/kotlin/software/amazon/smithy/swift/gradle/tasks/BuildGeneratedSDK.kt diff --git a/smithy-swift/buildSrc/build.gradle.kts b/smithy-swift/buildSrc/build.gradle.kts new file mode 100644 index 000000000..c39a297b0 --- /dev/null +++ b/smithy-swift/buildSrc/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + `kotlin-dsl` +} + +repositories { + jcenter() +} \ No newline at end of file diff --git a/smithy-swift/buildSrc/src/main/kotlin/software/amazon/smithy/swift/gradle/tasks/BuildGeneratedSDK.kt b/smithy-swift/buildSrc/src/main/kotlin/software/amazon/smithy/swift/gradle/tasks/BuildGeneratedSDK.kt new file mode 100644 index 000000000..85f297222 --- /dev/null +++ b/smithy-swift/buildSrc/src/main/kotlin/software/amazon/smithy/swift/gradle/tasks/BuildGeneratedSDK.kt @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package software.amazon.smithy.swift.gradle.tasks + +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException; +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction +import java.io.File +import java.io.IOException +import java.util.concurrent.TimeUnit + +open class BuildGeneratedSDK : DefaultTask() { + @get:Input + var pathToGeneratedSDK = "." + + @TaskAction + fun runSwiftBuild() { + if (swiftBuildToolsExist()) { + val swiftBuildCmd = "swift build" + swiftBuildCmd.runAsProcess(). let { + if (it == null) { + throw GradleException("Running $swiftBuildCmd returned null unexpectedly.") + } + val swiftBuildCmdOutput = it.inputStream.bufferedReader().readText() + println("swift build output: \n $swiftBuildCmdOutput") + if (it.exitValue() != 0) { + it.destroy() + throw GradleException("Non-Zero exit code for process: $swiftBuildCmd") + } + it.destroy() + } + } + else { + println("warning: Could not find swift build tools in host machine. Skip building generated SDK.") + } + } + + private fun swiftBuildToolsExist(): Boolean { + val swiftVersionCmd = "swift --version" + swiftVersionCmd.runAsProcess().let { + if (it == null) { + return false + } + if (it.exitValue() != 0) { + it.destroy() + return false + } + val swiftBuildToolsVersion = it.inputStream.bufferedReader().readText() + it.destroy() + println("Swift build tools version found: $swiftBuildToolsVersion") + return true + } + } + + private fun String.runAsProcess( + workingDir: File = File(pathToGeneratedSDK), + timeoutInMinutes: Long = 3 + ): Process? = try { + println("process working directory exists: ${workingDir.exists()}") + ProcessBuilder(*split(" ").toTypedArray()) + .directory(workingDir) + .redirectOutput(ProcessBuilder.Redirect.PIPE) + .redirectError(ProcessBuilder.Redirect.PIPE) + .start() + .apply { waitFor(timeoutInMinutes, TimeUnit.MINUTES) } + } catch (e: IOException) { + e.printStackTrace() + null + } +} \ No newline at end of file diff --git a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts index 8f7a9b868..a309d1e72 100644 --- a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts +++ b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. @@ -13,17 +13,38 @@ * permissions and limitations under the License. */ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import software.amazon.smithy.swift.gradle.tasks.BuildGeneratedSDK + extra["displayName"] = "Smithy :: Swift :: Codegen :: Test" extra["moduleName"] = "software.amazon.smithy.swift.codegen.test" -tasks["jar"].enabled = false - plugins { id("software.amazon.smithy").version("0.5.0") + kotlin("jvm") } - dependencies { implementation(project(":smithy-swift-codegen")) implementation("software.amazon.smithy:smithy-protocol-test-traits:1.0.0") implementation("software.amazon.smithy:smithy-aws-traits:1.0.0") + implementation(kotlin("stdlib-jdk8")) +} +repositories { + mavenCentral() +} + +tasks.register("buildGeneratedSDK") { + pathToGeneratedSDK = "$buildDir/smithyprojections/smithy-swift-codegen-test/source/swift-codegen" + dependsOn(tasks["build"]) +} +tasks["jar"].enabled = false +tasks["build"].finalizedBy(getTasksByName("buildGeneratedSDK", true)) + +val compileKotlin: KotlinCompile by tasks +compileKotlin.kotlinOptions { + jvmTarget = "1.8" +} +val compileTestKotlin: KotlinCompile by tasks +compileTestKotlin.kotlinOptions { + jvmTarget = "1.8" } \ No newline at end of file diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt index 01a2fc3f8..29f08e87d 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt @@ -21,7 +21,7 @@ import software.amazon.smithy.utils.CodeWriter fun writePackageManifest(settings: SwiftSettings, fileManifest: FileManifest, dependencies: List) { // filter duplicates in dependencies - // val distinctDependencies = dependencies.distinctBy { it.packageName } + val distinctDependencies = dependencies.distinctBy { it.packageName } val writer = CodeWriter().apply { trimBlankLines() trimTrailingSpaces() @@ -33,38 +33,38 @@ fun writePackageManifest(settings: SwiftSettings, fileManifest: FileManifest, de writer.write("import PackageDescription") writer.openBlock("let package = Package(", ")") { - writer.write("name: '${settings.moduleName}',") + writer.write("name: \"${settings.moduleName}\",") - writer.openBlock("platforms: [", "]") { + writer.openBlock("platforms: [", "],") { writer.write(".macOS(.v10_15), .iOS(.v13)") } - writer.openBlock("products: [", "]") { - writer.write(".library(name: '${settings.moduleName}', targets: ['${settings.moduleName}'])") + writer.openBlock("products: [", "],") { + writer.write(".library(name: \"${settings.moduleName}\", targets: [\"${settings.moduleName}\"])") } - writer.openBlock("dependencies: [", "]") { - for (dependency in dependencies) { + writer.openBlock("dependencies: [", "],") { + for (dependency in distinctDependencies) { val dependencyURL = dependency.expectProperty("url", String::class.java) if (dependencyURL.take(4).toLowerCase().equals("http")) { - writer.openBlock(".package(", ")") { - writer.write("url: '$dependencyURL',") + writer.openBlock(".package(", "),") { + writer.write("url: \"$dependencyURL\",") writer.write("from: ${dependency.version}") } } else { - writer.write(".package(path: '$dependencyURL')") + writer.write(".package(path: \"$dependencyURL\"),") } } } writer.openBlock("targets: [", "]") { writer.openBlock(".target(", ")") { - writer.write("name: '${settings.moduleName}',") - writer.openBlock("dependencies: [", "]") { - writer.write(dependencies.map { it.packageName }.joinToString(separator = ", ")) + writer.write("name: \"${settings.moduleName}\",") + writer.openBlock("dependencies: [", "],") { + writer.write(distinctDependencies.map { "\"${it.packageName}\"" }.joinToString(separator = ", ")) } - writer.write("path: './${settings.moduleName}'") + writer.write("path: \"./${settings.moduleName}\"") } } } diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt index cba038792..0f412902f 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt @@ -18,6 +18,7 @@ package software.amazon.smithy.swift.codegen import software.amazon.smithy.codegen.core.Symbol +import software.amazon.smithy.codegen.core.SymbolDependency import software.amazon.smithy.codegen.core.SymbolProvider import software.amazon.smithy.model.Model import software.amazon.smithy.model.knowledge.OperationIndex @@ -43,6 +44,7 @@ class ServiceGenerator( fun render() { // add imports + writer.write("import ClientRuntime") writer.addImport(serviceSymbol) // generate protocol renderSwiftProtocol() diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt index b00bd36f7..13e36df8d 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt @@ -58,12 +58,12 @@ class PackageManifestGeneratorTests : TestsBase() { assertNotNull(packageManifest) packageManifest.shouldContain( "dependencies: [\n" + - " .package(\n" + - " url: 'https://github.com/mkrd/Swift-Big-Integer.git',\n" + - " from: 2.0\n" + - " )\n" + - " .package(path: '../../../../../../ClientRuntime')\n" + - " ]") + " .package(\n" + + " url: \"https://github.com/mkrd/Swift-Big-Integer.git\",\n" + + " from: 2.0\n" + + " ),\n" + + " .package(path: \"../../../../../../ClientRuntime\"),\n" + + " ]") } @Test @@ -84,7 +84,7 @@ class PackageManifestGeneratorTests : TestsBase() { assertNotNull(packageManifest) packageManifest.shouldContain( "products: [\n" + - " .library(name: 'MockSDK', targets: ['MockSDK'])\n" + + " .library(name: \"MockSDK\", targets: [\"MockSDK\"])\n" + " ]") } @@ -96,11 +96,11 @@ class PackageManifestGeneratorTests : TestsBase() { packageManifest.shouldContain( "targets: [\n" + " .target(\n" + - " name: 'MockSDK',\n" + + " name: \"MockSDK\",\n" + " dependencies: [\n" + - " BigNumber, ClientRuntime\n" + - " ]\n" + - " path: './MockSDK'\n" + + " \"BigNumber\", \"ClientRuntime\"\n" + + " ],\n" + + " path: \"./MockSDK\"\n" + " )\n" + " ]") } diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/ServiceGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/ServiceGeneratorTests.kt index aea75600a..f2853da05 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/ServiceGeneratorTests.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/ServiceGeneratorTests.kt @@ -65,6 +65,11 @@ class ServiceGeneratorTests : TestsBase() { commonTestContents.shouldContainOnlyOnce("public protocol ExampleClientProtocol {") } + @Test + fun `it has dependency on client runtime`() { + commonTestContents.shouldContainOnlyOnce("import ClientRuntime") + } + @Test fun `it renders swift func signatures correctly`() { val expectedSignatures = listOf( From d52322b8725fe4bad72e22f24d895df034170e63 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 10 Jul 2020 11:36:09 -0700 Subject: [PATCH 03/14] fix: linting fixes --- .../swift/codegen/PackageManifestGenerator.kt | 3 +-- .../smithy/swift/codegen/ServiceGenerator.kt | 1 - .../amazon/smithy/swift/codegen/SwiftDependency.kt | 5 +---- .../swift/codegen/PackageManifestGeneratorTests.kt | 14 +++++++------- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt index 29f08e87d..a96a79c92 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt @@ -51,8 +51,7 @@ fun writePackageManifest(settings: SwiftSettings, fileManifest: FileManifest, de writer.write("url: \"$dependencyURL\",") writer.write("from: ${dependency.version}") } - } - else { + } else { writer.write(".package(path: \"$dependencyURL\"),") } } diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt index 0f412902f..df752b71a 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt @@ -18,7 +18,6 @@ package software.amazon.smithy.swift.codegen import software.amazon.smithy.codegen.core.Symbol -import software.amazon.smithy.codegen.core.SymbolDependency import software.amazon.smithy.codegen.core.SymbolProvider import software.amazon.smithy.model.Model import software.amazon.smithy.model.knowledge.OperationIndex diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt index c32cdb6a3..fa8a76322 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt @@ -18,10 +18,7 @@ package software.amazon.smithy.swift.codegen import software.amazon.smithy.codegen.core.SymbolDependency import software.amazon.smithy.codegen.core.SymbolDependencyContainer -enum class SwiftDependency(val type: String, - val namespace: String, - val version: String, - val url: String) : SymbolDependencyContainer { +enum class SwiftDependency(val type: String, val namespace: String, val version: String, val url: String) : SymbolDependencyContainer { BIG("pod", "BigNumber", "2.0", url = "https://github.com/mkrd/Swift-Big-Integer.git"), CLIENT_RUNTIME("pod", "ClientRuntime", "0.1.0", "../../../../../../ClientRuntime"); diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt index 13e36df8d..59733a625 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt @@ -57,13 +57,13 @@ class PackageManifestGeneratorTests : TestsBase() { val packageManifest = manifest.getFileString("Package.swift").get() assertNotNull(packageManifest) packageManifest.shouldContain( - "dependencies: [\n" + - " .package(\n" + - " url: \"https://github.com/mkrd/Swift-Big-Integer.git\",\n" + - " from: 2.0\n" + - " ),\n" + - " .package(path: \"../../../../../../ClientRuntime\"),\n" + - " ]") + "dependencies: [\n" + + " .package(\n" + + " url: \"https://github.com/mkrd/Swift-Big-Integer.git\",\n" + + " from: 2.0\n" + + " ),\n" + + " .package(path: \"../../../../../../ClientRuntime\"),\n" + + " ]") } @Test From 0b49d723a135296a960d633b4e416c909d64a996 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 10 Jul 2020 17:10:14 -0700 Subject: [PATCH 04/14] fix: use exec task instead of custom task for building generated sdk; minor formatting --- smithy-swift/buildSrc/build.gradle.kts | 2 +- .../build.gradle.kts | 22 +++++++++++++++++-- .../smithy/swift/codegen/ServiceGenerator.kt | 2 +- .../smithy/swift/codegen/SymbolVisitor.kt | 5 ++++- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/smithy-swift/buildSrc/build.gradle.kts b/smithy-swift/buildSrc/build.gradle.kts index c39a297b0..3d7a9541b 100644 --- a/smithy-swift/buildSrc/build.gradle.kts +++ b/smithy-swift/buildSrc/build.gradle.kts @@ -4,4 +4,4 @@ plugins { repositories { jcenter() -} \ No newline at end of file +} diff --git a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts index a309d1e72..db5fcb287 100644 --- a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts +++ b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts @@ -33,18 +33,36 @@ repositories { mavenCentral() } -tasks.register("buildGeneratedSDK") { - pathToGeneratedSDK = "$buildDir/smithyprojections/smithy-swift-codegen-test/source/swift-codegen" +task("buildGeneratedSDK") { + val pathToGeneratedSDK = "$buildDir/smithyprojections/smithy-swift-codegen-test/source/swift-codegen" + workingDir(pathToGeneratedSDK) + commandLine("command", "-v", "swift") + isIgnoreExitValue=true dependsOn(tasks["build"]) + + doLast { + if(execResult?.exitValue == 0) { + println("Found swift executable") + exec { + workingDir(pathToGeneratedSDK) + commandLine("swift", "build") + } + } else { + println("Could not find swift executable. Skip buildGeneratedSDK.") + } + } } + tasks["jar"].enabled = false tasks["build"].finalizedBy(getTasksByName("buildGeneratedSDK", true)) val compileKotlin: KotlinCompile by tasks + compileKotlin.kotlinOptions { jvmTarget = "1.8" } val compileTestKotlin: KotlinCompile by tasks + compileTestKotlin.kotlinOptions { jvmTarget = "1.8" } \ No newline at end of file diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt index df752b71a..f8e932246 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/ServiceGenerator.kt @@ -43,8 +43,8 @@ class ServiceGenerator( fun render() { // add imports - writer.write("import ClientRuntime") writer.addImport(serviceSymbol) + // generate protocol renderSwiftProtocol() } diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SymbolVisitor.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SymbolVisitor.kt index 32b1808fb..430d7744a 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SymbolVisitor.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SymbolVisitor.kt @@ -219,7 +219,10 @@ class SymbolVisitor(private val model: Model, private val rootNamespace: String override fun serviceShape(shape: ServiceShape): Symbol { val name = shape.defaultName() - return createSymbolBuilder(shape, "${name}Client").definitionFile(formatModuleName(shape.type, name)).build() + return createSymbolBuilder(shape, "${name}Client", "ClientRuntime") + .addDependency(SwiftDependency.CLIENT_RUNTIME) + .definitionFile(formatModuleName(shape.type, name)) + .build() } private fun numberShape(shape: Shape?, typeName: String, defaultValue: String = "0"): Symbol { From 67f2fb2d6ced8e4a4341400f0d4b6cf13439f0b6 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Fri, 10 Jul 2020 18:15:10 -0700 Subject: [PATCH 05/14] fix: replace 'command' with 'which' --- smithy-swift/smithy-swift-codegen-test/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts index db5fcb287..98cd5c064 100644 --- a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts +++ b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts @@ -35,8 +35,8 @@ repositories { task("buildGeneratedSDK") { val pathToGeneratedSDK = "$buildDir/smithyprojections/smithy-swift-codegen-test/source/swift-codegen" - workingDir(pathToGeneratedSDK) - commandLine("command", "-v", "swift") + workingDir(".") + commandLine("which", "swift") isIgnoreExitValue=true dependsOn(tasks["build"]) From 336e55e00aa8950de76001bbb6c996b77c43b34d Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 14:06:52 -0700 Subject: [PATCH 06/14] feat: use macos image for swift CI/CD workflow --- .circleci/config.yml | 116 +++++++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 47 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3c3cdaf98..3dc5e2cd8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -94,7 +94,7 @@ commands: bash CircleciScripts/pre_start_iOS_simulator.sh jobs: - build: + build_smithy_kotlin: environment: # Configure the JVM and Gradle to avoid OOM errors _JAVA_OPTIONS: "-Xmx3g" @@ -115,15 +115,6 @@ jobs: - smithy-kotlin/build - smithy-kotlin/*/build - smithy-kotlin/client-runtime/*/build - - run: - name: Build Smithy Swift - working_directory: ~/project/smithy-swift - command: ./gradlew build -x test - - persist_to_workspace: - root: . - paths: - - smithy-swift/build - - smithy-swift/*/build test_smithy_kotlin: environment: @@ -165,13 +156,56 @@ jobs: command: | ./gradlew ktlint + build_and_unittest_swift_client_runtime: + macos: + xcode: "11.4.1" + steps: + - checkout + - pre_start_ios_simulator + - run: + name: Install swiftlint + command: | + HOMEBREW_NO_AUTO_UPDATE=1 brew install swiftlint + - run: + name: Build ClientRuntime + working_directory: ~/project/smithy-swift/ClientRuntime + command: | + xcodebuild build-for-testing -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" + - run: + name: Unit Test ClientRuntime + working_directory: ~/project/smithy-swift/ClientRuntime + command: | + xcodebuild test-without-building -enableCodeCoverage YES -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" + bash <(curl https://codecov.io/bash | sed 's/"$beta_xcode_partials"//g') + + build_smithy_swift: + macos: + xcode: "11.4.1" + environment: + # Configure the JVM and Gradle to avoid OOM errors + _JAVA_OPTIONS: "-Xmx3g" + GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2" + steps: + - checkout + - with_cache: + steps: + - run: + name: Build Smithy Swift + working_directory: ~/project/smithy-swift + command: ./gradlew build -x test + - persist_to_workspace: + root: . + paths: + - smithy-swift/build + - smithy-swift/*/build + test_smithy_swift: + macos: + xcode: "11.4.1" environment: # Configure the JVM and Gradle to avoid OOM errors _JAVA_OPTIONS: "-Xmx3g" GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2" - docker: - - image: circleci/openjdk:8 steps: - checkout - attach_workspace: @@ -188,13 +222,12 @@ jobs: reports_path: "" lint_smithy_swift: - # Remove if parallelism is not desired + macos: + xcode: "11.4.1" environment: # Configure the JVM and Gradle to avoid OOM errors _JAVA_OPTIONS: "-Xmx3g" GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2" - docker: - - image: circleci/openjdk:8 steps: - checkout - attach_workspace: @@ -204,48 +237,37 @@ jobs: name: Run ktlint command: | ./gradlew ktlint - - build_and_unittest_swift_client_runtime: - macos: - xcode: "11.4.1" - steps: - - checkout - - pre_start_ios_simulator - - run: - name: Install swiftlint - command: | - HOMEBREW_NO_AUTO_UPDATE=1 brew install swiftlint - - run: - name: Build ClientRuntime - working_directory: ~/project/smithy-swift/ClientRuntime - command: | - xcodebuild build-for-testing -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" - - run: - name: Unit Test ClientRuntime - working_directory: ~/project/smithy-swift/ClientRuntime - command: | - xcodebuild test-without-building -enableCodeCoverage YES -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" - bash <(curl https://codecov.io/bash | sed 's/"$beta_xcode_partials"//g') workflows: version: 2 - build_and_test_codegen: + build_and_test_kotlin_codegen: jobs: - - build + - build_smithy_kotlin - test_smithy_kotlin: requires: - - build + - build_smithy_kotlin - lint_smithy_kotlin - - test_smithy_swift: - requires: - - build - - lint_smithy_swift - - build_and_test_swift_client_runtime: + + build_and_test_smithy_swift: jobs: - build_and_unittest_swift_client_runtime: filters: branches: only: - - swift-client-runtime + - swift-end-to-end-setup + - build_smithy_swift + requires: + - build_and_unittest_swift_client_runtime + filters: + branches: + only: + - swift-end-to-end-setup + - test_smithy_swift: + requires: + - build_smithy_swift + filters: + branches: + only: + - swift-end-to-end-setup + - lint_smithy_swift From 465a4d870fa889ff2239e4b747ed67609e8c0b45 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 14:09:52 -0700 Subject: [PATCH 07/14] fix: minor yml error --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3dc5e2cd8..81a0464cb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -256,7 +256,7 @@ workflows: branches: only: - swift-end-to-end-setup - - build_smithy_swift + - build_smithy_swift: requires: - build_and_unittest_swift_client_runtime filters: From 261285a984796fdc0c0c8dee915223e93b1b8ba1 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 14:45:37 -0700 Subject: [PATCH 08/14] fix: generate xcodeproject before building clientruntime --- .circleci/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 81a0464cb..d70227817 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -177,6 +177,14 @@ jobs: command: | xcodebuild test-without-building -enableCodeCoverage YES -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" bash <(curl https://codecov.io/bash | sed 's/"$beta_xcode_partials"//g') + - run: + name: Install swiftlint + command: | + HOMEBREW_NO_AUTO_UPDATE=1 brew install swiftlint + - run: + name: Lint ClientRuntime + command: | + swiftlint build_smithy_swift: macos: From 3fb94d2d863a34f08d9343fb36334bcb1be92de4 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 14:48:01 -0700 Subject: [PATCH 09/14] fix: add swiftlint job --- .circleci/config.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d70227817..9f1a7dbfa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -163,9 +163,10 @@ jobs: - checkout - pre_start_ios_simulator - run: - name: Install swiftlint + name: Generate XCodeProject + working_directory: ~/project/smithy-swift/ClientRuntime command: | - HOMEBREW_NO_AUTO_UPDATE=1 brew install swiftlint + swift package generate-xcodeproj - run: name: Build ClientRuntime working_directory: ~/project/smithy-swift/ClientRuntime From d8dffb69c3f852b571d76e5a3861450be0fe3d0b Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 15:31:40 -0700 Subject: [PATCH 10/14] fix: xcode scheme as generated by SPM --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9f1a7dbfa..790a72bba 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -171,13 +171,13 @@ jobs: name: Build ClientRuntime working_directory: ~/project/smithy-swift/ClientRuntime command: | - xcodebuild build-for-testing -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" + xcodebuild build -project ClientRuntime.xcodeproj -scheme ClientRuntime-Package -sdk iphonesimulator -destination "${destination}" - run: name: Unit Test ClientRuntime working_directory: ~/project/smithy-swift/ClientRuntime command: | - xcodebuild test-without-building -enableCodeCoverage YES -project ClientRuntime.xcodeproj -scheme ClientRuntime -sdk iphonesimulator -destination "${destination}" - bash <(curl https://codecov.io/bash | sed 's/"$beta_xcode_partials"//g') + xcodebuild test -enableCodeCoverage YES -project ClientRuntime.xcodeproj -scheme ClientRuntime-Package -sdk iphonesimulator -destination "${destination}" + bash <(curl -s https://codecov.io/bash) - run: name: Install swiftlint command: | From 734c053262a3be466bdbd6e21a82c8f9aff27c4e Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 16:07:51 -0700 Subject: [PATCH 11/14] fix: swiftlint job working directory change --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 790a72bba..5033d19f5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -184,6 +184,7 @@ jobs: HOMEBREW_NO_AUTO_UPDATE=1 brew install swiftlint - run: name: Lint ClientRuntime + working_directory: ~/project/smithy-swift/ClientRuntime command: | swiftlint From 5414d3a6170605f53881c1ee02f129b512cf6a69 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 16:34:47 -0700 Subject: [PATCH 12/14] fix: using new cache key --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5033d19f5..96123d00a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -198,6 +198,7 @@ jobs: steps: - checkout - with_cache: + cache_key: "macOSv2" steps: - run: name: Build Smithy Swift @@ -221,6 +222,7 @@ jobs: - attach_workspace: at: . - with_cache: + cache_key: "macOSv2" steps: - run: working_directory: ~/project/smithy-swift From 443e0bcaa0aaefab582043ab4b300ba8cc5ece39 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Sat, 11 Jul 2020 18:20:50 -0700 Subject: [PATCH 13/14] fix: move swiftVersion to swiftSettings --- .circleci/config.yml | 6 +++--- smithy-swift/smithy-swift-codegen-test/build.gradle.kts | 3 ++- smithy-swift/smithy-swift-codegen-test/smithy-build.json | 3 ++- .../smithy/swift/codegen/PackageManifestGenerator.kt | 2 +- .../amazon/smithy/swift/codegen/PodSpecGenerator.kt | 2 +- .../amazon/smithy/swift/codegen/SwiftSettings.kt | 9 ++++++--- .../swift/codegen/PackageManifestGeneratorTests.kt | 1 + .../amazon/smithy/swift/codegen/PodSpecGeneratorTests.kt | 1 + .../amazon/smithy/swift/codegen/SwiftSettingsTest.kt | 1 + .../software/amazon/smithy/swift/codegen/TestsBase.kt | 1 + 10 files changed, 19 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 96123d00a..c9770436a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -267,19 +267,19 @@ workflows: filters: branches: only: - - swift-end-to-end-setup + - swift-client-runtime - build_smithy_swift: requires: - build_and_unittest_swift_client_runtime filters: branches: only: - - swift-end-to-end-setup + - swift-client-runtime - test_smithy_swift: requires: - build_smithy_swift filters: branches: only: - - swift-end-to-end-setup + - swift-client-runtime - lint_smithy_swift diff --git a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts index 98cd5c064..bea86f870 100644 --- a/smithy-swift/smithy-swift-codegen-test/build.gradle.kts +++ b/smithy-swift/smithy-swift-codegen-test/build.gradle.kts @@ -61,8 +61,9 @@ val compileKotlin: KotlinCompile by tasks compileKotlin.kotlinOptions { jvmTarget = "1.8" } + val compileTestKotlin: KotlinCompile by tasks compileTestKotlin.kotlinOptions { jvmTarget = "1.8" -} \ No newline at end of file +} diff --git a/smithy-swift/smithy-swift-codegen-test/smithy-build.json b/smithy-swift/smithy-swift-codegen-test/smithy-build.json index 43c77cedc..b3b63b9e0 100644 --- a/smithy-swift/smithy-swift-codegen-test/smithy-build.json +++ b/smithy-swift/smithy-swift-codegen-test/smithy-build.json @@ -7,7 +7,8 @@ "moduleVersion": "0.0.1", "gitRepo": "https://github.com/aws-amplify/amplify-codegen.git", "author": "Amazon Web Services", - "homepage": "https://docs.amplify.aws/" + "homepage": "https://docs.amplify.aws/", + "swiftVersion": "5.1.0" } } } \ No newline at end of file diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt index a96a79c92..0d978b71d 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGenerator.kt @@ -28,7 +28,7 @@ fun writePackageManifest(settings: SwiftSettings, fileManifest: FileManifest, de setIndentText(" ") } - writer.write("// swift-tools-version:5.1") + writer.write("// swift-tools-version:${settings.swiftVersion}") writer.write("") writer.write("import PackageDescription") diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PodSpecGenerator.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PodSpecGenerator.kt index 9267b966e..05ee7c6bb 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PodSpecGenerator.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/PodSpecGenerator.kt @@ -34,7 +34,7 @@ fun writePodspec(settings: SwiftSettings, fileManifest: FileManifest, dependenci writer.write("spec.authors = { '${settings.author}' => '${settings.author.toLowerCase().replace(" ", "")}' }") writer.write("spec.summary = '${settings.moduleDescription}'") writer.write("spec.platform = :ios, '8.0'") - writer.write("spec.swift_version = '5.0'") + writer.write("spec.swift_version = '${settings.swiftVersion}'") writer.write("spec.source = { :git => '${settings.gitRepo}',\n" + " :tag => ${settings.moduleVersion}}") writer.write("spec.requires_arc = true") diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftSettings.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftSettings.kt index 015cdb214..b7e9ca933 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftSettings.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftSettings.kt @@ -33,6 +33,7 @@ private const val MODULE_VERSION = "moduleVersion" private const val GIT_REPO = "gitRepo" private const val HOMEPAGE = "homepage" private const val AUTHOR = "author" +private const val SWIFT_VERSION = "swiftVersion" class SwiftSettings( val service: ShapeId, @@ -41,7 +42,8 @@ class SwiftSettings( val moduleDescription: String, val author: String, val homepage: String, - val gitRepo: String + val gitRepo: String, + val swiftVersion: String ) { companion object { @@ -55,7 +57,7 @@ companion object { * @return Returns the extracted settings */ fun from(model: Model, config: ObjectNode): SwiftSettings { - config.warnIfAdditionalProperties(arrayListOf(SERVICE, MODULE_NAME, MODULE_DESCRIPTION, MODULE_VERSION, AUTHOR, HOMEPAGE, GIT_REPO)) + config.warnIfAdditionalProperties(arrayListOf(SERVICE, MODULE_NAME, MODULE_DESCRIPTION, MODULE_VERSION, AUTHOR, HOMEPAGE, GIT_REPO, SWIFT_VERSION)) val service = config.getStringMember(SERVICE) .map(StringNode::expectShapeId) @@ -67,7 +69,8 @@ companion object { val homepage = config.expectStringMember(HOMEPAGE).value val author = config.expectStringMember(AUTHOR).value val gitRepo = config.expectStringMember(GIT_REPO).value - return SwiftSettings(service, moduleName, version, desc, author, homepage, gitRepo) + val swiftVersion = config.expectStringMember(SWIFT_VERSION).value + return SwiftSettings(service, moduleName, version, desc, author, homepage, gitRepo, swiftVersion) } // infer the service to generate from a model private fun inferService(model: Model): ShapeId { diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt index 59733a625..b166202de 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PackageManifestGeneratorTests.kt @@ -44,6 +44,7 @@ class PackageManifestGeneratorTests : TestsBase() { .withMember("homepage", Node.from("https://docs.amplify.aws/")) .withMember("author", Node.from("Amazon Web Services")) .withMember("gitRepo", Node.from("https://github.com/aws-amplify/amplify-codegen.git")) + .withMember("swiftVersion", Node.from("5.1.0")) .build() ) manifest = MockManifest() diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PodSpecGeneratorTests.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PodSpecGeneratorTests.kt index a3b6fdeed..9b26a6c92 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PodSpecGeneratorTests.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/PodSpecGeneratorTests.kt @@ -39,6 +39,7 @@ class PodSpecGeneratorTests : TestsBase() { .withMember("homepage", Node.from(homepage)) .withMember("author", Node.from("Amazon Web Services")) .withMember("gitRepo", Node.from("https://github.com/aws-amplify/amplify-codegen.git")) + .withMember("swiftVersion", Node.from("5.1.0")) .build()) val manifest = MockManifest() diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/SwiftSettingsTest.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/SwiftSettingsTest.kt index cae287f42..84195f937 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/SwiftSettingsTest.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/SwiftSettingsTest.kt @@ -30,6 +30,7 @@ class SwiftSettingsTest : TestsBase() { .withMember("homepage", Node.from("https://docs.amplify.aws/")) .withMember("author", Node.from("Amazon Web Services")) .withMember("gitRepo", Node.from("https://github.com/aws-amplify/amplify-codegen.git")) + .withMember("swiftVersion", Node.from("5.1.0")) .build()) assertEquals(ShapeId.from("smithy.example#Example"), settings.service) diff --git a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/TestsBase.kt b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/TestsBase.kt index ab5f86b8f..a9c7f920a 100644 --- a/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/TestsBase.kt +++ b/smithy-swift/smithy-swift-codegen/src/test/kotlin/software/amazon/smithy/swift/codegen/TestsBase.kt @@ -76,6 +76,7 @@ open class TestsBase { .withMember("homepage", Node.from("https://docs.amplify.aws/")) .withMember("author", Node.from("Amazon Web Services")) .withMember("gitRepo", Node.from("https://github.com/aws-amplify/amplify-codegen.git")) + .withMember("swiftVersion", Node.from("5.1.0")) .build() ) .build() From 846a157eb93d21048a391a1b620104b87b412556 Mon Sep 17 00:00:00 2001 From: phani-srikar Date: Mon, 13 Jul 2020 12:16:03 -0700 Subject: [PATCH 14/14] fix: dependecies available as pods and swift packages have empty package type --- .../software/amazon/smithy/swift/codegen/SwiftDependency.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt index fa8a76322..aee0c359f 100644 --- a/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt +++ b/smithy-swift/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftDependency.kt @@ -19,8 +19,8 @@ import software.amazon.smithy.codegen.core.SymbolDependency import software.amazon.smithy.codegen.core.SymbolDependencyContainer enum class SwiftDependency(val type: String, val namespace: String, val version: String, val url: String) : SymbolDependencyContainer { - BIG("pod", "BigNumber", "2.0", url = "https://github.com/mkrd/Swift-Big-Integer.git"), - CLIENT_RUNTIME("pod", "ClientRuntime", "0.1.0", "../../../../../../ClientRuntime"); + BIG("", "BigNumber", "2.0", url = "https://github.com/mkrd/Swift-Big-Integer.git"), + CLIENT_RUNTIME("", "ClientRuntime", "0.1.0", "../../../../../../ClientRuntime"); override fun getDependencies(): List { val dependency = SymbolDependency.builder()