diff --git a/gradle.properties b/gradle.properties index 0cdc1bdbf7a..264fead8835 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,4 +14,7 @@ smithyKotlinDocBaseUrl=https://sdk.amazonaws.com/kotlin/api/smithy-kotlin/api/$s # atomicfu kotlinx.atomicfu.enableJvmIrTransformation=true # FIXME - https://github.com/Kotlin/kotlinx-atomicfu/issues/274 -kotlinx.atomicfu.enableNativeIrTransformation=false \ No newline at end of file +kotlinx.atomicfu.enableNativeIrTransformation=false + +# https://github.com/google/ksp/blob/main/docs/ksp2.md +ksp.useKSP2=true diff --git a/hll/build.gradle.kts b/hll/build.gradle.kts index a2e016b1afa..0320cb919f7 100644 --- a/hll/build.gradle.kts +++ b/hll/build.gradle.kts @@ -96,6 +96,8 @@ apiValidation { "hll-codegen", "dynamodb-mapper-annotation-processor-test", "dynamodb-mapper-codegen", + "dynamodb-mapper-ops-codegen", + "dynamodb-mapper-schema-codegen", "dynamodb-mapper-schema-generator-plugin-test", ).filter { it in availableSubprojects } // Some projects may not be in the build depending on bootstrapping } diff --git a/hll/dynamodb-mapper/dynamodb-mapper-annotations/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper-annotations/build.gradle.kts index 35d0f3613ab..2576670bf70 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-annotations/build.gradle.kts +++ b/hll/dynamodb-mapper/dynamodb-mapper-annotations/build.gradle.kts @@ -2,3 +2,7 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ + +description = "DynamoDbMapper annotations" +extra["displayName"] = "AWS :: SDK :: Kotlin :: HLL :: DynamoDbMapper :: Annotations" +extra["moduleName"] = "aws.sdk.kotlin.hll.dynamodbmapper.annotations" diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper-codegen/build.gradle.kts index efb5056ea3c..5cb39317203 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-codegen/build.gradle.kts +++ b/hll/dynamodb-mapper/dynamodb-mapper-codegen/build.gradle.kts @@ -13,15 +13,7 @@ plugins { } dependencies { - implementation(libs.ksp.api) implementation(project(":hll:hll-codegen")) - implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-annotations")) - implementation(project(":services:dynamodb")) - - testImplementation(libs.junit.jupiter) - testImplementation(libs.junit.jupiter.params) - testImplementation(libs.kotest.assertions.core.jvm) - testImplementation(libs.kotlin.test.junit5) } val optinAnnotations = listOf( @@ -38,17 +30,6 @@ kotlin { } } -tasks.test { - useJUnitPlatform() - testLogging { - events("passed", "skipped", "failed") - showStandardStreams = true - showStackTraces = true - showExceptions = true - exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL - } -} - val sdkVersion: String by project group = "aws.sdk.kotlin" version = sdkVersion diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/model/MapperTypes.kt b/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/model/MapperTypes.kt index 0b137560172..2b979e5e2ac 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/model/MapperTypes.kt +++ b/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/model/MapperTypes.kt @@ -4,129 +4,131 @@ import aws.sdk.kotlin.hll.codegen.model.Type import aws.sdk.kotlin.hll.codegen.model.TypeRef import aws.sdk.kotlin.hll.codegen.model.TypeVar import aws.sdk.kotlin.hll.codegen.model.Types +import aws.sdk.kotlin.runtime.InternalSdkApi /** * A container object for various DynamoDbMapper [Type] instances */ -internal object MapperTypes { +@InternalSdkApi +public object MapperTypes { // Low-level types - val AttributeValue = TypeRef(MapperPkg.Ll.Model, "AttributeValue") - val AttributeMap = Types.Kotlin.map(Types.Kotlin.String, AttributeValue) + public val AttributeValue: TypeRef = TypeRef(MapperPkg.Ll.Model, "AttributeValue") + public val AttributeMap: TypeRef = Types.Kotlin.map(Types.Kotlin.String, AttributeValue) // High-level types - val DynamoDbMapper = TypeRef(MapperPkg.Hl.Base, "DynamoDbMapper") + public val DynamoDbMapper: TypeRef = TypeRef(MapperPkg.Hl.Base, "DynamoDbMapper") - object Annotations { - val ManualPagination = TypeRef(MapperPkg.Hl.Annotations, "ManualPagination") + public object Annotations { + public val ManualPagination: TypeRef = TypeRef(MapperPkg.Hl.Annotations, "ManualPagination") } - object Items { - fun itemSchema(typeVar: String) = + public object Items { + public fun itemSchema(typeVar: String): TypeRef = TypeRef(MapperPkg.Hl.Items, "ItemSchema", genericArgs = listOf(TypeVar(typeVar))) - fun itemSchemaPartitionKey(objectType: TypeRef, pkType: TypeRef) = + public fun itemSchemaPartitionKey(objectType: TypeRef, pkType: TypeRef): TypeRef = TypeRef(MapperPkg.Hl.Items, "ItemSchema.PartitionKey", genericArgs = listOf(objectType, pkType)) - fun itemSchemaCompositeKey(objectType: TypeRef, pkType: TypeRef, skType: TypeRef) = + public fun itemSchemaCompositeKey(objectType: TypeRef, pkType: TypeRef, skType: TypeRef): TypeRef = TypeRef(MapperPkg.Hl.Items, "ItemSchema.CompositeKey", genericArgs = listOf(objectType, pkType, skType)) - fun keySpec(keyType: TypeRef) = TypeRef(MapperPkg.Hl.Items, "KeySpec", genericArgs = listOf(keyType)) - val KeySpecByteArray = TypeRef(MapperPkg.Hl.Items, "KeySpec.ByteArray") - val KeySpecNumber = TypeRef(MapperPkg.Hl.Items, "KeySpec.Number") - val KeySpecString = TypeRef(MapperPkg.Hl.Items, "KeySpec.String") - val AttributeDescriptor = TypeRef(MapperPkg.Hl.Items, "AttributeDescriptor") + public fun keySpec(keyType: TypeRef): TypeRef = TypeRef(MapperPkg.Hl.Items, "KeySpec", genericArgs = listOf(keyType)) + public val KeySpecByteArray: TypeRef = TypeRef(MapperPkg.Hl.Items, "KeySpec.ByteArray") + public val KeySpecNumber: TypeRef = TypeRef(MapperPkg.Hl.Items, "KeySpec.Number") + public val KeySpecString: TypeRef = TypeRef(MapperPkg.Hl.Items, "KeySpec.String") + public val AttributeDescriptor: TypeRef = TypeRef(MapperPkg.Hl.Items, "AttributeDescriptor") - fun itemConverter(objectType: TypeRef) = + public fun itemConverter(objectType: TypeRef): TypeRef = TypeRef(MapperPkg.Hl.Items, "ItemConverter", genericArgs = listOf(objectType)) - val SimpleItemConverter = TypeRef(MapperPkg.Hl.Items, "SimpleItemConverter") + public val SimpleItemConverter: TypeRef = TypeRef(MapperPkg.Hl.Items, "SimpleItemConverter") } - object Model { - fun tablePartitionKey(objectType: TypeRef, pkType: TypeRef) = TypeRef( + public object Model { + public fun tablePartitionKey(objectType: TypeRef, pkType: TypeRef): TypeRef = TypeRef( MapperPkg.Hl.Model, "Table.PartitionKey", genericArgs = listOf(objectType, pkType), ) - fun tableCompositeKey(objectType: TypeRef, pkType: TypeRef, skType: TypeRef) = TypeRef( + public fun tableCompositeKey(objectType: TypeRef, pkType: TypeRef, skType: TypeRef): TypeRef = TypeRef( MapperPkg.Hl.Model, "Table.CompositeKey", genericArgs = listOf(objectType, pkType, skType), ) - val toItem = TypeRef(MapperPkg.Hl.Model, "toItem") + public val toItem: TypeRef = TypeRef(MapperPkg.Hl.Model, "toItem") } - object Values { - fun valueConverter(value: Type) = TypeRef(MapperPkg.Hl.Values, "ValueConverter", genericArgs = listOf(value)) - val ItemToValueConverter = TypeRef(MapperPkg.Hl.Values, "ItemToValueConverter") - - object Collections { - val ListConverter = TypeRef(MapperPkg.Hl.CollectionValues, "ListConverter") - val MapConverter = TypeRef(MapperPkg.Hl.CollectionValues, "MapConverter") - - val StringSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "StringSetConverter") - val CharSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "CharSetConverter") - val CharArraySetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "CharArraySetConverter") - - val ByteSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "ByteSetConverter") - val DoubleSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "DoubleSetConverter") - val FloatSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "FloatSetConverter") - val IntSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "IntSetConverter") - val LongSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "LongSetConverter") - val ShortSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "ShortSetConverter") - - val UByteSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "UByteSetConverter") - val UIntSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "UIntSetConverter") - val ULongSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "ULongSetConverter") - val UShortSetConverter = TypeRef(MapperPkg.Hl.CollectionValues, "UShortSetConverter") + public object Values { + public fun valueConverter(value: Type): TypeRef = TypeRef(MapperPkg.Hl.Values, "ValueConverter", genericArgs = listOf(value)) + public val ItemToValueConverter: TypeRef = TypeRef(MapperPkg.Hl.Values, "ItemToValueConverter") + + public object Collections { + public val ListConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "ListConverter") + public val MapConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "MapConverter") + + public val StringSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "StringSetConverter") + public val CharSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "CharSetConverter") + public val CharArraySetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "CharArraySetConverter") + + public val ByteSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "ByteSetConverter") + public val DoubleSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "DoubleSetConverter") + public val FloatSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "FloatSetConverter") + public val IntSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "IntSetConverter") + public val LongSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "LongSetConverter") + public val ShortSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "ShortSetConverter") + + public val UByteSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "UByteSetConverter") + public val UIntSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "UIntSetConverter") + public val ULongSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "ULongSetConverter") + public val UShortSetConverter: TypeRef = TypeRef(MapperPkg.Hl.CollectionValues, "UShortSetConverter") } - object Scalars { - fun enumConverter(enumType: Type) = TypeRef(MapperPkg.Hl.ScalarValues, "EnumConverter", genericArgs = listOf(enumType)) - - val BooleanConverter = TypeRef(MapperPkg.Hl.ScalarValues, "BooleanConverter") - val StringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "StringConverter") - val CharConverter = TypeRef(MapperPkg.Hl.ScalarValues, "CharConverter") - val CharArrayConverter = TypeRef(MapperPkg.Hl.ScalarValues, "CharArrayConverter") - - val ByteConverter = TypeRef(MapperPkg.Hl.ScalarValues, "ByteConverter") - val ByteArrayConverter = TypeRef(MapperPkg.Hl.ScalarValues, "ByteArrayConverter") - val DoubleConverter = TypeRef(MapperPkg.Hl.ScalarValues, "DoubleConverter") - val FloatConverter = TypeRef(MapperPkg.Hl.ScalarValues, "FloatConverter") - val IntConverter = TypeRef(MapperPkg.Hl.ScalarValues, "IntConverter") - val LongConverter = TypeRef(MapperPkg.Hl.ScalarValues, "LongConverter") - val ShortConverter = TypeRef(MapperPkg.Hl.ScalarValues, "ShortConverter") - val UByteConverter = TypeRef(MapperPkg.Hl.ScalarValues, "UByteConverter") - val UIntConverter = TypeRef(MapperPkg.Hl.ScalarValues, "UIntConverter") - val ULongConverter = TypeRef(MapperPkg.Hl.ScalarValues, "ULongConverter") - val UShortConverter = TypeRef(MapperPkg.Hl.ScalarValues, "UShortConverter") - - val BooleanToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "BooleanToStringConverter") - val CharArrayToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.CharArrayToStringConverter") - val CharToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.CharToStringConverter") - val StringToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.StringToStringConverter") - val ByteToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ByteToStringConverter") - val DoubleToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.DoubleToStringConverter") - val FloatToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.FloatToStringConverter") - val IntToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.IntToStringConverter") - val LongToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.LongToStringConverter") - val ShortToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ShortToStringConverter") - val UByteToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UByteToStringConverter") - val UIntToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UIntToStringConverter") - val ULongToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ULongToStringConverter") - val UShortToStringConverter = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UShortToStringConverter") + public object Scalars { + public fun enumConverter(enumType: Type): TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "EnumConverter", genericArgs = listOf(enumType)) + + public val BooleanConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "BooleanConverter") + public val StringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "StringConverter") + public val CharConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "CharConverter") + public val CharArrayConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "CharArrayConverter") + + public val ByteConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "ByteConverter") + public val ByteArrayConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "ByteArrayConverter") + public val DoubleConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "DoubleConverter") + public val FloatConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "FloatConverter") + public val IntConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "IntConverter") + public val LongConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "LongConverter") + public val ShortConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "ShortConverter") + public val UByteConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "UByteConverter") + public val UIntConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "UIntConverter") + public val ULongConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "ULongConverter") + public val UShortConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "UShortConverter") + + public val BooleanToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "BooleanToStringConverter") + public val CharArrayToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.CharArrayToStringConverter") + public val CharToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.CharToStringConverter") + public val StringToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "TextConverters.StringToStringConverter") + public val ByteToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ByteToStringConverter") + public val DoubleToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.DoubleToStringConverter") + public val FloatToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.FloatToStringConverter") + public val IntToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.IntToStringConverter") + public val LongToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.LongToStringConverter") + public val ShortToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ShortToStringConverter") + public val UByteToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UByteToStringConverter") + public val UIntToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UIntToStringConverter") + public val ULongToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.ULongToStringConverter") + public val UShortToStringConverter: TypeRef = TypeRef(MapperPkg.Hl.ScalarValues, "NumberConverters.UShortToStringConverter") } - object SmithyTypes { - val DefaultInstantConverter = TypeRef(MapperPkg.Hl.SmithyTypeValues, "InstantConverter.Default") - val UrlConverter = TypeRef(MapperPkg.Hl.SmithyTypeValues, "UrlConverter") - val DefaultDocumentConverter = TypeRef(MapperPkg.Hl.SmithyTypeValues, "DocumentConverter.Default") + public object SmithyTypes { + public val DefaultInstantConverter: TypeRef = TypeRef(MapperPkg.Hl.SmithyTypeValues, "InstantConverter.Default") + public val UrlConverter: TypeRef = TypeRef(MapperPkg.Hl.SmithyTypeValues, "UrlConverter") + public val DefaultDocumentConverter: TypeRef = TypeRef(MapperPkg.Hl.SmithyTypeValues, "DocumentConverter.Default") } } - object PipelineImpl { - val HReqContextImpl = TypeRef(MapperPkg.Hl.PipelineImpl, "HReqContextImpl") - val MapperContextImpl = TypeRef(MapperPkg.Hl.PipelineImpl, "MapperContextImpl") - val Operation = TypeRef(MapperPkg.Hl.PipelineImpl, "Operation") + public object PipelineImpl { + public val HReqContextImpl: TypeRef = TypeRef(MapperPkg.Hl.PipelineImpl, "HReqContextImpl") + public val MapperContextImpl: TypeRef = TypeRef(MapperPkg.Hl.PipelineImpl, "MapperContextImpl") + public val Operation: TypeRef = TypeRef(MapperPkg.Hl.PipelineImpl, "Operation") } } diff --git a/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/build.gradle.kts new file mode 100644 index 00000000000..b9907e8c733 --- /dev/null +++ b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/build.gradle.kts @@ -0,0 +1,49 @@ +/* +* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +* SPDX-License-Identifier: Apache-2.0 +*/ + +description = "DynamoDbMapper ops code generation" +extra["displayName"] = "AWS :: SDK :: Kotlin :: HLL :: DynamoDbMapper :: Codegen :: Ops" +extra["moduleName"] = "aws.sdk.kotlin.hll.dynamodbmapper.codegen.ops" + +plugins { + alias(libs.plugins.kotlin.jvm) +} + +dependencies { + implementation(libs.ksp.api) + implementation(project(":hll:hll-codegen")) + implementation(project(":services:dynamodb")) + implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) + + testImplementation(libs.junit.jupiter) + testImplementation(libs.junit.jupiter.params) + testImplementation(libs.kotest.assertions.core.jvm) + testImplementation(libs.kotlin.test.junit5) +} + +val optinAnnotations = listOf( + "aws.smithy.kotlin.runtime.InternalApi", + "aws.sdk.kotlin.runtime.InternalSdkApi", + "kotlin.RequiresOptIn", +) + +kotlin { + explicitApi() + + sourceSets.all { + optinAnnotations.forEach(languageSettings::optIn) + } +} + +tasks.test { + useJUnitPlatform() + testLogging { + events("passed", "skipped", "failed") + showStandardStreams = true + showStackTraces = true + showExceptions = true + exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL + } +} diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessor.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessor.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessor.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessor.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessorProvider.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessorProvider.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessorProvider.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/HighLevelOpsProcessorProvider.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ItemSourceKind.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ItemSourceKind.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ItemSourceKind.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ItemSourceKind.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/MemberCodegenBehavior.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/MemberCodegenBehavior.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/MemberCodegenBehavior.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/MemberCodegenBehavior.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ModelAttributes.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ModelAttributes.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ModelAttributes.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/ModelAttributes.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Operation.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Operation.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Operation.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Operation.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Pagination.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Pagination.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Pagination.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Pagination.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Structure.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Structure.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Structure.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/model/Structure.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/DataTypeGenerator.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/DataTypeGenerator.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/DataTypeGenerator.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/DataTypeGenerator.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/HighLevelRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/HighLevelRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/HighLevelRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/HighLevelRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationsTypeRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationsTypeRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationsTypeRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/OperationsTypeRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/PaginatorRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/PaginatorRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/PaginatorRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/operations/rendering/PaginatorRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/resources/META-INF/services/aws.sdk.kotlin.hll.codegen.model.ModelParsingPlugin b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/resources/META-INF/services/aws.sdk.kotlin.hll.codegen.model.ModelParsingPlugin similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/resources/META-INF/services/aws.sdk.kotlin.hll.codegen.model.ModelParsingPlugin rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/resources/META-INF/services/aws.sdk.kotlin.hll.codegen.model.ModelParsingPlugin diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider similarity index 50% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider rename to hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider index 59a8692f0a6..1940d69db61 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider +++ b/hll/dynamodb-mapper/dynamodb-mapper-ops-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -1,3 +1,2 @@ aws.sdk.kotlin.hll.dynamodbmapper.codegen.operations.HighLevelOpsProcessorProvider -aws.sdk.kotlin.hll.dynamodbmapper.codegen.annotations.AnnotationsProcessorProvider diff --git a/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/build.gradle.kts new file mode 100644 index 00000000000..304e00623b8 --- /dev/null +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/build.gradle.kts @@ -0,0 +1,70 @@ +/* +* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +* SPDX-License-Identifier: Apache-2.0 +*/ + +description = "DynamoDbMapper schema code generation" +extra["displayName"] = "AWS :: SDK :: Kotlin :: HLL :: DynamoDbMapper :: Codegen :: Schema" +extra["moduleName"] = "aws.sdk.kotlin.hll.dynamodbmapper.codegen.schema" + +plugins { + alias(libs.plugins.kotlin.jvm) + `maven-publish` +} + +dependencies { + implementation(libs.ksp.api) + implementation(project(":hll:hll-codegen")) + implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-annotations")) + implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) + + testImplementation(libs.junit.jupiter) + testImplementation(libs.junit.jupiter.params) + testImplementation(libs.kotest.assertions.core.jvm) + testImplementation(libs.kotlin.test.junit5) +} + +val optinAnnotations = listOf( + "aws.smithy.kotlin.runtime.InternalApi", + "aws.sdk.kotlin.runtime.InternalSdkApi", + "kotlin.RequiresOptIn", +) + +kotlin { + explicitApi() + + sourceSets.all { + optinAnnotations.forEach(languageSettings::optIn) + } +} + +tasks.test { + useJUnitPlatform() + testLogging { + events("passed", "skipped", "failed") + showStandardStreams = true + showStackTraces = true + showExceptions = true + exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL + } +} + +val sdkVersion: String by project +group = "aws.sdk.kotlin" +version = sdkVersion + +val sourcesJar by tasks.creating(Jar::class) { + group = "publishing" + description = "Assembles Kotlin sources jar" + archiveClassifier.set("sources") + from(sourceSets.getByName("main").allSource) +} + +publishing { + publications { + create("dynamodb-mapper-schema-codegen") { + from(components["java"]) + artifact(sourcesJar) + } + } +} diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt similarity index 98% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt index ce81c7740b4..aa633affb2e 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessor.kt @@ -22,7 +22,6 @@ private val annotationName = DynamoDbItem::class.qualifiedName!! public class AnnotationsProcessor(private val environment: SymbolProcessorEnvironment) : HllKspProcessor(environment) { private val logger = environment.logger - private val codeGenerator = environment.codeGenerator override fun processImpl(resolver: Resolver): List { logger.info("Searching for symbols annotated with $annotationName") diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorOptions.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorOptions.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorOptions.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorOptions.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorProvider.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorProvider.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorProvider.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/AnnotationsProcessorProvider.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/HighLevelRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/HighLevelRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/HighLevelRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/HighLevelRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaAttributes.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaAttributes.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaAttributes.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaAttributes.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaRenderer.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaRenderer.kt similarity index 100% rename from hll/dynamodb-mapper/dynamodb-mapper-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaRenderer.kt rename to hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/rendering/SchemaRenderer.kt diff --git a/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider new file mode 100644 index 00000000000..8b069324654 --- /dev/null +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-codegen/src/main/resources/META-INF/services/com.google.devtools.ksp.processing.SymbolProcessorProvider @@ -0,0 +1,2 @@ +aws.sdk.kotlin.hll.dynamodbmapper.codegen.annotations.AnnotationsProcessorProvider + diff --git a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/build.gradle.kts index f3ac82b7c97..7cf14225da4 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/build.gradle.kts +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/build.gradle.kts @@ -23,7 +23,7 @@ dependencies { implementation(libs.ksp.gradle.plugin) implementation(project(":hll:hll-codegen")) // for RenderOptions - implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) // for AnnotationsProcessorOptions + implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-schema-codegen")) // for AnnotationsProcessorOptions implementation(libs.smithy.kotlin.runtime.core) // for AttributeKey testImplementation(libs.junit.jupiter) @@ -176,6 +176,7 @@ tasks.withType { dependsOn(":aws-runtime:aws-http:publishToMavenLocal") dependsOn(":hll:dynamodb-mapper:dynamodb-mapper-annotations:publishToMavenLocal") dependsOn(":hll:dynamodb-mapper:dynamodb-mapper-codegen:publishToMavenLocal") + dependsOn(":hll:dynamodb-mapper:dynamodb-mapper-schema-codegen:publishToMavenLocal") dependsOn(":hll:dynamodb-mapper:dynamodb-mapper-schema-generator-plugin:publishToMavenLocal") dependsOn(":hll:dynamodb-mapper:dynamodb-mapper:publishToMavenLocal") dependsOn(":hll:hll-codegen:publishToMavenLocal") diff --git a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin.kt b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin.kt index d27504ca1e8..fd50cafe600 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin.kt +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/src/main/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin.kt @@ -38,7 +38,7 @@ public class SchemaGeneratorPlugin : Plugin { } val sdkVersion = getSdkVersion() - dependencies.add("ksp", "aws.sdk.kotlin:dynamodb-mapper-codegen:$sdkVersion") + dependencies.add("ksp", "aws.sdk.kotlin:dynamodb-mapper-schema-codegen:$sdkVersion") } // Reads sdk-version.txt for the SDK version to add dependencies on. The file is created in this module's build.gradle.kts diff --git a/hll/dynamodb-mapper/dynamodb-mapper/build.gradle.kts b/hll/dynamodb-mapper/dynamodb-mapper/build.gradle.kts index 2596d4194df..72c2908e1b4 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper/build.gradle.kts +++ b/hll/dynamodb-mapper/dynamodb-mapper/build.gradle.kts @@ -59,14 +59,12 @@ ksp { "scan", ) arg("op-allowlist", allowlist.joinToString(";")) - - excludeProcessor("aws.sdk.kotlin.hll.dynamodbmapper.codegen.annotations.AnnotationsProcessor") } if (project.NATIVE_ENABLED) { // Configure KSP for commonMain source generation; https://github.com/google/ksp/issues/963#issuecomment-1894144639 - dependencies.kspCommonMainMetadata(project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) + dependencies.kspCommonMainMetadata(project(":hll:dynamodb-mapper:dynamodb-mapper-ops-codegen")) kotlin.sourceSets.commonMain { tasks.withType { @@ -79,7 +77,7 @@ if (project.NATIVE_ENABLED) { // hack follows in narrative, minimally-opinionated comments. // Start by invoking the JVM-only KSP configuration - dependencies.kspJvm(project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) + dependencies.kspJvm(project(":hll:dynamodb-mapper:dynamodb-mapper-ops-codegen")) // Then we need to move the generated source from jvm to common val moveGenSrc by tasks.registering { diff --git a/hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/build.gradle.kts b/hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/build.gradle.kts index 6b5a4a097a7..c103db0235f 100644 --- a/hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/build.gradle.kts +++ b/hll/dynamodb-mapper/tests/dynamodb-mapper-annotation-processor-test/build.gradle.kts @@ -13,6 +13,7 @@ kotlin { dependencies { implementation(project(":hll:dynamodb-mapper:dynamodb-mapper")) implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-annotations")) + implementation(project(":hll:dynamodb-mapper:dynamodb-mapper-schema-codegen")) } } } @@ -22,10 +23,5 @@ dependencies { listOf( "kspCommonMainMetadata", "kspJvm", // FIXME Generating common code is hard for KSP: https://github.com/google/ksp/issues/567 - ).forEach { configuration -> add(configuration, project(":hll:dynamodb-mapper:dynamodb-mapper-codegen")) } -} - -ksp { - // annotation-processor-test does not need the ops-codegen processor loaded - excludeProcessor("aws.sdk.kotlin.hll.dynamodbmapper.codegen.operations.HighLevelOpsProcessorProvider") + ).forEach { configuration -> add(configuration, project(":hll:dynamodb-mapper:dynamodb-mapper-schema-codegen")) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 49237132653..76d43ea1650 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -72,6 +72,8 @@ if ("dynamodb".isBootstrappedService) { include(":hll:dynamodb-mapper") include(":hll:dynamodb-mapper:dynamodb-mapper") include(":hll:dynamodb-mapper:dynamodb-mapper-codegen") + include(":hll:dynamodb-mapper:dynamodb-mapper-ops-codegen") + include(":hll:dynamodb-mapper:dynamodb-mapper-schema-codegen") include(":hll:dynamodb-mapper:dynamodb-mapper-annotations") include(":hll:dynamodb-mapper:tests:dynamodb-mapper-annotation-processor-test") include(":hll:dynamodb-mapper:dynamodb-mapper-schema-generator-plugin")