From 90c0c1b431323d089fbcf66d490175f4f1ea9e44 Mon Sep 17 00:00:00 2001 From: Burt Beckwith Date: Mon, 15 Jul 2024 13:41:30 -0400 Subject: [PATCH] 4.5.0.0 release (#26) 4.5.0.0 release --- .gitignore | 1 + README.md | 30 +- THIRD_PARTY_LICENSES.txt | 4564 +++++++++-------- .../GcnVersionCatalogUpdatePlugin.groovy | 37 - .../src/main/groovy/gcn-dependencies.gradle | 11 - .../native-image.properties | 2 - .../create/app/GcnSpringBootCloudApp.java | 72 - gcn/gradle/wrapper/gradle-wrapper.jar | Bin 43462 -> 0 bytes {gcn => gdk}/buildSrc/build.gradle | 18 +- {gcn => gdk}/buildSrc/settings.gradle | 2 +- .../DependenciesSourceGenerator.groovy | 43 +- .../GdkVersionCatalogUpdatePlugin.groovy | 54 + .../dependencies/VersionCatalogUpdate.groovy | 79 +- .../graal/gdk/pom/CheckGdkPomAction.groovy | 4 +- .../graal/gdk}/pom/DependencyExclusion.groovy | 7 +- .../cloud/graal/gdk}/pom/Exclusion.groovy | 6 +- .../cloud/graal/gdk/pom/GdkBomPlugin.groovy | 33 +- .../cloud/graal/gdk/pom/GdkPomChecker.groovy | 14 +- .../cloud/graal/gdk}/pom/PomParser.groovy | 28 +- .../gdk}/rocker/WhitespaceProcessor.groovy | 2 +- .../plugin/JavaGeneratorRunnable.groovy | 4 +- .../plugin/ProcessRockerTemplatesTask.java | 5 +- .../gdk}/rocker/plugin/RockerPlugin.java | 25 +- .../gdk}/rocker/plugin/RockerWorkAction.java | 3 +- .../rocker/plugin/TemplateDirectorySet.groovy | 2 +- .../graal/gdk}/util/WriteVersionsTask.java | 27 +- .../buildSrc/src/main/groovy/gdk-base.gradle | 2 +- .../src/main/groovy/gdk-dependencies.gradle | 27 + .../src/main/groovy/gdk-module.gradle | 4 +- {gcn => gdk}/config/checkstyle/checkstyle.xml | 0 .../config/checkstyle/suppressions.xml | 0 {gcn => gdk}/config/spotless.license.java | 0 {gcn/gcn-cli => gdk/gdk-cli}/README.adoc | 16 +- {gcn/gcn-cli => gdk/gdk-cli}/build.gradle | 12 +- .../main/java/cloud/graal/gdk/GdkStarter.java | 42 +- .../gdk}/command/CloudTypeConverter.java | 12 +- .../graal/gdk/command/GdkBaseCommand.java | 8 +- .../gdk/command/GdkCommonOptionsMixin.java | 12 +- .../gdk/command/GdkCreateAppCommand.java | 14 +- .../graal/gdk/command/GdkCreateCommand.java | 30 +- .../gdk/command/GdkCreateFunctionCommand.java | 14 +- .../GdkCreateGatewayFunctionCommand.java | 14 +- .../gdk}/command/ServiceTypeConverter.java | 12 +- .../src/main/resources/application.yml | 2 +- .../gdk-cli}/src/main/resources/logback.xml | 0 .../native-image.properties | 2 + .../resource-config.json | 0 .../org/fusesource/jansi/jansi.properties | 0 {gcn/gcn-core => gdk/gdk-core}/README.adoc | 24 +- {gcn/gcn-core => gdk/gdk-core}/build.gradle | 16 +- .../cloud/graal/gdk/GdkBuildProperties.java | 18 +- .../cloud/graal/gdk/GdkContextFactory.java | 34 +- .../cloud/graal/gdk/GdkGeneratorContext.java | 260 +- .../cloud/graal/gdk/GdkProjectCreator.java | 46 +- .../cloud/graal/gdk/GdkProjectGenerator.java | 28 +- .../main/java/cloud/graal/gdk/GdkUtils.java | 22 +- .../OracleCloudNettyClientDependencies.java | 2 +- .../graal/gdk/buildtool/GdkGradleBuild.java | 6 +- .../graal/gdk/buildtool/GdkMavenBuild.java | 6 +- .../cloud/graal/gdk}/buildtool/Utils.java | 2 +- .../graal/gdk/feature/AbstractGdkFeature.java | 40 +- .../java/cloud/graal/gdk/feature/GdkBom.java | 30 +- .../feature/GdkDefaultAvailableFeatures.java | 20 +- .../cloud/graal/gdk/feature/GdkFeature.java | 10 +- .../graal/gdk/feature/GdkFeatureContext.java | 46 +- .../cloud/graal/gdk/feature/GdkFeatures.java | 12 +- .../feature/GdkFunctionAvailableFeatures.java | 20 +- .../graal/gdk/feature/GdkTestedFeatures.java | 12 +- .../create/AbstractGdkCreateFeature.java | 20 +- .../feature/create/GdkGradleBuildCreator.java | 10 +- .../feature/create/GdkMavenBuildCreator.java | 19 +- .../gdk/feature/create/GdkRepository.java | 6 +- .../feature/create/GdkStageRepository.java | 6 +- .../feature/create/PlatformIndependent.java | 28 +- .../create/app/AbstractGdkCloudApp.java | 12 +- .../feature/create/app/GdkAwsCloudApp.java | 12 +- .../feature/create/app/GdkAzureCloudApp.java | 12 +- .../feature/create/app/GdkGcpCloudApp.java | 12 +- .../feature/create/app/GdkOciCloudApp.java | 12 +- .../function/AbstractGdkCloudFunction.java | 12 +- .../create/function/GdkAwsCloudFunction.java | 24 +- .../function/GdkAzureCloudFunction.java | 12 +- .../create/function/GdkGcpCloudFunction.java | 12 +- .../create/function/GdkOciCloudFunction.java | 18 +- .../AbstractGdkCloudGatewayFunction.java | 12 +- .../GdkAwsCloudGatewayFunction.java | 34 +- .../GdkAzureCloudGatewayFunction.java | 12 +- .../GdkGcpCloudGatewayFunction.java | 18 +- .../GdkOciCloudGatewayFunction.java | 18 +- .../template/BuildSrcBuildGradle.rocker.raw | 4 +- .../template/EnforceVersionsGroovy.rocker.raw | 4 +- .../template/EnforceVersionsKotlin.rocker.raw | 4 +- .../feature/graalvm/GraalvmQuickBuild.java | 16 +- .../GraalvmQuickBuildPostProcessor.java | 4 +- .../graal/gdk}/feature/misc/GrpcNetty.java | 14 +- .../graal/gdk}/feature/misc/License.java | 20 +- .../misc/template/ApacheLicense.rocker.raw | 0 .../misc/template/ApacheNotice.rocker.raw | 0 .../replaced/AwsLambdaInitializer.java | 6 +- .../gdk/feature/replaced/GdkAwsLambda.java | 18 +- .../replaced/GdkAwsLambdaCustomRuntime.java | 6 +- .../gdk/feature/replaced/GdkConsole.java | 4 +- ...dkDefaultPomDependencyVersionResolver.java | 8 +- ...dkGoogleCloudFunctionFeatureValidator.java | 4 +- .../replaced/GdkGraalVmFeatureValidator.java | 4 +- .../graal/gdk/feature/replaced/GdkGradle.java | 85 +- .../gdk/feature/replaced/GdkHttpClient.java | 8 +- .../feature/replaced/GdkHttpClientJdk.java | 6 +- .../graal/gdk/feature/replaced/GdkJTE.java | 12 +- .../graal/gdk/feature/replaced/GdkKoTest.java | 16 +- .../gdk/feature/replaced/GdkKubernetes.java | 53 +- .../gdk/feature/replaced/GdkLogback.java | 12 +- .../graal/gdk/feature/replaced/GdkMaven.java | 50 +- .../gdk/feature/replaced/GdkMicronautAot.java | 4 +- .../replaced/GdkOracleCloudMicrometer.java | 8 +- .../feature/replaced/GdkOracleCloudSdk.java | 6 +- .../feature/replaced/GdkOracleCloudVault.java | 12 +- .../replaced/GdkOracleRawFunction.java | 79 + .../gdk/feature/replaced/GdkProperties.java | 68 +- .../graal/gdk/feature/replaced/GdkReadme.java | 8 +- .../feature/replaced/GdkSimpleLogging.java | 12 +- .../graal/gdk/feature/replaced/GdkYaml.java | 8 +- .../template/LibBuildGradle.rocker.raw | 0 .../template/LibMicronautGradle.rocker.raw | 0 .../replaced/template/LibPom.rocker.raw | 4 +- .../template/gdkGradlePluginJTE.rocker.raw | 0 .../template/gdkMvnPluginJTE.rocker.raw | 0 .../replaced/template/k8sYaml.rocker.raw | 8 +- .../replaced/template/maindocs.rocker.raw | 0 .../replaced/template/readme.rocker.raw | 0 .../service/AbstractGdkServiceFeature.java | 26 +- .../database/AbstractDatabaseFeature.java | 68 +- .../feature/service/database/AwsDatabase.java | 10 +- .../service/database/AzureDatabase.java | 10 +- .../feature/service/database/GcpDatabase.java | 10 +- .../service/database/NonCloudDatabase.java | 10 +- .../feature/service/database/OciDatabase.java | 10 +- .../FlywayResourcesConfigJson.rocker.raw | 0 .../template/GenreControllerGroovy.rocker.raw | 0 .../template/GenreControllerJava.rocker.raw | 0 .../template/GenreControllerKotlin.rocker.raw | 0 .../template/GenreControllerSpec.rocker.raw | 0 .../GenreControllerTestGroovyJUnit.rocker.raw | 0 .../GenreControllerTestJava.rocker.raw | 0 .../GenreControllerTestKotest.rocker.raw | 0 .../GenreControllerTestKotlinJUnit.rocker.raw | 0 .../GenreFlywayMigrationH2.rocker.raw | 0 .../GenreFlywayMigrationMySQL.rocker.raw | 0 .../GenreFlywayMigrationOracle.rocker.raw | 0 .../GenreFlywayMigrationPostgreSQL.rocker.raw | 0 .../GenreFlywayMigrationSQLServer.rocker.raw | 0 .../database/template/GenreGroovy.rocker.raw | 0 .../database/template/GenreJava.rocker.raw | 0 .../database/template/GenreKotlin.rocker.raw | 0 .../template/GenreRepositoryGroovy.rocker.raw | 0 .../template/GenreRepositoryJava.rocker.raw | 0 .../template/GenreRepositoryKotlin.rocker.raw | 0 .../template/GenreServiceGroovy.rocker.raw | 0 .../template/GenreServiceJava.rocker.raw | 0 .../template/GenreServiceKotlin.rocker.raw | 0 .../service/email/AbstractEmailFeature.java | 18 +- .../gdk}/feature/service/email/AwsEmail.java | 42 +- .../feature/service/email/AzureEmail.java | 14 +- .../gdk}/feature/service/email/GcpEmail.java | 14 +- .../feature/service/email/NonCloudEmail.java | 36 +- .../gdk}/feature/service/email/OciEmail.java | 52 +- ...AwsEmailSenderReplacementGroovy.rocker.raw | 0 .../AwsEmailSenderReplacementJava.rocker.raw | 0 ...AwsEmailSenderReplacementKotlin.rocker.raw | 0 .../AwsMailControllerGroovy.rocker.raw | 0 .../template/AwsMailControllerJava.rocker.raw | 0 .../AwsMailControllerKotlin.rocker.raw | 0 .../template/AwsMailControllerSpec.rocker.raw | 8 +- ...wsMailControllerTestGroovyJUnit.rocker.raw | 8 +- .../AwsMailControllerTestJava.rocker.raw | 8 +- .../AwsMailControllerTestKotest.rocker.raw | 0 ...wsMailControllerTestKotlinJUnit.rocker.raw | 8 +- .../email/template/EmailHtml.rocker.raw | 0 .../NonCloudMailControllerGroovy.rocker.raw | 0 .../NonCloudMailControllerJava.rocker.raw | 0 .../NonCloudMailControllerKotlin.rocker.raw | 0 .../NonCloudMailControllerSpec.rocker.raw | 8 +- ...udMailControllerTestGroovyJUnit.rocker.raw | 8 +- .../NonCloudMailControllerTestJava.rocker.raw | 8 +- ...onCloudMailControllerTestKotest.rocker.raw | 8 +- ...udMailControllerTestKotlinJUnit.rocker.raw | 8 +- .../OciEmailControllerGroovy.rocker.raw | 6 +- .../OciEmailControllerJava.rocker.raw | 6 +- .../OciEmailControllerKotlin.rocker.raw | 6 +- .../OciEmailControllerSpec.rocker.raw | 0 ...iEmailControllerTestGroovyJUnit.rocker.raw | 0 .../OciEmailControllerTestJava.rocker.raw | 12 +- .../OciEmailControllerTestKotest.rocker.raw | 0 ...iEmailControllerTestKotlinJUnit.rocker.raw | 0 .../OciSessionProviderGroovy.rocker.raw | 0 .../OciSessionProviderJava.rocker.raw | 0 .../OciSessionProviderKotlin.rocker.raw | 0 .../service/k8s/AbstractK8sFeature.java | 20 +- .../gdk}/feature/service/k8s/AwsK8s.java | 10 +- .../gdk}/feature/service/k8s/AzureK8s.java | 10 +- .../gdk}/feature/service/k8s/GcpK8s.java | 10 +- .../gdk}/feature/service/k8s/NonCloudK8s.java | 10 +- .../gdk}/feature/service/k8s/OciK8s.java | 10 +- .../logging/AbstractLoggingFeature.java | 12 +- .../feature/service/logging/AwsLogging.java | 22 +- .../feature/service/logging/AzureLogging.java | 14 +- .../feature/service/logging/GcpLogging.java | 22 +- .../service/logging/NonCloudLogging.java | 14 +- .../feature/service/logging/OciLogging.java | 24 +- .../template/LogControllerGroovy.rocker.raw | 0 .../template/LogControllerJava.rocker.raw | 0 .../template/LogControllerKotlin.rocker.raw | 0 .../logging/template/LogbackXml.rocker.raw | 0 .../metrics/AbstractMetricsFeature.java | 40 +- .../feature/service/metrics/AwsMetrics.java | 18 +- .../feature/service/metrics/AzureMetrics.java | 14 +- .../feature/service/metrics/GcpMetrics.java | 18 +- .../service/metrics/NonCloudMetrics.java | 14 +- .../feature/service/metrics/OciMetrics.java | 18 +- .../template/MetricsServiceGroovy.rocker.raw | 0 .../template/MetricsServiceJava.rocker.raw | 0 .../template/MetricsServiceKotlin.rocker.raw | 0 .../template/MetricsServiceSpec.rocker.raw | 0 .../MetricsServiceTestGroovyJUnit.rocker.raw | 0 .../MetricsServiceTestJavaJUnit.rocker.raw | 0 .../MetricsServiceTestKotest.rocker.raw | 0 .../MetricsServiceTestKotlinJUnit.rocker.raw | 0 .../objectstore/AbstractObjectStore.java | 48 +- .../service/objectstore/AwsObjectStore.java | 18 +- .../service/objectstore/AzureObjectStore.java | 18 +- .../service/objectstore/GcpObjectStore.java | 18 +- .../objectstore/NonCloudObjectStore.java | 24 +- .../service/objectstore/OciObjectStore.java | 18 +- .../ProfilePicturesApiGroovy.rocker.raw | 0 .../ProfilePicturesApiJava.rocker.raw | 0 .../ProfilePicturesApiKotlin.rocker.raw | 0 ...ProfilePicturesControllerGroovy.rocker.raw | 0 .../ProfilePicturesControllerJava.rocker.raw | 0 ...ProfilePicturesControllerKotlin.rocker.raw | 0 .../ProfilePicturesControllerSpec.rocker.raw | 0 ...cturesControllerTestGroovyJUnit.rocker.raw | 0 ...ofilePicturesControllerTestJava.rocker.raw | 0 ...ilePicturesControllerTestKotest.rocker.raw | 0 ...cturesControllerTestKotlinJUnit.rocker.raw | 0 .../service/sdk/AbstractSdkFeature.java | 12 +- .../gdk}/feature/service/sdk/AwsSdk.java | 18 +- .../gdk}/feature/service/sdk/AzureSdk.java | 14 +- .../gdk}/feature/service/sdk/GcpSdk.java | 14 +- .../gdk}/feature/service/sdk/NonCloudSdk.java | 14 +- .../gdk}/feature/service/sdk/OciSdk.java | 30 +- .../OciInstanceControllerGroovy.rocker.raw | 0 .../OciInstanceControllerJava.rocker.raw | 0 .../OciInstanceControllerKotlin.rocker.raw | 0 .../template/OciInstanceDataGroovy.rocker.raw | 0 .../template/OciInstanceDataJava.rocker.raw | 0 .../template/OciInstanceDataKotlin.rocker.raw | 0 .../AbstractSecretManagementFeature.java | 12 +- .../secretmanagement/AwsSecretManagement.java | 46 +- .../AzureSecretManagement.java | 14 +- .../secretmanagement/GcpSecretManagement.java | 18 +- .../NonCloudSecretManagement.java | 14 +- .../secretmanagement/OciSecretManagement.java | 18 +- .../ClientIdControllerGroovy.rocker.raw | 0 .../ClientIdControllerJava.rocker.raw | 0 .../ClientIdControllerKotlin.rocker.raw | 0 .../template/SdkHttpClientSpec.rocker.raw | 0 .../SdkHttpClientTestGroovyJUnit.rocker.raw | 0 .../template/SdkHttpClientTestJava.rocker.raw | 0 .../SdkHttpClientTestKotest.rocker.raw | 0 .../SdkHttpClientTestKotlinJUnit.rocker.raw | 0 .../SecretsManagerClientSpec.rocker.raw | 0 ...etsManagerClientTestGroovyJUnit.rocker.raw | 0 .../SecretsManagerClientTestJava.rocker.raw | 0 .../SecretsManagerClientTestKotest.rocker.raw | 0 ...etsManagerClientTestKotlinJUnit.rocker.raw | 0 .../security/AbstractSecurityFeature.java | 36 +- .../feature/service/security/AwsSecurity.java | 14 +- .../service/security/AzureSecurity.java | 14 +- .../feature/service/security/GcpSecurity.java | 22 +- .../service/security/NonCloudSecurity.java | 14 +- .../feature/service/security/OciSecurity.java | 22 +- .../template/AuthControllerGroovy.rocker.raw | 0 .../template/AuthControllerJava.rocker.raw | 0 .../template/AuthControllerKotlin.rocker.raw | 0 .../security/template/AuthHtml.rocker.raw | 4 +- .../streaming/AbstractStreamingFeature.java | 22 +- .../service/streaming/AwsStreaming.java | 18 +- .../service/streaming/AzureStreaming.java | 14 +- .../service/streaming/GcpStreaming.java | 14 +- .../service/streaming/NonCloudStreaming.java | 14 +- .../service/streaming/OciStreaming.java | 18 +- .../tracing/AbstractTracingFeature.java | 54 +- .../feature/service/tracing/AwsTracing.java | 18 +- .../feature/service/tracing/AzureTracing.java | 24 +- .../feature/service/tracing/GcpTracing.java | 18 +- .../service/tracing/NonCloudTracing.java | 14 +- .../feature/service/tracing/OciTracing.java | 14 +- .../InventoryServiceGroovy.rocker.raw | 0 .../template/InventoryServiceJava.rocker.raw | 0 .../InventoryServiceKotlin.rocker.raw | 0 .../template/StoreControllerGroovy.rocker.raw | 0 .../template/StoreControllerJava.rocker.raw | 0 .../template/StoreControllerKotlin.rocker.raw | 0 .../template/StoreControllerSpec.rocker.raw | 0 .../StoreControllerTestGroovyJUnit.rocker.raw | 0 .../StoreControllerTestJava.rocker.raw | 0 .../StoreControllerTestKotest.rocker.raw | 0 .../StoreControllerTestKotlinJUnit.rocker.raw | 0 .../template/WarehouseClientGroovy.rocker.raw | 0 .../template/WarehouseClientJava.rocker.raw | 0 .../template/WarehouseClientKotlin.rocker.raw | 0 .../WarehouseControllerGroovy.rocker.raw | 0 .../WarehouseControllerJava.rocker.raw | 0 .../WarehouseControllerKotlin.rocker.raw | 0 .../java/cloud/graal/gdk/model/GdkCloud.java | 32 +- .../cloud/graal/gdk/model/GdkProjectType.java | 15 +- .../cloud/graal/gdk/model/GdkService.java | 20 +- .../template/BuildGradlePostProcessor.java | 14 +- .../gdk/template/GdkPropertiesTemplate.java | 8 +- .../gdk/template/GdkTemplateRenderer.java | 16 +- .../graal/gdk/template/GdkYamlTemplate.java | 12 +- .../template/LogbackXmlPostProcessor.java | 2 +- .../template/MavenPlatformPostProcessor.java | 8 +- .../gdk}/template/MavenPomPostProcessor.java | 18 +- .../gdk}/template/ProcessedTemplate.java | 4 +- .../gdk}/template/TemplatePostProcessor.java | 2 +- .../main/resources/gcn_bom/gcn-bom-1.0.pom | 0 .../main/resources/gcn_bom/gcn-bom-2.0.pom | 0 .../main/resources/gcn_bom/gcn-bom-2.1.pom | 0 {gcn => gdk}/gradle.properties | 2 +- {gcn => gdk}/gradle/libs.versions.toml | 16 +- {gcn => gdk}/gradle/templates.versions.toml | 87 +- gdk/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- {gcn => gdk}/gradlew | 0 {gcn => gdk}/gradlew.bat | 20 +- {gcn => gdk}/settings.gradle | 4 +- 337 files changed, 4361 insertions(+), 4225 deletions(-) delete mode 100644 gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/GcnVersionCatalogUpdatePlugin.groovy delete mode 100644 gcn/buildSrc/src/main/groovy/gcn-dependencies.gradle delete mode 100644 gcn/gcn-cli/src/main/resources/micronaut-starter-cli/native-image.properties delete mode 100644 gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnSpringBootCloudApp.java delete mode 100644 gcn/gradle/wrapper/gradle-wrapper.jar rename {gcn => gdk}/buildSrc/build.gradle (80%) rename {gcn => gdk}/buildSrc/settings.gradle (96%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/dependencies/DependenciesSourceGenerator.groovy (73%) create mode 100644 gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/GdkVersionCatalogUpdatePlugin.groovy rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/dependencies/VersionCatalogUpdate.groovy (84%) rename gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/CheckGcnPomAction.groovy => gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/CheckGdkPomAction.groovy (97%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/pom/DependencyExclusion.groovy (86%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/pom/Exclusion.groovy (90%) rename gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnBomPlugin.groovy => gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkBomPlugin.groovy (91%) rename gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnPomChecker.groovy => gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkPomChecker.groovy (94%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/pom/PomParser.groovy (82%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/WhitespaceProcessor.groovy (98%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/plugin/JavaGeneratorRunnable.groovy (97%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/plugin/ProcessRockerTemplatesTask.java (95%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/plugin/RockerPlugin.java (68%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/plugin/RockerWorkAction.java (96%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/rocker/plugin/TemplateDirectorySet.groovy (98%) rename {gcn/buildSrc/src/main/groovy/cloud/graal/gcn => gdk/buildSrc/src/main/groovy/cloud/graal/gdk}/util/WriteVersionsTask.java (55%) rename gcn/buildSrc/src/main/groovy/gcn-base.gradle => gdk/buildSrc/src/main/groovy/gdk-base.gradle (99%) create mode 100644 gdk/buildSrc/src/main/groovy/gdk-dependencies.gradle rename gcn/buildSrc/src/main/groovy/gcn-module.gradle => gdk/buildSrc/src/main/groovy/gdk-module.gradle (92%) rename {gcn => gdk}/config/checkstyle/checkstyle.xml (100%) rename {gcn => gdk}/config/checkstyle/suppressions.xml (100%) rename {gcn => gdk}/config/spotless.license.java (100%) rename {gcn/gcn-cli => gdk/gdk-cli}/README.adoc (57%) rename {gcn/gcn-cli => gdk/gdk-cli}/build.gradle (93%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/GcnStarter.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/GdkStarter.java (83%) rename {gcn/gcn-cli/src/main/java/cloud/graal/gcn => gdk/gdk-cli/src/main/java/cloud/graal/gdk}/command/CloudTypeConverter.java (75%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnBaseCommand.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkBaseCommand.java (94%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCommonOptionsMixin.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCommonOptionsMixin.java (84%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateAppCommand.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateAppCommand.java (76%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateCommand.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateCommand.java (89%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateFunctionCommand.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateFunctionCommand.java (76%) rename gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateGatewayFunctionCommand.java => gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateGatewayFunctionCommand.java (76%) rename {gcn/gcn-cli/src/main/java/cloud/graal/gcn => gdk/gdk-cli/src/main/java/cloud/graal/gdk}/command/ServiceTypeConverter.java (75%) rename {gcn/gcn-cli => gdk/gdk-cli}/src/main/resources/application.yml (97%) rename {gcn/gcn-cli => gdk/gdk-cli}/src/main/resources/logback.xml (100%) create mode 100644 gdk/gdk-cli/src/main/resources/micronaut-starter-cli/native-image.properties rename {gcn/gcn-cli => gdk/gdk-cli}/src/main/resources/micronaut-starter-cli/resource-config.json (100%) rename {gcn/gcn-cli => gdk/gdk-cli}/src/main/resources/org/fusesource/jansi/jansi.properties (100%) rename {gcn/gcn-core => gdk/gdk-core}/README.adoc (77%) rename {gcn/gcn-core => gdk/gdk-core}/build.gradle (91%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnBuildProperties.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkBuildProperties.java (89%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnContextFactory.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkContextFactory.java (83%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnGeneratorContext.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkGeneratorContext.java (82%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectCreator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectCreator.java (82%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectGenerator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectGenerator.java (87%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnUtils.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkUtils.java (85%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/OracleCloudNettyClientDependencies.java (98%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnGradleBuild.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkGradleBuild.java (92%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnMavenBuild.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkMavenBuild.java (96%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/buildtool/Utils.java (97%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/AbstractGcnFeature.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/AbstractGdkFeature.java (70%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnBom.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkBom.java (77%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnDefaultAvailableFeatures.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkDefaultAvailableFeatures.java (81%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeature.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeature.java (82%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatureContext.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatureContext.java (84%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatures.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatures.java (87%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFunctionAvailableFeatures.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFunctionAvailableFeatures.java (81%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnTestedFeatures.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkTestedFeatures.java (91%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/AbstractGcnCreateFeature.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/AbstractGdkCreateFeature.java (85%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnGradleBuildCreator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkGradleBuildCreator.java (91%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnMavenBuildCreator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkMavenBuildCreator.java (89%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnRepository.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkRepository.java (89%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnStageRepository.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkStageRepository.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/create/PlatformIndependent.java (67%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/AbstractGcnCloudApp.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/AbstractGdkCloudApp.java (71%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAwsCloudApp.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAwsCloudApp.java (77%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAzureCloudApp.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAzureCloudApp.java (76%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnGcpCloudApp.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkGcpCloudApp.java (77%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnOciCloudApp.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkOciCloudApp.java (77%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/AbstractGcnCloudFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/AbstractGdkCloudFunction.java (69%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAwsCloudFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAwsCloudFunction.java (65%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAzureCloudFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAzureCloudFunction.java (76%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnGcpCloudFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkGcpCloudFunction.java (76%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnOciCloudFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkOciCloudFunction.java (73%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/AbstractGcnCloudGatewayFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/AbstractGdkCloudGatewayFunction.java (69%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAwsCloudGatewayFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAwsCloudGatewayFunction.java (71%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAzureCloudGatewayFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAzureCloudGatewayFunction.java (75%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnGcpCloudGatewayFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkGcpCloudGatewayFunction.java (73%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnOciCloudGatewayFunction.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkOciCloudGatewayFunction.java (73%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/create/template/BuildSrcBuildGradle.rocker.raw (72%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/create/template/EnforceVersionsGroovy.rocker.raw (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/create/template/EnforceVersionsKotlin.rocker.raw (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/graalvm/GraalvmQuickBuild.java (84%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/graalvm/GraalvmQuickBuildPostProcessor.java (95%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/misc/GrpcNetty.java (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/misc/License.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/misc/template/ApacheLicense.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/misc/template/ApacheNotice.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/AwsLambdaInitializer.java (89%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambda.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambda.java (81%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambdaCustomRuntime.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambdaCustomRuntime.java (92%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnConsole.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkConsole.java (94%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnDefaultPomDependencyVersionResolver.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkDefaultPomDependencyVersionResolver.java (88%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGoogleCloudFunctionFeatureValidator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGoogleCloudFunctionFeatureValidator.java (96%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGraalVmFeatureValidator.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGraalVmFeatureValidator.java (95%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGradle.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGradle.java (83%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClient.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClient.java (89%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClientJdk.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClientJdk.java (91%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnJTE.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkJTE.java (92%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKoTest.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKoTest.java (88%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKubernetes.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKubernetes.java (50%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnLogback.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkLogback.java (85%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMaven.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMaven.java (80%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMicronautAot.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMicronautAot.java (92%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudMicrometer.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudMicrometer.java (87%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudSdk.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudSdk.java (87%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudVault.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudVault.java (90%) create mode 100644 gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleRawFunction.java rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnProperties.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkProperties.java (52%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnReadme.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkReadme.java (94%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnSimpleLogging.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkSimpleLogging.java (83%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnYaml.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkYaml.java (85%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/LibBuildGradle.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/LibMicronautGradle.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/LibPom.rocker.raw (99%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnGradlePluginJTE.rocker.raw => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkGradlePluginJTE.rocker.raw (100%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnMvnPluginJTE.rocker.raw => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkMvnPluginJTE.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/k8sYaml.rocker.raw (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/maindocs.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/replaced/template/readme.rocker.raw (100%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/AbstractGcnServiceFeature.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/AbstractGdkServiceFeature.java (73%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/AbstractDatabaseFeature.java (84%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/AwsDatabase.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/AzureDatabase.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/GcpDatabase.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/NonCloudDatabase.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/OciDatabase.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/FlywayResourcesConfigJson.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerTestJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreControllerTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreFlywayMigrationH2.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreFlywayMigrationMySQL.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreFlywayMigrationOracle.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreFlywayMigrationPostgreSQL.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreFlywayMigrationSQLServer.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreRepositoryGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreRepositoryJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreRepositoryKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreServiceGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreServiceJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/database/template/GenreServiceKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/AbstractEmailFeature.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/AwsEmail.java (78%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/AzureEmail.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/GcpEmail.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/NonCloudEmail.java (83%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/OciEmail.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsEmailSenderReplacementGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsEmailSenderReplacementJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsEmailSenderReplacementKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerSpec.rocker.raw (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerTestJava.rocker.raw (91%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw (88%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/EmailHtml.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw (88%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerGroovy.rocker.raw (94%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerJava.rocker.raw (94%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerKotlin.rocker.raw (94%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerTestJava.rocker.raw (93%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciEmailControllerTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciSessionProviderGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciSessionProviderJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/email/template/OciSessionProviderKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/AbstractK8sFeature.java (81%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/AwsK8s.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/AzureK8s.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/GcpK8s.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/NonCloudK8s.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/k8s/OciK8s.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/AbstractLoggingFeature.java (71%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/AwsLogging.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/AzureLogging.java (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/GcpLogging.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/NonCloudLogging.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/OciLogging.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/template/LogControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/template/LogControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/template/LogControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/logging/template/LogbackXml.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/AbstractMetricsFeature.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/AwsMetrics.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/AzureMetrics.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/GcpMetrics.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/NonCloudMetrics.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/OciMetrics.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceTestJavaJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/metrics/template/MetricsServiceTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/AbstractObjectStore.java (78%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/AwsObjectStore.java (81%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/AzureObjectStore.java (80%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/GcpObjectStore.java (81%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/NonCloudObjectStore.java (62%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/OciObjectStore.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesApiGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesApiJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesApiKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerTestJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/objectstore/template/ProfilePicturesControllerTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/AbstractSdkFeature.java (72%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/AwsSdk.java (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/AzureSdk.java (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/GcpSdk.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/NonCloudSdk.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/OciSdk.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceDataGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceDataJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/sdk/template/OciInstanceDataKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/AbstractSecretManagementFeature.java (74%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/AwsSecretManagement.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/AzureSecretManagement.java (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/GcpSecretManagement.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/NonCloudSecretManagement.java (75%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/OciSecretManagement.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/ClientIdControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/ClientIdControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/ClientIdControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SdkHttpClientSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SdkHttpClientTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SdkHttpClientTestJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SdkHttpClientTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SdkHttpClientTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SecretsManagerClientSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SecretsManagerClientTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SecretsManagerClientTestJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SecretsManagerClientTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/secretmanagement/template/SecretsManagerClientTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/AbstractSecurityFeature.java (78%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/AwsSecurity.java (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/AzureSecurity.java (82%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/GcpSecurity.java (81%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/NonCloudSecurity.java (90%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/OciSecurity.java (81%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/template/AuthControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/template/AuthControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/template/AuthControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/security/template/AuthHtml.rocker.raw (88%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/AbstractStreamingFeature.java (72%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/AwsStreaming.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/AzureStreaming.java (78%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/GcpStreaming.java (83%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/NonCloudStreaming.java (79%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/streaming/OciStreaming.java (87%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/AbstractTracingFeature.java (76%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/AwsTracing.java (86%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/AzureTracing.java (63%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/GcpTracing.java (86%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/NonCloudTracing.java (85%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/OciTracing.java (88%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/InventoryServiceGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/InventoryServiceJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/InventoryServiceKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerSpec.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerTestGroovyJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerTestJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerTestKotest.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/StoreControllerTestKotlinJUnit.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseClientGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseClientJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseClientKotlin.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseControllerGroovy.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseControllerJava.rocker.raw (100%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/feature/service/tracing/template/WarehouseControllerKotlin.rocker.raw (100%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnCloud.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkCloud.java (86%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnProjectType.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkProjectType.java (84%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnService.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkService.java (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/BuildGradlePostProcessor.java (95%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnPropertiesTemplate.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkPropertiesTemplate.java (93%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnTemplateRenderer.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkTemplateRenderer.java (91%) rename gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnYamlTemplate.java => gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkYamlTemplate.java (95%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/LogbackXmlPostProcessor.java (97%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/MavenPlatformPostProcessor.java (89%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/MavenPomPostProcessor.java (95%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/ProcessedTemplate.java (95%) rename {gcn/gcn-core/src/main/java/cloud/graal/gcn => gdk/gdk-core/src/main/java/cloud/graal/gdk}/template/TemplatePostProcessor.java (96%) rename {gcn/gcn-core => gdk/gdk-core}/src/main/resources/gcn_bom/gcn-bom-1.0.pom (100%) rename {gcn/gcn-core => gdk/gdk-core}/src/main/resources/gcn_bom/gcn-bom-2.0.pom (100%) rename {gcn/gcn-core => gdk/gdk-core}/src/main/resources/gcn_bom/gcn-bom-2.1.pom (100%) rename {gcn => gdk}/gradle.properties (66%) rename {gcn => gdk}/gradle/libs.versions.toml (92%) rename {gcn => gdk}/gradle/templates.versions.toml (85%) create mode 100644 gdk/gradle/wrapper/gradle-wrapper.jar rename {gcn => gdk}/gradle/wrapper/gradle-wrapper.properties (94%) rename {gcn => gdk}/gradlew (100%) rename {gcn => gdk}/gradlew.bat (90%) rename {gcn => gdk}/settings.gradle (95%) diff --git a/.gitignore b/.gitignore index 93a5f76..9078b17 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ build/ dev.properties out/ target/ +bin/ gen/ mdguides/ mdinfo/ diff --git a/README.md b/README.md index 6ee82ba..9a4886c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Graal Development Kit (GDK) +# Graal Development Kit for Micronaut (GDK) -Graal Development Kit (GDK) is a curated set of open source Micronaut® framework modules designed from the ground up to be compiled ahead-of-time with GraalVM Native Image resulting in native executables ideal for microservices. +Graal Development Kit for Micronaut (GDK) is a curated set of open source Micronaut® framework modules designed from the ground up to be compiled ahead-of-time with GraalVM Native Image resulting in native executables ideal for microservices. With GDK, you can build portable cloud-native Java microservices that start instantly and use fewer resources to reduce compute costs. ## Installation @@ -32,7 +32,7 @@ curl -s "https://get.sdkman.io" | bash Install GDK CLI ```sh -sdk install gcn +sdk install gdk ``` ### Linux @@ -46,12 +46,12 @@ curl -s "https://get.sdkman.io" | bash Install GDK CLI ```sh -sdk install gcn +sdk install gdk ``` ### Other Platforms -Get the binary from https://github.com/oracle/graal-dev-kit/releases +Get the binary from https://github.com/oracle/graal-dev-kit/releases ## Documentation @@ -72,10 +72,10 @@ This source repository is the main repository for GDK and includes the following Directory | Description ------------ | ------------- -[`gcn/buildSrc/`](gcn/buildSrc/) | Gradle build and convention plugins. -[`gcn/config/`](gcn/config/) | Configuration files for Gradle code quality plugins. -[`gcn/gdk-cli/`](gcn/gcn-cli/) | The GDK CLI, a Micronaut [Picocli](https://picocli.info/) application that generates GDK applications. -[`gcn/gdk-core/`](gcn/gcn-core/) | The main GDK library. +[`gdk/buildSrc/`](gdk/buildSrc/) | Gradle build and convention plugins. +[`gdk/config/`](gdk/config/) | Configuration files for Gradle code quality plugins. +[`gdk/gdk-cli/`](gdk/gdk-cli/) | The GDK CLI, a Micronaut [Picocli](https://picocli.info/) application that generates GDK applications. +[`gdk/gdk-core/`](gdk/gdk-core/) | The main GDK library. ## Contributing @@ -87,12 +87,12 @@ Please consult the [security guide](./SECURITY.md) for our responsible security ## License -Copyright (c) 2023, 2024 Oracle and/or its affiliates. +Copyright (c) 2023 Oracle and/or its affiliates. -GCN is open source and distributed under the [Apache License version 2.0](LICENSE.txt). +GDK is open source and distributed under the [Apache License version 2.0](LICENSE.txt). -[docs]: https://www.graal.cloud/gcn/ -[guides]: https://www.graal.cloud/gcn/guides/ -[issues]: https://github.com/oracle/gcn/issues -[launcher]: https://www.graal.cloud/gcn/launcher/ +[docs]: https://graal.cloud/gdk/ +[guides]: https://graal.cloud/gdk/guides/ +[issues]: https://github.com/oracle/graal-dev-kit/issues +[launcher]: https://graal.cloud/gdk/launcher/ [reporting-vulnerabilities]: https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html diff --git a/THIRD_PARTY_LICENSES.txt b/THIRD_PARTY_LICENSES.txt index 28e68b6..511d3f1 100644 --- a/THIRD_PARTY_LICENSES.txt +++ b/THIRD_PARTY_LICENSES.txt @@ -1,96 +1,13 @@ - LICENSES FOR THIRD-PARTY COMPONENTS - Graal Cloud Native + LICENSES FOR THIRD-PARTY COMPONENTS + Graal Development Kit for Micronaut =============================================================================== The following sections contain licensing information for libraries that we have -included with the Graal Cloud Native source. We are thankful to all individuals -that have created these. -The following software may be included in this product: -================================================================================ - -slf4j-api - -Copyright (c) 2004-2023 QOS.ch -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -================================================================================ - -slf4j-nop - -Top Level Component Name: slf4j-nop -Top Level Component License: MIT -Top Level Component Copyright Notice: ------------------------------- - -Copyright (c) 2004-2023 QOS.ch -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -========================================================================== - -4P Component Name: slf4j-api -4P Component License: MIT -4P Component Copyright Notice: ------------------------------- - -Copyright (c) 2004-2023 QOS.ch -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. +included with the Graal Development Kit for Micronaut. We are thankful to all +individuals that have created these. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +The following software may be included in this product: ================================================================================ picocli @@ -655,7 +572,66 @@ the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. ================================================================================ -micronaut-starter-api +slf4j-nop + +Top Level Component Name: slf4j-nop +Top Level Component License: MIT +Top Level Component Copyright Notice: +------------------------------ + +Copyright (c) 2004-2023 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================================================== + +4P Component Name: slf4j-api +4P Component License: MIT +4P Component Copyright Notice: +------------------------------ + +Copyright (c) 2004-2023 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +================================================================================ + +micronaut-cli Apache License Version 2.0, January 2004 @@ -865,11 +841,35 @@ Copyright 2017-2024 original authors LICENSES LIST ------------- -fasterxml.jackson-core -Apache 2.0 License as above +commons-codec:commons-codec +=========================== +Apache 2.0 LICENSE +----------- +Same as above listed license +NOTICE.txt +---------- +Apache Commons Codec +Copyright 2002-2023 The Apache Software Foundation -NOTICE ----------------------------------- +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +commons-io:commons-io +===================== +Apache-2.0: License as listed above +NOTICE.txt +---------- +Apache Commons IO +Copyright 2002-2023 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +com.fasterxml.jackson.core:jackson-core +======================================= +Apache 2.0 License as above +Notice +------ # Jackson JSON processor Jackson is a high-performance, Free/Open Source JSON processing library. @@ -1075,20 +1075,6 @@ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -commons-codec:commons-codec -=========================== -Apache 2.0 LICENSE ------------ -Same as above listed license -NOTICE.txt ----------- -Apache Commons Codec -Copyright 2002-2023 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). - - com.fizzed:rocker-runtime ========================= Apache-2.0: License @@ -1100,11 +1086,10 @@ Copyright 2015 Fendler Consulting cc. com.googlecode.javaewah:JavaEWAH ================================ -Apache 2.0 license as above +Apache-2.0: LICENSE Copyright 2009-2016, Daniel Lemire, Cliff Moon, David McIntosh, Robert Becho, Google Inc., Veronika Zenz, Owen Kaser, Gregory Ssi-Yan-Kai, Rory Graves - com.typesafe:config =================== Apache-2.0: License @@ -1112,17 +1097,38 @@ Copyrights ---------- Copyright (C) 2011-2012 Typesafe Inc. +info.picocli:picocli-shell-jline3 +================================= +Apache-2.0: License +Copyrights +---------- +Copyright 2017 Robert 'Bobby' Zenz +Copyright 2017 Remko Popma +Copyright 2017 the original author or authors. + + +info.picocli:picocli +==================== +Apache-2.0: LICENSE +------- +Same as above listed license +Copyrights +---------- +Copyright 2017 Robert 'Bobby' Zenz +Copyright 2017 Remko Popma +Copyright 2017 the original author or authors. + io.github.java-diff-utils:java-diff-utils ========================================= Apache-2.0: LICENSE ------- Same as above listed license + Copyrights ---------- Copyright 2017 java-diff-utils. Copyright (C) 2009 - 2017 java-diff-utils - io.netty:netty-buffer io.netty:netty-codec-http2 io.netty:netty-codec-http @@ -1135,11 +1141,7 @@ io.netty:netty-resolver io.netty:netty-transport-native-unix-common io.netty:netty-transport ===================== -Apache-2.0: License as above -Copyrights ----------- -Copyright 2014 The Netty Project - +Apache-2.0: license Notice ------ Netty (io.netty:netty-*) @@ -1813,28 +1815,22 @@ decompression for Java., which can be obtained at: * HOMEPAGE: * https://github.com/hyperxpro/Brotli4j +Copyrights +---------- +Copyright 2014 The Netty Project + io.projectreactor:reactor-core ============================== - -Apache-2.0: License +Apache-2.0: LICENSE +------- +Same as above listed license Copyrights ---------- Copyright (c) 2019-2021 VMware Inc. or its affiliates, All Rights Reserved. Copyright 2002-2017 the original author or authors. -io.swagger.core.v3:swagger-annotations -====================================== -Apache 2.0 License as above -NOTICE ------- -Swagger Core - swagger-annotations -Copyright (c) 2015. SmartBear Software Inc. -Swagger Core - swagger-annotations is licensed under Apache 2.0 license. -Copy of the Apache 2.0 license can be found in `LICENSE` file. - - jakarta.annotation:jakarta.annotation-api ========================================= LICENSE @@ -2579,13 +2575,13 @@ Copyrights Copyright (C) 2009 The JSR-330 Expert Group -jakarta.validation:jakarta.validation-api -========================================= +javax.inject:javax.inject +========================= Apache-2.0: License org.apache.commons:commons-compress =================================== -Apache 2.0 LICENSE +Apache-2.0: License ----------- Same as above listed license NOTICE.txt @@ -2646,13 +2642,77 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, jseward@acm.org +org.apache.commons:commons-lang3 +================================ +Apache 2.0 LICENSE Same as above listed license +NOTICE.txt +---------- +Apache Commons Lang +Copyright 2001-2023 The Apache Software Foundation -org.eclipse.jgit:org.eclipse.jgit -================================= -This program and the accompanying materials are made available -under the terms of the Eclipse Distribution License v1.0 which -accompanies this distribution, is reproduced below, and is -available at http://www.eclipse.org/org/documents/edl-v10.php +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +org.bitbucket.b_c:jose4j +======================== +Apache-2.0: LICENSE +------- +Same as above listed license +NOTICE.txt +---------- +jose4j +Copyright 2012-2015 Brian Campbell + +EcdsaUsingShaAlgorithm contains code for converting the concatenated +R & S values of the signature to and from DER, which was originally +derived from the Apache Santuario XML Security library's SignatureECDSA +implementation. http://santuario.apache.org/ + +The Base64 implementation in this software was derived from the +Apache Commons Codec project. http://commons.apache.org/proper/commons-codec/ + +JSON processing in this software was derived from the JSON.simple toolkit. +https://code.google.com/p/json-simple/ + +Copyrights +---------- +Copyright 2012-2017 Brian Campbell + + +org.bouncycastle:bcpkix-jdk18on +org.bouncycastle:bcprov-jdk18on +org.bouncycastle:bcutil-jdk18on +=============================== + +Bouncy Castle Licence: +Copyright (c) 2000 - 2023 The Legion of the Bouncy Castle Inc. +(https://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, +copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +org.eclipse.jgit:org.eclipse.jgit +================================= +This program and the accompanying materials are made available +under the terms of the Eclipse Distribution License v1.0 which +accompanies this distribution, is reproduced below, and is +available at http://www.eclipse.org/org/documents/edl-v10.php All rights reserved. @@ -2712,6 +2772,57 @@ Copyright (C) 2011, Tomasz Zarna and others Copyright (C) 2011, Philipp Thun and others Copyright (C) 2011, 2012 IBM Corporation and others. and others +org.fusesource.jansi:jansi +========================== +Apache-2.0: License +Copyright (C) 2009-2023 the original author(s). + +org.jline:jline +=============== + +BSD-3-Clause: LICENSE +----------- +Copyright (c) 2002-2018, the original author or authors. +All rights reserved. + +https://opensource.org/licenses/BSD-3-Clause + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with +the distribution. + +Neither the name of JLine nor the names of its contributors +may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyrights +---------- +Copyright (c) 2002-2021, the original author(s). +Copyright (c) 2002-2016, the original author or authors. + + org.reactivestreams:reactive-streams ==================================== MIT-0: LICENSE @@ -2734,7 +2845,24 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +org.shredzone.acme4j:acme4j-client +================================== +Apache-2.0: LICENSE +Copyrights +---------- +Copyright (C) 2016 Richard "Shred" Körber + + +org.shredzone.acme4j:acme4j-utils +================================= +Apache-2.0: LICENSE +Copyrights +---------- +Copyright (C) 2016 Richard "Shred" Körber + + org.slf4j:slf4j-api +org.slf4j:slf4j-nop =================== LICENSE ----------- @@ -2767,7 +2895,6 @@ Copyright 2001-2004 The Apache Software Foundation. Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) Copyright (c) 2004-2013 QOS.ch, Copyright (C) 2015 Google Inc. - org.yaml:snakeyaml ================== Apache-2.0: LICENSE @@ -2779,7 +2906,7 @@ Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland ================================================================================ -micronaut-starter-core +micronaut-starter-api Apache License Version 2.0, January 2004 @@ -2989,19 +3116,11 @@ Copyright 2017-2024 original authors LICENSES LIST ------------- -com.fasterxml.jackson.core:jackson-core -======================================= -Apache-2.0: LICENSE -------- -Same as above listed license - +fasterxml.jackson-core +Apache 2.0 License as above -Copyrights ----------- -Copyright 2018-2020 Raffaello Giulietti -Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi ----------------------------- -Jackson-core notice +NOTICE +---------------------------------- # Jackson JSON processor Jackson is a high-performance, Free/Open Source JSON processing library. @@ -3039,6 +3158,9 @@ See FastDoubleParser-NOTICE for details of other source code included in FastDoubleParser and the licenses and copyrights that apply to that code. +---------------------------- +FastDoubleParser License, Notice and its dependencies + FastDoubleParser LICENSE ------------------------------ MIT License @@ -3204,6 +3326,31 @@ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +commons-codec:commons-codec +=========================== +Apache 2.0 LICENSE +----------- +Same as above listed license +NOTICE.txt +---------- +Apache Commons Codec +Copyright 2002-2023 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +commons-io:commons-io +===================== + +Apache-2.0: License as listed above +NOTICE.txt +---------- +Apache Commons IO +Copyright 2002-2023 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + com.fizzed:rocker-runtime ========================= @@ -3216,18 +3363,18 @@ Copyright 2015 Fendler Consulting cc. com.googlecode.javaewah:JavaEWAH ================================ +Apache 2.0 license as above +Copyright 2009-2016, Daniel Lemire, Cliff Moon, David McIntosh, Robert Becho, +Google Inc., Veronika Zenz, Owen Kaser, Gregory Ssi-Yan-Kai, Rory Graves -Apache-2.0: LICENSE com.typesafe:config =================== - Apache-2.0: License Copyrights ---------- Copyright (C) 2011-2012 Typesafe Inc. - io.github.java-diff-utils:java-diff-utils ========================================= Apache-2.0: LICENSE @@ -3251,10 +3398,12 @@ io.netty:netty-resolver io.netty:netty-transport-native-unix-common io.netty:netty-transport ===================== - Apache-2.0: License as above +Copyrights +---------- +Copyright 2014 The Netty Project -NOTICE +Notice ------ Netty (io.netty:netty-*) Copyright 2012,2021 The Netty Project @@ -3927,23 +4076,28 @@ decompression for Java., which can be obtained at: * HOMEPAGE: * https://github.com/hyperxpro/Brotli4j -Copyrights ----------- -Copyright 2014 The Netty Project - io.projectreactor:reactor-core ============================== -Apache-2.0: LICENSE -------- -Same as above listed license +Apache-2.0: License Copyrights ---------- Copyright (c) 2019-2021 VMware Inc. or its affiliates, All Rights Reserved. Copyright 2002-2017 the original author or authors. +io.swagger.core.v3:swagger-annotations +====================================== +Apache 2.0 License as above +NOTICE +------ +Swagger Core - swagger-annotations +Copyright (c) 2015. SmartBear Software Inc. +Swagger Core - swagger-annotations is licensed under Apache 2.0 license. +Copy of the Apache 2.0 license can be found in `LICENSE` file. + + jakarta.annotation:jakarta.annotation-api ========================================= LICENSE @@ -4636,9 +4790,9 @@ Copyright (c) 2020 Oracle andor its affiliates. All rights reserved. jakarta.inject:jakarta.inject-api ================================= Apache 2.0 LICENSE +----------- Same as above listed license - -NOTICE +NOTICE.md --------- # Notices for Eclipse Jakarta Dependency Injection @@ -4688,6 +4842,10 @@ Copyrights Copyright (C) 2009 The JSR-330 Expert Group +jakarta.validation:jakarta.validation-api +========================================= +Apache-2.0: License + org.apache.commons:commons-compress =================================== Apache 2.0 LICENSE @@ -4751,6 +4909,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, jseward@acm.org +org.apache.commons:commons-lang3 +================================ +Apache 2.0 License as above +NOTICE.txt +---------- +Apache Commons Lang +Copyright 2001-2024 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). org.eclipse.jgit:org.eclipse.jgit ================================= @@ -4819,7 +4987,6 @@ Copyright (C) 2011, 2012 IBM Corporation and others. and others org.reactivestreams:reactive-streams ==================================== - MIT-0: LICENSE ------- MIT No Attribution @@ -4840,7 +5007,6 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - org.slf4j:slf4j-api =================== LICENSE @@ -4886,7 +5052,36 @@ Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, Switzerland ================================================================================ -micronaut-cli +slf4j-api + +Copyright (c) 2004-2023 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +================================================================================ + +Jansi + +jansi (org.fusesource.jansi:jansi) +Copyright (C) 2009-2023 the original author(s). +-------------------------------------------- Apache License Version 2.0, January 2004 @@ -5089,510 +5284,528 @@ distributed under the License 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. +---------------------------------------------- +Fourth Party Dependencies +---------------------------------------------- +HawtJNI +Copyright (C) 2009-2011 FuseSource Corp. +Copyright (c) 2004, 2008 IBM Corporation and others. +This product includes software developed by FuseSource Corp. +http://fusesource.com +This product includes software developed at Progress Software Corporation and/or +its subsidiaries or affiliates. +This product includes software developed by IBM Corporation and others. -Copyright 2017-2024 original authors ------------------------------------- - +Apache License Version 2.0 +================================================================================ -LICENSES LIST -------------- -commons-codec:commons-codec -=========================== -Apache 2.0 LICENSE ------------ -Same as above listed license -NOTICE.txt ----------- -Apache Commons Codec -Copyright 2002-2023 The Apache Software Foundation +Picocli Shell JLine3 -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ -com.fasterxml.jackson.core:jackson-core -======================================= -Apache 2.0 License as above -Notice ------- -# Jackson JSON processor +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Jackson is a high-performance, Free/Open Source JSON processing library. -It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has -been in development since 2007. -It is currently developed by a community of developers. +1. Definitions. -## Copyright +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. -Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi) +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. -## Licensing +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. -Jackson 2.x core and extension components are licensed under Apache License 2.0 -To find the details that apply to this artifact see the accompanying LICENSE -file. +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. -## Credits +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. -A list of contributors may be found from CREDITS(-2.x) file, which is included -in some artifacts (usually source distributions); but is always available -from the source code management (SCM) system project uses. +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. -## FastDoubleParser +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). -jackson-core bundles a shaded copy of FastDoubleParser -. -That code is available under an MIT license - -under the following copyright. +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. -Copyright © 2023 Werner Randelshofer, Switzerland. MIT License. +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." -See FastDoubleParser-NOTICE for details of other source code included in -FastDoubleParser -and the licenses and copyrights that apply to that code. +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. ----------------------------- -FastDoubleParser License, Notice and its dependencies +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. -FastDoubleParser LICENSE ------------------------------- -MIT License +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. -Copyright (c) 2023 Werner Randelshofer, Switzerland. +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ----------------------------------- -FastDoubleParser NOTICE file -# FastDoubleParser +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and -This is a Java port of Daniel Lemire's fast_float project. -This project provides parsers for double, float, BigDecimal and BigInteger -values. +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. -## Copyright +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. -Copyright © 2023 Werner Randelshofer, Switzerland. +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. -## Licensing +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. -This code is licensed under MIT License. -https://github.com/wrandelshofer/FastDoubleParser/blob/522be16e145f43308c43b23094e31d5efcaa580e/LICENSE -(The file 'LICENSE' is included in the sources and classes Jar files that are -released by this project -- as is required by that license.) +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. -Some portions of the code have been derived from other projects. -All these projects require that we include a copyright notice, and some require -that we also include some text of their -license file. +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. -fast_double_parser, Copyright (c) 2022 Daniel Lemire. BSL License. -https://github.com/lemire/fast_double_parser -https://github.com/lemire/fast_double_parser/blob/07d9189a8fb815fe800cb15ca022e7a07093236e/LICENSE.BSL -(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files -that are released by this project -- as is required by that license.) +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. -fast_float, Copyright (c) 2021 The fast_float authors. MIT License. -https://github.com/fastfloat/fast_float -https://github.com/fastfloat/fast_float/blob/cc1e01e9eee74128e48d51488a6b1df4a767a810/LICENSE- -MIT -(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files -that are released by this project -- as is required by that license.) +END OF TERMS AND CONDITIONS -bigint, Copyright 2020 Tim Buktu. 2-clause BSD License. -https://github.com/tbuktu/bigint/tree/floatfft -https://github.com/tbuktu/bigint/blob/617c8cd8a7c5e4fb4d919c6a4d11e2586107f029/LICENSE -https://github.com/wrandelshofer/FastDoubleParser/blob/39e123b15b71f29a38a087d16a0bc620fc879aa6/bigint- -LICENSE -(We only use those portions of the bigint project that can be licensed under 2- -clause BSD License.) -(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files -that are released by this project -- as is required by that license.) ------- -Third-party license for FastDoubleParser +APPENDIX: How to apply the Apache License to your work. -fast_float, Copyright (c) 2021 The fast_float authors. MIT License. -https://github.com/fastfloat/fast_float -https://github.com/fastfloat/fast_float/blob/cc1e01e9eee74128e48d51488a6b1df4a767a810/LICENSE- -MIT +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "{}" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. -MIT License +Copyright {yyyy} {name of copyright owner} -Copyright (c) 2021 The fast_float authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +http://www.apache.org/licenses/LICENSE-2.0 -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Unless required by applicable law or agreed to in writing, software +distributed under the License 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. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------- -Third-party license for -bigint, Copyright 2020 Tim Buktu. 2-clause BSD License. -https://github.com/tbuktu/bigint/tree/floatfft -https://github.com/tbuktu/bigint/blob/617c8cd8a7c5e4fb4d919c6a4d11e2586107f029/LICENSE -https://github.com/wrandelshofer/FastDoubleParser/blob/39e123b15b71f29a38a087d16a0bc620fc879aa6/bigint- -LICENSE -(We only use those portions of the bigint project that can be licensed under 2- -clause BSD License.) +========================= +picocli Apache 2.0 license +========================= +JLine BSD License +Copyright (c) 2002-2018, the original author or authors. +All rights reserved. -2-clause BSD License +https://opensource.org/licenses/BSD-3-Clause -Copyright 2022 Tim Buktu +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with +the distribution. -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. +Neither the name of JLine nor the names of its contributors +may be used to endorse or promote products derived from this +software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------- -fast_double_parser LICENSE -Copyright (c) Daniel Lemire +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +================================================================================ -Boost Software License - Version 1.0 - August 17th, 2003 +micronaut-starter-core -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +1. Definitions. -com.fizzed:rocker-runtime -========================= -Apache-2.0: License -Copyrights ----------- -Copyright 2015 Fizzed Inc. -Copyright 2015 Fendler Consulting cc. +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. -com.googlecode.javaewah:JavaEWAH -================================ -Apache-2.0: LICENSE -Copyright 2009-2016, Daniel Lemire, Cliff Moon, David McIntosh, Robert Becho, -Google Inc., Veronika Zenz, Owen Kaser, Gregory Ssi-Yan-Kai, Rory Graves +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. -com.typesafe:config -=================== -Apache-2.0: License -Copyrights ----------- -Copyright (C) 2011-2012 Typesafe Inc. +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. -info.picocli:picocli-shell-jline3 -================================= -Apache-2.0: License -Copyrights ----------- -Copyright 2017 Robert 'Bobby' Zenz -Copyright 2017 Remko Popma -Copyright 2017 the original author or authors. +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. -info.picocli:picocli -==================== -Apache-2.0: LICENSE -------- -Same as above listed license -Copyrights ----------- -Copyright 2017 Robert 'Bobby' Zenz -Copyright 2017 Remko Popma -Copyright 2017 the original author or authors. +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). -io.github.java-diff-utils:java-diff-utils -========================================= -Apache-2.0: LICENSE -------- -Same as above listed license +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. -Copyrights ----------- -Copyright 2017 java-diff-utils. -Copyright (C) 2009 - 2017 java-diff-utils +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." -io.netty:netty-buffer -io.netty:netty-codec-http2 -io.netty:netty-codec-http -io.netty:netty-codec-socks -io.netty:netty-codec -io.netty:netty-common -io.netty:netty-handler-proxy -io.netty:netty-handler -io.netty:netty-resolver -io.netty:netty-transport-native-unix-common -io.netty:netty-transport -===================== -Apache-2.0: license -Notice ------- -Netty (io.netty:netty-*) -Copyright 2012,2021 The Netty Project -Copyright 2014 Twitter, Inc. -Copyright (c) 2011, Joe Walnes and contributors -Copyright (c) 2008-2009 Bjoern Hoehrmann -Copyright (c) 2004-2011 QOS.ch --------------------------------------------- +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. --------------------------------------------- +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. -The Netty Project -================= +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. -Please visit the Netty web site for more information: +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: -* https://netty.io/ +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and -Copyright 2014 The Netty Project +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and -The Netty Project licenses this file to you under the Apache License, -version 2.0 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at: +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and -https://www.apache.org/licenses/LICENSE-2.0 +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. -Unless required by applicable law or agreed to in writing, software -distributed under the License 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. +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. -Also, please refer to each LICENSE..txt file, which is located in -the 'license' directory of the distribution file, for the license terms of the -components that this product depends on. +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. -------------------------------------------------------------------------------- -This product contains the extensions to Java Collections Framework which has -been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene: +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. -* LICENSE: -* license/LICENSE.jsr166y.txt (Public Domain) -The person or persons who have associated work with this document (the -"Dedicator" or "Certifier") hereby either (a) certifies that, to the best of -his knowledge, the work of authorship identified is in the public domain of -the country from which the work is published, or (b) hereby dedicates whatever -copyright the dedicators holds in the work of authorship identified below (the -"Work") to the public domain. A certifier, moreover, dedicates any copyright -interest he may have in the associated work, and for these purposes, is -described as a "dedicator" below. +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. -A certifier has taken reasonable steps to verify the copyright status of this -work. Certifier recognizes that his good faith efforts may not shield him from -liability if in fact the work certified is not in the public domain. +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. -Dedicator makes this dedication for the benefit of the public at large and to -the detriment of the Dedicator's heirs and successors. Dedicator intends this -dedication to be an overt act of relinquishment in perpetuity of all present -and future rights under copyright law, whether vested or contingent, in the -Work. Dedicator understands that such relinquishment of all rights includes -the relinquishment of all rights to enforce (by lawsuit or otherwise) those -copyrights in the Work. +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. -Dedicator recognizes that, once placed in the public domain, the Work may be -freely reproduced, distributed, transmitted, used, modified, built upon, or -otherwise exploited by anyone for any purpose, commercial or non-commercial, -and in any way, including by methods that have not yet been invented or -conceived. -* HOMEPAGE: -* http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/ -* http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/ ------------------------------------------------------------------------------------ -This product contains a modified version of Robert Harder's Public Domain -Base64 Encoder and Decoder, which can be obtained at: +END OF TERMS AND CONDITIONS -* LICENSE: -* license/LICENSE.base64.txt (Public Domain) -The person or persons who have associated work with this document (the -"Dedicator" or "Certifier") hereby either (a) certifies that, to the best of -his knowledge, the work of authorship identified is in the public domain of -the country from which the work is published, or (b) hereby dedicates whatever -copyright the dedicators holds in the work of authorship identified below (the -"Work") to the public domain. A certifier, moreover, dedicates any copyright -interest he may have in the associated work, and for these purposes, is -described as a "dedicator" below. +APPENDIX: How to apply the Apache License to your work. -A certifier has taken reasonable steps to verify the copyright status of this -work. Certifier recognizes that his good faith efforts may not shield him from -liability if in fact the work certified is not in the public domain. +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "[]" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. -Dedicator makes this dedication for the benefit of the public at large and to -the detriment of the Dedicator's heirs and successors. Dedicator intends this -dedication to be an overt act of relinquishment in perpetuity of all present -and future rights under copyright law, whether vested or contingent, in the -Work. Dedicator understands that such relinquishment of all rights includes -the relinquishment of all rights to enforce (by lawsuit or otherwise) those -copyrights in the Work. +Copyright [yyyy] [name of copyright owner] -Dedicator recognizes that, once placed in the public domain, the Work may be -freely reproduced, distributed, transmitted, used, modified, built upon, or -otherwise exploited by anyone for any purpose, commercial or non-commercial, -and in any way, including by methods that have not yet been invented or -conceived. -* HOMEPAGE: -* http://iharder.sourceforge.net/current/java/base64/ -------------------------------------------------------------------------------------- -This product contains a modified portion of 'Webbit', an event based -WebSocket and HTTP server, which can be obtained at: +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -* LICENSE: -* license/LICENSE.webbit.txt (BSD License) -(BSD License: https://www.opensource.org/licenses/bsd-license) +http://www.apache.org/licenses/LICENSE-2.0 -Copyright (c) 2011, Joe Walnes, Aslak Hellesøy and contributors -All rights reserved. +Unless required by applicable law or agreed to in writing, software +distributed under the License 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. -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the -following conditions are met: +Copyright 2017-2024 original authors +------------------------------------ -* Redistributions of source code must retain the above -copyright notice, this list of conditions and the -following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other -materials provided with the distribution. +LICENSES LIST +------------- +com.fasterxml.jackson.core:jackson-core +======================================= +Apache-2.0: LICENSE +------- +Same as above listed license +Copyrights +---------- +Copyright 2018-2020 Raffaello Giulietti +Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi +---------------------------- +Jackson-core notice +# Jackson JSON processor -* Neither the name of the Webbit nor the names of -its contributors may be used to endorse or promote products -derived from this software without specific prior written -permission. +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. -* HOMEPAGE: -* https://github.com/joewalnes/webbit --------------------------------------------------------------------------------- -This product contains a modified portion of 'SLF4J', a simple logging -facade for Java, which can be obtained at: +## Copyright -* LICENSE: -* license/LICENSE.slf4j.txt (MIT License) -/* -* Copyright (c) 2004-2007 QOS.ch -* All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining -* a copy of this software and associated documentation files (the -* "Software"), to deal in the Software without restriction, including -* without limitation the rights to use, copy, modify, merge, publish, -* distribute, sublicense, and/or sell copies of the Software, and to -* permit persons to whom the Software is furnished to do so, subject to -* the following conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -* HOMEPAGE: -* https://www.slf4j.org/ ------------------------------------------------------------------------------------------------- -This product contains a modified portion of 'Apache Harmony', an open source -Java SE, which can be obtained at: +Copyright 2007-, Tatu Saloranta (tatu.saloranta@iki.fi) -* NOTICE: -* license/NOTICE.harmony.txt -Apache Harmony +## Licensing -Copyright 2006, 2010 The Apache Software Foundation. +Jackson 2.x core and extension components are licensed under Apache License 2.0 +To find the details that apply to this artifact see the accompanying LICENSE +file. -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). -* LICENSE: -* license/LICENSE.harmony.txt (Apache License 2.0) +## Credits -* HOMEPAGE: -* https://archive.apache.org/dist/harmony/ ------------------------------------------------------------------------------------------- -This product contains a modified portion of 'jbzip2', a Java bzip2 compression -and decompression library written by Matthew J. Francis. It can be obtained at: +A list of contributors may be found from CREDITS(-2.x) file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. -* LICENSE: -* license/LICENSE.jbzip2.txt (MIT License) -Copyright (c) 2010-2011 Matthew J. Francis and Contributors of the jbzip2 -Project +## FastDoubleParser + +jackson-core bundles a shaded copy of FastDoubleParser +. +That code is available under an MIT license + +under the following copyright. + +Copyright © 2023 Werner Randelshofer, Switzerland. MIT License. + +See FastDoubleParser-NOTICE for details of other source code included in +FastDoubleParser +and the licenses and copyrights that apply to that code. + +FastDoubleParser LICENSE +------------------------------ +MIT License + +Copyright (c) 2023 Werner Randelshofer, Switzerland. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -5601,351 +5814,415 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -* HOMEPAGE: -* https://code.google.com/p/jbzip2/ --------------------------------------------------------------------------------------------------------- -This product contains a modified portion of 'libdivsufsort', a C API library to -construct -the suffix array and the Burrows-Wheeler transformed string for any input string -of -a constant-size alphabet written by Yuta Mori. It can be obtained at: +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +---------------------------------- +FastDoubleParser NOTICE file +# FastDoubleParser -* LICENSE: -* license/LICENSE.libdivsufsort.txt (MIT License) -Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. +This is a Java port of Daniel Lemire's fast_float project. +This project provides parsers for double, float, BigDecimal and BigInteger +values. -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: +## Copyright -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. +Copyright © 2023 Werner Randelshofer, Switzerland. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -* HOMEPAGE: -* https://github.com/y-256/libdivsufsort -------------------------------------------------------------------------------------------------- -This product contains a modified portion of Nitsan Wakart's 'JCTools', Java -Concurrency Tools for the JVM, -which can be obtained at: +## Licensing -* LICENSE: -* license/LICENSE.jctools.txt (ASL2 License) -* HOMEPAGE: -* https://github.com/JCTools/JCTools ------------------------------------------------------------------------------------------------------ -This product optionally depends on 'JZlib', a re-implementation of zlib in -pure Java, which can be obtained at: +This code is licensed under MIT License. +https://github.com/wrandelshofer/FastDoubleParser/blob/522be16e145f43308c43b23094e31d5efcaa580e/LICENSE +(The file 'LICENSE' is included in the sources and classes Jar files that are +released by this project +- as is required by that license.) -* LICENSE: -* license/LICENSE.jzlib.txt (BSD style License) -Copyright (c) 2000,2001,2002,2003,2004 ymnk, JCraft,Inc. All rights reserved. +Some portions of the code have been derived from other projects. +All these projects require that we include a copyright notice, and some require +that we also include some text of their +license file. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +fast_double_parser, Copyright (c) 2022 Daniel Lemire. BSL License. +https://github.com/lemire/fast_double_parser +https://github.com/lemire/fast_double_parser/blob/07d9189a8fb815fe800cb15ca022e7a07093236e/LICENSE.BSL +(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files +that are released by this project +- as is required by that license.) -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. +fast_float, Copyright (c) 2021 The fast_float authors. MIT License. +https://github.com/fastfloat/fast_float +https://github.com/fastfloat/fast_float/blob/cc1e01e9eee74128e48d51488a6b1df4a767a810/LICENSE- +MIT +(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files +that are released by this project +- as is required by that license.) -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the distribution. +bigint, Copyright 2020 Tim Buktu. 2-clause BSD License. +https://github.com/tbuktu/bigint/tree/floatfft +https://github.com/tbuktu/bigint/blob/617c8cd8a7c5e4fb4d919c6a4d11e2586107f029/LICENSE +https://github.com/wrandelshofer/FastDoubleParser/blob/39e123b15b71f29a38a087d16a0bc620fc879aa6/bigint- +LICENSE +(We only use those portions of the bigint project that can be licensed under 2- +clause BSD License.) +(The file 'thirdparty-LICENSE' is included in the sources and classes Jar files +that are released by this project +- as is required by that license.) +------ +Third-party license for FastDoubleParser -3. The names of the authors may not be used to endorse or promote products -derived from this software without specific prior written permission. +fast_float, Copyright (c) 2021 The fast_float authors. MIT License. +https://github.com/fastfloat/fast_float +https://github.com/fastfloat/fast_float/blob/cc1e01e9eee74128e48d51488a6b1df4a767a810/LICENSE- +MIT -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, -INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* HOMEPAGE: -* http://www.jcraft.com/jzlib/ ----------------------------------------------------------------------------------------------------- -This product optionally depends on 'Compress-LZF', a Java library for encoding -and -decoding data in LZF format, written by Tatu Saloranta. It can be obtained at: +MIT License -* LICENSE: -* license/LICENSE.compress-lzf.txt (Apache License 2.0) -Copyright 2009-2010 Ning, Inc. +Copyright (c) 2021 The fast_float authors -Licensed under the Apache License, Version 2.0 (the "License"); you may not -use this file except in compliance with the License. You may obtain a copy of -the License at https://www.apache.org/licenses/LICENSE-2.0 +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -Unless required by applicable law or agreed to in writing, software -distributed under the License 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. -* HOMEPAGE: -* https://github.com/ning/compress ----------------------------------------------------------------------------------- -This product optionally depends on 'lz4', a LZ4 Java compression -and decompression library written by Adrien Grand. It can be obtained at: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -* LICENSE: -* license/LICENSE.lz4.txt (Apache License 2.0) -* HOMEPAGE: -* https://github.com/jpountz/lz4-java -------------------------------------------------------------------------------------- -This product optionally depends on 'lzma-java', a LZMA Java compression -and decompression library, which can be obtained at: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------ +Third-party license for +bigint, Copyright 2020 Tim Buktu. 2-clause BSD License. +https://github.com/tbuktu/bigint/tree/floatfft +https://github.com/tbuktu/bigint/blob/617c8cd8a7c5e4fb4d919c6a4d11e2586107f029/LICENSE +https://github.com/wrandelshofer/FastDoubleParser/blob/39e123b15b71f29a38a087d16a0bc620fc879aa6/bigint- +LICENSE +(We only use those portions of the bigint project that can be licensed under 2- +clause BSD License.) -* LICENSE: -* license/LICENSE.lzma-java.txt (Apache License 2.0) -* HOMEPAGE: -* https://github.com/jponge/lzma-java ------------------------------------------------------------------------------------------------------ -This product optionally depends on 'zstd-jni', a zstd-jni Java compression -and decompression library, which can be obtained at: +2-clause BSD License -* LICENSE: -* license/LICENSE.zstd-jni.txt (Apache License 2.0) -* HOMEPAGE: -* https://github.com/luben/zstd-jni +Copyright 2022 Tim Buktu ------------------------------------------------------------------------------------------------------ -This product contains a modified portion of 'jfastlz', a Java port of FastLZ -compression -and decompression library written by William Kinney. It can be obtained at: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -* LICENSE: -* license/LICENSE.jfastlz.txt (MIT License) -The MIT License +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. -Copyright (c) 2009 William Kinney +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +------------------------ +fast_double_parser LICENSE +Copyright (c) Daniel Lemire -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. +Boost Software License - Version 1.0 - August 17th, 2003 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -* HOMEPAGE: -* https://code.google.com/p/jfastlz/ -------------------------------------------------------------------------------------------------------- -This product contains a modified portion of and optionally depends on 'Protocol -Buffers', Google's data -interchange format, which can be obtained at: +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: -* LICENSE: -* license/LICENSE.protobuf.txt (New BSD License) -Protocol Buffers - Google's data interchange format -Copyright 2013 Google Inc. All rights reserved. -https://developers.google.com/protocol-buffers/ +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +com.fizzed:rocker-runtime +========================= +Apache-2.0: License +Copyrights +---------- +Copyright 2015 Fizzed Inc. +Copyright 2015 Fendler Consulting cc. -Code generated by the Protocol Buffer compiler is owned by the owner -of the input file used when generating it. This code is not -standalone and requires a support library to be linked with it. This -support library is itself covered by the above license. -* HOMEPAGE: -* https://github.com/google/protobuf ------------------------------------------------------------------------------------------------- -This product optionally depends on 'Bouncy Castle Crypto APIs' to generate -a temporary self-signed X.509 certificate when the JVM does not provide the -equivalent functionality. It can be obtained at: -* LICENSE: -* license/LICENSE.bouncycastle.txt (MIT License) -The MIT License (MIT) +com.googlecode.javaewah:JavaEWAH +================================ -Copyright (c) 2000 - 2013 The Legion of the Bouncy Castle Inc. -(https://www.bouncycastle.org) +Apache-2.0: LICENSE -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +com.typesafe:config +=================== -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Apache-2.0: License +Copyrights +---------- +Copyright (C) 2011-2012 Typesafe Inc. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -* HOMEPAGE: -* https://www.bouncycastle.org/ ------------------------------------------------------------------------------------------------------ -This product optionally depends on 'Snappy', a compression library produced -by Google Inc, which can be obtained at: -* LICENSE: -* license/LICENSE.snappy.txt (New BSD License) -Copyright 2011, Google Inc. -All rights reserved. +io.github.java-diff-utils:java-diff-utils +========================================= +Apache-2.0: LICENSE +------- +Same as above listed license +Copyrights +---------- +Copyright 2017 java-diff-utils. +Copyright (C) 2009 - 2017 java-diff-utils -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: -* Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. -* Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. +io.netty:netty-buffer +io.netty:netty-codec-http2 +io.netty:netty-codec-http +io.netty:netty-codec-socks +io.netty:netty-codec +io.netty:netty-common +io.netty:netty-handler-proxy +io.netty:netty-handler +io.netty:netty-resolver +io.netty:netty-transport-native-unix-common +io.netty:netty-transport +===================== -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* HOMEPAGE: -* https://github.com/google/snappy -------------------------------------------------------------------------------------------------------- -This product optionally depends on 'JBoss Marshalling', an alternative Java -serialization API, which can be obtained at: +Apache-2.0: License as above -* LICENSE: -* license/LICENSE.jboss-marshalling.txt (Apache License 2.0) -* HOMEPAGE: -* https://github.com/jboss-remoting/jboss-marshalling ------------------------------------------------------------------------------------------------------------- -This product optionally depends on 'Caliper', Google's micro- -benchmarking framework, which can be obtained at: +NOTICE +------ +Netty (io.netty:netty-*) +Copyright 2012,2021 The Netty Project +Copyright 2014 Twitter, Inc. +Copyright (c) 2011, Joe Walnes and contributors +Copyright (c) 2008-2009 Bjoern Hoehrmann +Copyright (c) 2004-2011 QOS.ch +-------------------------------------------- -* LICENSE: -* license/LICENSE.caliper.txt (Apache License 2.0) -* HOMEPAGE: -* https://github.com/google/caliper ---------------------------------------------------------------------------------------------------------- -This product optionally depends on 'Apache Commons Logging', a logging -framework, which can be obtained at: +-------------------------------------------- -* LICENSE: -* license/LICENSE.commons-logging.txt (Apache License 2.0) -* HOMEPAGE: -* https://commons.apache.org/logging/ ---------------------------------------------------------------------------------------------------- -This product optionally depends on 'Apache Log4J', a logging framework, which -can be obtained at: +The Netty Project +================= -* LICENSE: -* license/LICENSE.log4j.txt (Apache License 2.0) -* HOMEPAGE: -* https://logging.apache.org/log4j/ -------------------------------------------------------------------------------------------------- -This product optionally depends on 'Aalto XML', an ultra-high performance -non-blocking XML processor, which can be obtained at: +Please visit the Netty web site for more information: + +* https://netty.io/ + +Copyright 2014 The Netty Project + +The Netty Project licenses this file to you under the Apache License, +version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at: + +https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License 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. + +Also, please refer to each LICENSE..txt file, which is located in +the 'license' directory of the distribution file, for the license terms of the +components that this product depends on. + +------------------------------------------------------------------------------- +This product contains the extensions to Java Collections Framework which has +been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene: * LICENSE: -* license/LICENSE.aalto-xml.txt (Apache License 2.0) -This copy of Aalto XML processor is licensed under the -Apache (Software) License, version 2.0 ("the License"). -See the License for details about distribution rights, and the -specific rights regarding derivate works. +* license/LICENSE.jsr166y.txt (Public Domain) +The person or persons who have associated work with this document (the +"Dedicator" or "Certifier") hereby either (a) certifies that, to the best of +his knowledge, the work of authorship identified is in the public domain of +the country from which the work is published, or (b) hereby dedicates whatever +copyright the dedicators holds in the work of authorship identified below (the +"Work") to the public domain. A certifier, moreover, dedicates any copyright +interest he may have in the associated work, and for these purposes, is +described as a "dedicator" below. -You may obtain a copy of the License at: +A certifier has taken reasonable steps to verify the copyright status of this +work. Certifier recognizes that his good faith efforts may not shield him from +liability if in fact the work certified is not in the public domain. -https://www.apache.org/licenses/ +Dedicator makes this dedication for the benefit of the public at large and to +the detriment of the Dedicator's heirs and successors. Dedicator intends this +dedication to be an overt act of relinquishment in perpetuity of all present +and future rights under copyright law, whether vested or contingent, in the +Work. Dedicator understands that such relinquishment of all rights includes +the relinquishment of all rights to enforce (by lawsuit or otherwise) those +copyrights in the Work. -A copy is also included with both the the downloadable source code package -and jar that contains class bytecodes, as file "ASL 2.0". In both cases, -that file should be located next to this file: in source distribution -the location should be "release-notes/asl"; and in jar "META-INF/" +Dedicator recognizes that, once placed in the public domain, the Work may be +freely reproduced, distributed, transmitted, used, modified, built upon, or +otherwise exploited by anyone for any purpose, commercial or non-commercial, +and in any way, including by methods that have not yet been invented or +conceived. * HOMEPAGE: -* http://wiki.fasterxml.com/AaltoHome --------------------------------------------------------------------------------------------- -This product contains a modified version of 'HPACK', a Java implementation of -the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at: +* http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/ +* http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/ +----------------------------------------------------------------------------------- +This product contains a modified version of Robert Harder's Public Domain +Base64 Encoder and Decoder, which can be obtained at: * LICENSE: -* license/LICENSE.hpack.txt (Apache License 2.0) +* license/LICENSE.base64.txt (Public Domain) +The person or persons who have associated work with this document (the +"Dedicator" or "Certifier") hereby either (a) certifies that, to the best of +his knowledge, the work of authorship identified is in the public domain of +the country from which the work is published, or (b) hereby dedicates whatever +copyright the dedicators holds in the work of authorship identified below (the +"Work") to the public domain. A certifier, moreover, dedicates any copyright +interest he may have in the associated work, and for these purposes, is +described as a "dedicator" below. + +A certifier has taken reasonable steps to verify the copyright status of this +work. Certifier recognizes that his good faith efforts may not shield him from +liability if in fact the work certified is not in the public domain. + +Dedicator makes this dedication for the benefit of the public at large and to +the detriment of the Dedicator's heirs and successors. Dedicator intends this +dedication to be an overt act of relinquishment in perpetuity of all present +and future rights under copyright law, whether vested or contingent, in the +Work. Dedicator understands that such relinquishment of all rights includes +the relinquishment of all rights to enforce (by lawsuit or otherwise) those +copyrights in the Work. + +Dedicator recognizes that, once placed in the public domain, the Work may be +freely reproduced, distributed, transmitted, used, modified, built upon, or +otherwise exploited by anyone for any purpose, commercial or non-commercial, +and in any way, including by methods that have not yet been invented or +conceived. * HOMEPAGE: -* https://github.com/twitter/hpack --------------------------------------------------------------------------------------------------- -This product contains a modified version of 'HPACK', a Java implementation of -the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at: +* http://iharder.sourceforge.net/current/java/base64/ +------------------------------------------------------------------------------------- +This product contains a modified portion of 'Webbit', an event based +WebSocket and HTTP server, which can be obtained at: * LICENSE: -* license/LICENSE.hyper-hpack.txt (MIT License) -The MIT License (MIT) +* license/LICENSE.webbit.txt (BSD License) +(BSD License: https://www.opensource.org/licenses/bsd-license) -Copyright (c) 2014 Cory Benfield +Copyright (c) 2011, Joe Walnes, Aslak Hellesøy and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above +copyright notice, this list of conditions and the +following disclaimer. + +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other +materials provided with the distribution. + +* Neither the name of the Webbit nor the names of +its contributors may be used to endorse or promote products +derived from this software without specific prior written +permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +* HOMEPAGE: +* https://github.com/joewalnes/webbit +-------------------------------------------------------------------------------- +This product contains a modified portion of 'SLF4J', a simple logging +facade for Java, which can be obtained at: + +* LICENSE: +* license/LICENSE.slf4j.txt (MIT License) +/* +* Copyright (c) 2004-2007 QOS.ch +* All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +* HOMEPAGE: +* https://www.slf4j.org/ +------------------------------------------------------------------------------------------------ +This product contains a modified portion of 'Apache Harmony', an open source +Java SE, which can be obtained at: + +* NOTICE: +* license/NOTICE.harmony.txt +Apache Harmony + +Copyright 2006, 2010 The Apache Software Foundation. + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). +* LICENSE: +* license/LICENSE.harmony.txt (Apache License 2.0) + +* HOMEPAGE: +* https://archive.apache.org/dist/harmony/ +------------------------------------------------------------------------------------------ +This product contains a modified portion of 'jbzip2', a Java bzip2 compression +and decompression library written by Matthew J. Francis. It can be obtained at: + +* LICENSE: +* license/LICENSE.jbzip2.txt (MIT License) +Copyright (c) 2010-2011 Matthew J. Francis and Contributors of the jbzip2 +Project Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -5965,1423 +6242,1408 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * HOMEPAGE: -* https://github.com/python-hyper/hpack/ +* https://code.google.com/p/jbzip2/ -------------------------------------------------------------------------------------------------------- -This product contains a modified version of 'HPACK', a Java implementation of -the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained -at: +This product contains a modified portion of 'libdivsufsort', a C API library to +construct +the suffix array and the Burrows-Wheeler transformed string for any input string +of +a constant-size alphabet written by Yuta Mori. It can be obtained at: * LICENSE: -* license/LICENSE.nghttp2-hpack.txt (MIT License) -The MIT License - -Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa -Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors +* license/LICENSE.libdivsufsort.txt (MIT License) +Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. * HOMEPAGE: -* https://github.com/nghttp2/nghttp2/ ------------------------------------------------------------------------------------------------------- -This product contains a modified portion of 'Apache Commons Lang', a Java -library -provides utilities for the java.lang API, which can be obtained at: - +* https://github.com/y-256/libdivsufsort +------------------------------------------------------------------------------------------------- +This product contains a modified portion of Nitsan Wakart's 'JCTools', Java +Concurrency Tools for the JVM, +which can be obtained at: + * LICENSE: -* license/LICENSE.commons-lang.txt (Apache License 2.0) +* license/LICENSE.jctools.txt (ASL2 License) * HOMEPAGE: -* https://commons.apache.org/proper/commons-lang/ - ------------------------------------------------------------------------------------------------------------ -This product contains the Maven wrapper scripts from 'Maven Wrapper', that -provides an easy way to ensure a user has everything necessary to run the Maven -build. +* https://github.com/JCTools/JCTools +----------------------------------------------------------------------------------------------------- +This product optionally depends on 'JZlib', a re-implementation of zlib in +pure Java, which can be obtained at: * LICENSE: -* license/LICENSE.mvn-wrapper.txt (Apache License 2.0) +* license/LICENSE.jzlib.txt (BSD style License) +Copyright (c) 2000,2001,2002,2003,2004 ymnk, JCraft,Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in +the documentation and/or other materials provided with the distribution. + +3. The names of the authors may not be used to endorse or promote products +derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, +INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * HOMEPAGE: -* https://github.com/takari/maven-wrapper ------------------------------------------------------------------------------------------------------------- -This product contains the dnsinfo.h header file, that provides a way to retrieve -the system DNS configuration on MacOS. -This private header is also used by Apple's open source -mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/). +* http://www.jcraft.com/jzlib/ +---------------------------------------------------------------------------------------------------- +This product optionally depends on 'Compress-LZF', a Java library for encoding +and +decoding data in LZF format, written by Tatu Saloranta. It can be obtained at: * LICENSE: -* license/LICENSE.dnsinfo.txt (Apple Public Source License 2.0) -/* -* Copyright (c) 2004-2006, 2008, 2009, 2011 Apple Inc. All rights reserved. -* -* @APPLE_LICENSE_HEADER_START@ -* -* This file contains Original Code and/or Modifications of Original Code -* as defined in and that are subject to the Apple Public Source License -* Version 2.0 (the 'License'). You may not use this file except in -* compliance with the License. Please obtain a copy of the License at -* https://www.opensource.apple.com/apsl/ and read it before using this -* file. -* -* The Original Code and all software distributed under the License are -* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -* Please see the License for the specific language governing rights and -* limitations under the License. -* -* @APPLE_LICENSE_HEADER_END@ -*/ +* license/LICENSE.compress-lzf.txt (Apache License 2.0) +Copyright 2009-2010 Ning, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License 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. * HOMEPAGE: -* https://www.opensource.apple.com/source/configd/configd- -453.19/dnsinfo/dnsinfo.h ---------------------------------------------------------------------------------------------------------------- -This product optionally depends on 'Brotli4j', Brotli compression and -decompression for Java., which can be obtained at: +* https://github.com/ning/compress +---------------------------------------------------------------------------------- +This product optionally depends on 'lz4', a LZ4 Java compression +and decompression library written by Adrien Grand. It can be obtained at: * LICENSE: -* license/LICENSE.brotli4j.txt (Apache License 2.0) +* license/LICENSE.lz4.txt (Apache License 2.0) * HOMEPAGE: -* https://github.com/hyperxpro/Brotli4j +* https://github.com/jpountz/lz4-java +------------------------------------------------------------------------------------- +This product optionally depends on 'lzma-java', a LZMA Java compression +and decompression library, which can be obtained at: -Copyrights ----------- -Copyright 2014 The Netty Project +* LICENSE: +* license/LICENSE.lzma-java.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/jponge/lzma-java +----------------------------------------------------------------------------------------------------- +This product optionally depends on 'zstd-jni', a zstd-jni Java compression +and decompression library, which can be obtained at: +* LICENSE: +* license/LICENSE.zstd-jni.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/luben/zstd-jni -io.projectreactor:reactor-core -============================== -Apache-2.0: LICENSE -------- -Same as above listed license -Copyrights ----------- -Copyright (c) 2019-2021 VMware Inc. or its affiliates, All Rights Reserved. -Copyright 2002-2017 the original author or authors. +----------------------------------------------------------------------------------------------------- +This product contains a modified portion of 'jfastlz', a Java port of FastLZ +compression +and decompression library written by William Kinney. It can be obtained at: +* LICENSE: +* license/LICENSE.jfastlz.txt (MIT License) +The MIT License -jakarta.annotation:jakarta.annotation-api -========================================= -LICENSE ----------- -# Eclipse Public License - v 2.0 +Copyright (c) 2009 William Kinney -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE -PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION -OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: -1. DEFINITIONS +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -"Contribution" means: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +* HOMEPAGE: +* https://code.google.com/p/jfastlz/ +------------------------------------------------------------------------------------------------------- +This product contains a modified portion of and optionally depends on 'Protocol +Buffers', Google's data +interchange format, which can be obtained at: -a) in the case of the initial Contributor, the initial content -Distributed under this Agreement, and +* LICENSE: +* license/LICENSE.protobuf.txt (New BSD License) +Protocol Buffers - Google's data interchange format +Copyright 2013 Google Inc. All rights reserved. +https://developers.google.com/protocol-buffers/ -b) in the case of each subsequent Contributor: -i) changes to the Program, and -ii) additions to the Program; -where such changes and/or additions to the Program originate from -and are Distributed by that particular Contributor. A Contribution -"originates" from a Contributor if it was added to the Program by -such Contributor itself or anyone acting on such Contributor's behalf. -Contributions do not include changes or additions to the Program that -are not Modified Works. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -"Contributor" means any person or entity that Distributes the Program. +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -"Licensed Patents" mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -"Program" means the Contributions Distributed in accordance with this -Agreement. +Code generated by the Protocol Buffer compiler is owned by the owner +of the input file used when generating it. This code is not +standalone and requires a support library to be linked with it. This +support library is itself covered by the above license. +* HOMEPAGE: +* https://github.com/google/protobuf +------------------------------------------------------------------------------------------------ +This product optionally depends on 'Bouncy Castle Crypto APIs' to generate +a temporary self-signed X.509 certificate when the JVM does not provide the +equivalent functionality. It can be obtained at: -"Recipient" means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. +* LICENSE: +* license/LICENSE.bouncycastle.txt (MIT License) +The MIT License (MIT) -"Derivative Works" shall mean any work, whether in Source Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. +Copyright (c) 2000 - 2013 The Legion of the Bouncy Castle Inc. +(https://www.bouncycastle.org) -"Modified Works" shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified Works thereof. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -"Distribute" means the acts of a) distributing or b) making available -in any manner that enables the transfer of a copy. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -"Source Code" means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. - -"Secondary License" means either the GNU General Public License, -Version 2.0, or any later versions of that license, including any -exceptions or additional permissions as identified by the initial -Contributor. - -2. GRANT OF RIGHTS - -a) Subject to the terms of this Agreement, each Contributor hereby -grants Recipient a non-exclusive, worldwide, royalty-free copyright -license to reproduce, prepare Derivative Works of, publicly display, -publicly perform, Distribute and sublicense the Contribution of such -Contributor, if any, and such Derivative Works. - -b) Subject to the terms of this Agreement, each Contributor hereby -grants Recipient a non-exclusive, worldwide, royalty-free patent -license under Licensed Patents to make, use, sell, offer to sell, -import and otherwise transfer the Contribution of such Contributor, -if any, in Source Code or other form. This patent license shall -apply to the combination of the Contribution and the Program if, at -the time the Contribution is added by the Contributor, such addition -of the Contribution causes such combination to be covered by the -Licensed Patents. The patent license shall not apply to any other -combinations which include the Contribution. No hardware per se is -licensed hereunder. - -c) Recipient understands that although each Contributor grants the -licenses to its Contributions set forth herein, no assurances are -provided by any Contributor that the Program does not infringe the -patent or other intellectual property rights of any other entity. -Each Contributor disclaims any liability to Recipient for claims -brought by any other entity based on infringement of intellectual -property rights or otherwise. As a condition to exercising the -rights and licenses granted hereunder, each Recipient hereby -assumes sole responsibility to secure any other intellectual -property rights needed, if any. For example, if a third party -patent license is required to allow Recipient to Distribute the -Program, it is Recipient's responsibility to acquire that license -before distributing the Program. - -d) Each Contributor represents that to its knowledge it has -sufficient copyright rights in its Contribution, if any, to grant -the copyright license set forth in this Agreement. - -e) Notwithstanding the terms of any Secondary License, no -Contributor makes additional grants to any Recipient (other than -those set forth in this Agreement) as a result of such Recipient's -receipt of the Program under the terms of a Secondary License -(if permitted under the terms of Section 3). - -3. REQUIREMENTS - -3.1 If a Contributor Distributes the Program in any form, then: - -a) the Program must also be made available as Source Code, in -accordance with section 3.2, and the Contributor must accompany -the Program with a statement that the Source Code for the Program -is available under this Agreement, and informs Recipients how to -obtain it in a reasonable manner on or through a medium customarily -used for software exchange; and - -b) the Contributor may Distribute the Program under a license -different than this Agreement, provided that such license: -i) effectively disclaims on behalf of all other Contributors all -warranties and conditions, express and implied, including -warranties or conditions of title and non-infringement, and -implied warranties or conditions of merchantability and fitness -for a particular purpose; - -ii) effectively excludes on behalf of all other Contributors all -liability for damages, including direct, indirect, special, -incidental and consequential damages, such as lost profits; - -iii) does not attempt to limit or alter the recipients' rights -in the Source Code under section 3.2; and - -iv) requires any subsequent distribution of the Program by any -party to be under a license that satisfies the requirements -of this section 3. - -3.2 When the Program is Distributed as Source Code: - -a) it must be made available under this Agreement, or if the -Program (i) is combined with other material in a separate file or -files made available under a Secondary License, and (ii) the initial -Contributor attached to the Source Code the notice described in -Exhibit A of this Agreement, then the Program may be made available -under the terms of such Secondary Licenses, and - -b) a copy of this Agreement must be included with each copy of -the Program. - -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability ("notices") contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, -the Contributor who includes the Program in a commercial product -offering should do so in a manner which does not create potential -liability for other Contributors. Therefore, if a Contributor includes -the Program in a commercial product offering, such Contributor -("Commercial Contributor") hereby agrees to defend and indemnify every -other Contributor ("Indemnified Contributor") against any losses, -damages and costs (collectively "Losses") arising from claims, lawsuits -and other legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the Program -in a commercial product offering. The obligations in this section do not -apply to any claims or Losses relating to any actual or alleged -intellectual property infringement. In order to qualify, an Indemnified -Contributor must: a) promptly notify the Commercial Contributor in -writing of such claim, and b) allow the Commercial Contributor to control, -and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may -participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those performance -claims and warranties, and if a court requires any other Contributor to -pay any damages as a result, the Commercial Contributor must pay -those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" -BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF -TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs -or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further -action by the parties hereto, such provision shall be reformed to the -minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the -Program itself (excluding combinations of the Program with other software -or hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it -fails to comply with any of the material terms or conditions of this -Agreement and does not cure such failure in a reasonable period of -time after becoming aware of such noncompliance. If all Recipient's -rights under this Agreement terminate, Recipient agrees to cease use -and distribution of the Program as soon as reasonably practicable. -However, Recipient's obligations under this Agreement and any licenses -granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and -may only be modified in the following manner. The Agreement Steward -reserves the right to publish new versions (including revisions) of -this Agreement from time to time. No one other than the Agreement -Steward has the right to modify this Agreement. The Eclipse Foundation -is the initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is published, -Contributor may elect to Distribute the Program (including its -Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -Exhibit A - Form of Secondary Licenses Notice - -"This Source Code may also be made available under the following -Secondary Licenses when the conditions for such availability set forth -in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), -version(s), and exceptions or additional permissions here}." - -Simply including a copy of this Agreement, including this Exhibit A -is not sufficient to license the Source Code under Secondary Licenses. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to -look for such a notice. - -You may add additional accurate notices of copyright ownership. - ---- +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +* HOMEPAGE: +* https://www.bouncycastle.org/ +----------------------------------------------------------------------------------------------------- +This product optionally depends on 'Snappy', a compression library produced +by Google Inc, which can be obtained at: -## The GNU General Public License (GPL) Version 2, June 1991 +* LICENSE: +* license/LICENSE.snappy.txt (New BSD License) +Copyright 2011, Google Inc. +All rights reserved. -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor -Boston, MA 02110-1335 -USA +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -Preamble +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* HOMEPAGE: +* https://github.com/google/snappy +------------------------------------------------------------------------------------------------------- +This product optionally depends on 'JBoss Marshalling', an alternative Java +serialization API, which can be obtained at: -The licenses for most software are designed to take away your freedom to -share and change it. By contrast, the GNU General Public License is -intended to guarantee your freedom to share and change free software--to -make sure the software is free for all its users. This General Public -License applies to most of the Free Software Foundation's software and -to any other program whose authors commit to using it. (Some other Free -Software Foundation software is covered by the GNU Library General -Public License instead.) You can apply it to your programs, too. +* LICENSE: +* license/LICENSE.jboss-marshalling.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/jboss-remoting/jboss-marshalling +------------------------------------------------------------------------------------------------------------ +This product optionally depends on 'Caliper', Google's micro- +benchmarking framework, which can be obtained at: -When we speak of free software, we are referring to freedom, not price. -Our General Public Licenses are designed to make sure that you have the -freedom to distribute copies of free software (and charge for this -service if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs; and that you know you can do these things. +* LICENSE: +* license/LICENSE.caliper.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/google/caliper +--------------------------------------------------------------------------------------------------------- +This product optionally depends on 'Apache Commons Logging', a logging +framework, which can be obtained at: -To protect your rights, we need to make restrictions that forbid anyone -to deny you these rights or to ask you to surrender the rights. These -restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. +* LICENSE: +* license/LICENSE.commons-logging.txt (Apache License 2.0) +* HOMEPAGE: +* https://commons.apache.org/logging/ +--------------------------------------------------------------------------------------------------- +This product optionally depends on 'Apache Log4J', a logging framework, which +can be obtained at: -For example, if you distribute copies of such a program, whether gratis -or for a fee, you must give the recipients all the rights that you have. -You must make sure that they, too, receive or can get the source code. -And you must show them these terms so they know their rights. +* LICENSE: +* license/LICENSE.log4j.txt (Apache License 2.0) +* HOMEPAGE: +* https://logging.apache.org/log4j/ +------------------------------------------------------------------------------------------------- +This product optionally depends on 'Aalto XML', an ultra-high performance +non-blocking XML processor, which can be obtained at: -We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. +* LICENSE: +* license/LICENSE.aalto-xml.txt (Apache License 2.0) +This copy of Aalto XML processor is licensed under the +Apache (Software) License, version 2.0 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. -Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. +You may obtain a copy of the License at: -Finally, any free program is threatened constantly by software patents. -We wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program -proprietary. To prevent this, we have made it clear that any patent must -be licensed for everyone's free use or not licensed at all. +https://www.apache.org/licenses/ -The precise terms and conditions for copying, distribution and -modification follow. +A copy is also included with both the the downloadable source code package +and jar that contains class bytecodes, as file "ASL 2.0". In both cases, +that file should be located next to this file: in source distribution +the location should be "release-notes/asl"; and in jar "META-INF/" +* HOMEPAGE: +* http://wiki.fasterxml.com/AaltoHome +-------------------------------------------------------------------------------------------- +This product contains a modified version of 'HPACK', a Java implementation of +the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at: -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +* LICENSE: +* license/LICENSE.hpack.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/twitter/hpack +-------------------------------------------------------------------------------------------------- +This product contains a modified version of 'HPACK', a Java implementation of +the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at: -0. This License applies to any program or other work which contains a -notice placed by the copyright holder saying it may be distributed under -the terms of this General Public License. The "Program", below, refers -to any such program or work, and a "work based on the Program" means -either the Program or any derivative work under copyright law: that is -to say, a work containing the Program or a portion of it, either -verbatim or with modifications and/or translated into another language. -(Hereinafter, translation is included without limitation in the term -"modification".) Each licensee is addressed as "you". +* LICENSE: +* license/LICENSE.hyper-hpack.txt (MIT License) +The MIT License (MIT) -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of running -the Program is not restricted, and the output from the Program is -covered only if its contents constitute a work based on the Program -(independent of having been made by running the Program). Whether that -is true depends on what the Program does. +Copyright (c) 2014 Cory Benfield -1. You may copy and distribute verbatim copies of the Program's source -code as you receive it, in any medium, provided that you conspicuously -and appropriately publish on each copy an appropriate copyright notice -and disclaimer of warranty; keep intact all the notices that refer to -this License and to the absence of any warranty; and give any other -recipients of the Program a copy of this License along with the Program. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -2. You may modify your copy or copies of the Program or any portion of -it, thus forming a work based on the Program, and copy and distribute -such modifications or work under the terms of Section 1 above, provided -that you also meet all of these conditions: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +* HOMEPAGE: +* https://github.com/python-hyper/hpack/ +-------------------------------------------------------------------------------------------------------- +This product contains a modified version of 'HPACK', a Java implementation of +the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained +at: -a) You must cause the modified files to carry prominent notices -stating that you changed the files and the date of any change. +* LICENSE: +* license/LICENSE.nghttp2-hpack.txt (MIT License) +The MIT License -b) You must cause any work that you distribute or publish, that in -whole or in part contains or is derived from the Program or any part -thereof, to be licensed as a whole at no charge to all third parties -under the terms of this License. +Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa +Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors -c) If the modified program normally reads commands interactively -when run, you must cause it, when started running for such -interactive use in the most ordinary way, to print or display an -announcement including an appropriate copyright notice and a notice -that there is no warranty (or else, saying that you provide a -warranty) and that users may redistribute the program under these -conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not -normally print such an announcement, your work based on the Program -is not required to print an announcement.) +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, and -can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based on -the Program, the distribution of the whole must be on the terms of this -License, whose permissions for other licensees extend to the entire -whole, and thus to each and every part regardless of who wrote it. +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* HOMEPAGE: +* https://github.com/nghttp2/nghttp2/ +------------------------------------------------------------------------------------------------------ +This product contains a modified portion of 'Apache Commons Lang', a Java +library +provides utilities for the java.lang API, which can be obtained at: -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of a -storage or distribution medium does not bring the other work under the -scope of this License. +* LICENSE: +* license/LICENSE.commons-lang.txt (Apache License 2.0) +* HOMEPAGE: +* https://commons.apache.org/proper/commons-lang/ -3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: +----------------------------------------------------------------------------------------------------------- +This product contains the Maven wrapper scripts from 'Maven Wrapper', that +provides an easy way to ensure a user has everything necessary to run the Maven +build. -a) Accompany it with the complete corresponding machine-readable -source code, which must be distributed under the terms of Sections 1 -and 2 above on a medium customarily used for software interchange; or, +* LICENSE: +* license/LICENSE.mvn-wrapper.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/takari/maven-wrapper +------------------------------------------------------------------------------------------------------------ +This product contains the dnsinfo.h header file, that provides a way to retrieve +the system DNS configuration on MacOS. +This private header is also used by Apple's open source +mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/). -b) Accompany it with a written offer, valid for at least three -years, to give any third party, for a charge no more than your cost -of physically performing source distribution, a complete -machine-readable copy of the corresponding source code, to be -distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange; or, +* LICENSE: +* license/LICENSE.dnsinfo.txt (Apple Public Source License 2.0) +/* +* Copyright (c) 2004-2006, 2008, 2009, 2011 Apple Inc. All rights reserved. +* +* @APPLE_LICENSE_HEADER_START@ +* +* This file contains Original Code and/or Modifications of Original Code +* as defined in and that are subject to the Apple Public Source License +* Version 2.0 (the 'License'). You may not use this file except in +* compliance with the License. Please obtain a copy of the License at +* https://www.opensource.apple.com/apsl/ and read it before using this +* file. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, +* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. +* Please see the License for the specific language governing rights and +* limitations under the License. +* +* @APPLE_LICENSE_HEADER_END@ +*/ +* HOMEPAGE: +* https://www.opensource.apple.com/source/configd/configd- +453.19/dnsinfo/dnsinfo.h +--------------------------------------------------------------------------------------------------------------- +This product optionally depends on 'Brotli4j', Brotli compression and +decompression for Java., which can be obtained at: -c) Accompany it with the information you received as to the offer to -distribute corresponding source code. (This alternative is allowed -only for noncommercial distribution and only if you received the -program in object code or executable form with such an offer, in -accord with Subsection b above.) +* LICENSE: +* license/LICENSE.brotli4j.txt (Apache License 2.0) +* HOMEPAGE: +* https://github.com/hyperxpro/Brotli4j -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source code -means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to control -compilation and installation of the executable. However, as a special -exception, the source code distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies the -executable. +Copyrights +---------- +Copyright 2014 The Netty Project -If distribution of executable or object code is made by offering access -to copy from a designated place, then offering equivalent access to copy -the source code from the same place counts as distribution of the source -code, even though third parties are not compelled to copy the source -along with the object code. -4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt otherwise -to copy, modify, sublicense or distribute the Program is void, and will -automatically terminate your rights under this License. However, parties -who have received copies, or rights, from you under this License will -not have their licenses terminated so long as such parties remain in -full compliance. +io.projectreactor:reactor-core +============================== -5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and all -its terms and conditions for copying, distributing or modifying the -Program or works based on it. +Apache-2.0: LICENSE +------- +Same as above listed license +Copyrights +---------- +Copyright (c) 2019-2021 VMware Inc. or its affiliates, All Rights Reserved. +Copyright 2002-2017 the original author or authors. -6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further restrictions -on the recipients' exercise of the rights granted herein. You are not -responsible for enforcing compliance by third parties to this License. -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot distribute -so as to satisfy simultaneously your obligations under this License and -any other pertinent obligations, then as a consequence you may not -distribute the Program at all. For example, if a patent license would -not permit royalty-free redistribution of the Program by all those who -receive copies directly or indirectly through you, then the only way you -could satisfy both it and this License would be to refrain entirely from -distribution of the Program. +jakarta.annotation:jakarta.annotation-api +========================================= +LICENSE +---------- +# Eclipse Public License - v 2.0 -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION +OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is implemented -by public license practices. Many people have made generous -contributions to the wide range of software distributed through that -system in reliance on consistent application of that system; it is up to -the author/donor to decide if he or she is willing to distribute -software through any other system and a licensee cannot impose that choice. +1. DEFINITIONS -This section is intended to make thoroughly clear what is believed to be -a consequence of the rest of this License. +"Contribution" means: -8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License may -add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among countries -not thus excluded. In such case, this License incorporates the -limitation as if written in the body of this License. +a) in the case of the initial Contributor, the initial content +Distributed under this Agreement, and -9. The Free Software Foundation may publish revised and/or new -versions of the General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. +b) in the case of each subsequent Contributor: +i) changes to the Program, and +ii) additions to the Program; +where such changes and/or additions to the Program originate from +and are Distributed by that particular Contributor. A Contribution +"originates" from a Contributor if it was added to the Program by +such Contributor itself or anyone acting on such Contributor's behalf. +Contributions do not include changes or additions to the Program that +are not Modified Works. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Program does not specify a version -number of this License, you may choose any version ever published by the -Free Software Foundation. +"Contributor" means any person or entity that Distributes the Program. -10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the -author to ask for permission. For software which is copyrighted by the -Free Software Foundation, write to the Free Software Foundation; we -sometimes make exceptions for this. Our decision will be guided by the -two goals of preserving the free status of all derivatives of our free -software and of promoting the sharing and reuse of software generally. +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. -NO WARRANTY +"Program" means the Contributions Distributed in accordance with this +Agreement. -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE -ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH -YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR -DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL -DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED -INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF -THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR -OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. -END OF TERMS AND CONDITIONS +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. -How to Apply These Terms to Your New Programs +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. -If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. -To do so, attach the following notices to the program. It is safest to -attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. -One line to give the program's name and a brief idea of what it does. -Copyright (C) +2. GRANT OF RIGHTS -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. +a) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free copyright +license to reproduce, prepare Derivative Works of, publicly display, +publicly perform, Distribute and sublicense the Contribution of such +Contributor, if any, and such Derivative Works. -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. +b) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free patent +license under Licensed Patents to make, use, sell, offer to sell, +import and otherwise transfer the Contribution of such Contributor, +if any, in Source Code or other form. This patent license shall +apply to the combination of the Contribution and the Program if, at +the time the Contribution is added by the Contributor, such addition +of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other +combinations which include the Contribution. No hardware per se is +licensed hereunder. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA +c) Recipient understands that although each Contributor grants the +licenses to its Contributions set forth herein, no assurances are +provided by any Contributor that the Program does not infringe the +patent or other intellectual property rights of any other entity. +Each Contributor disclaims any liability to Recipient for claims +brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby +assumes sole responsibility to secure any other intellectual +property rights needed, if any. For example, if a third party +patent license is required to allow Recipient to Distribute the +Program, it is Recipient's responsibility to acquire that license +before distributing the Program. -Also add information on how to contact you by electronic and paper mail. +d) Each Contributor represents that to its knowledge it has +sufficient copyright rights in its Contribution, if any, to grant +the copyright license set forth in this Agreement. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: +e) Notwithstanding the terms of any Secondary License, no +Contributor makes additional grants to any Recipient (other than +those set forth in this Agreement) as a result of such Recipient's +receipt of the Program under the terms of a Secondary License +(if permitted under the terms of Section 3). -Gnomovision version 69, Copyright (C) year name of author -Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type -`show w'. This is free software, and you are welcome to redistribute -it under certain conditions; type `show c' for details. +3. REQUIREMENTS -The hypothetical commands `show w' and `show c' should show the -appropriate parts of the General Public License. Of course, the commands -you use may be called something other than `show w' and `show c'; they -could even be mouse-clicks or menu items--whatever suits your program. +3.1 If a Contributor Distributes the Program in any form, then: -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: +a) the Program must also be made available as Source Code, in +accordance with section 3.2, and the Contributor must accompany +the Program with a statement that the Source Code for the Program +is available under this Agreement, and informs Recipients how to +obtain it in a reasonable manner on or through a medium customarily +used for software exchange; and -Yoyodyne, Inc., hereby disclaims all copyright interest in the -program `Gnomovision' (which makes passes at compilers) written by -James Hacker. +b) the Contributor may Distribute the Program under a license +different than this Agreement, provided that such license: +i) effectively disclaims on behalf of all other Contributors all +warranties and conditions, express and implied, including +warranties or conditions of title and non-infringement, and +implied warranties or conditions of merchantability and fitness +for a particular purpose; -signature of Ty Coon, 1 April 1989 -Ty Coon, President of Vice +ii) effectively excludes on behalf of all other Contributors all +liability for damages, including direct, indirect, special, +incidental and consequential damages, such as lost profits; -This General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications -with the library. If this is what you want to do, use the GNU Library -General Public License instead of this License. +iii) does not attempt to limit or alter the recipients' rights +in the Source Code under section 3.2; and ---- +iv) requires any subsequent distribution of the Program by any +party to be under a license that satisfies the requirements +of this section 3. -## CLASSPATH EXCEPTION +3.2 When the Program is Distributed as Source Code: -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License version 2 cover the whole -combination. +a) it must be made available under this Agreement, or if the +Program (i) is combined with other material in a separate file or +files made available under a Secondary License, and (ii) the initial +Contributor attached to the Source Code the notice described in +Exhibit A of this Agreement, then the Program may be made available +under the terms of such Secondary Licenses, and -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from or -based on this library. If you modify this library, you may extend this -exception to your version of the library, but you are not obligated to -do so. If you do not wish to do so, delete this exception statement -from your version. +b) a copy of this Agreement must be included with each copy of +the Program. -NOTICE.md ---------- -# Notices for Jakarta Annotations +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. -This content is produced and maintained by the Jakarta Annotations project. +4. COMMERCIAL DISTRIBUTION -* Project home: https://projects.eclipse.org/projects/ee4j.ca +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. -## Trademarks +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. -Jakarta Annotations is a trademark of the Eclipse Foundation. +5. NO WARRANTY -## Declared Project Licenses +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. -This program and the accompanying materials are made available under the terms -of the Eclipse Public License v. 2.0 which is available at -http://www.eclipse.org/legal/epl-2.0. This Source Code may also be made -available under the following Secondary Licenses when the conditions for such -availability set forth in the Eclipse Public License v. 2.0 are satisfied: GNU -General Public License, version 2 with the GNU Classpath Exception which is -available at https://www.gnu.org/software/classpath/license.html. +6. DISCLAIMER OF LIABILITY -SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. -## Source Code +7. GENERAL -The project maintains the following source code repositories: +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. -* https://github.com/eclipse-ee4j/common-annotations-api +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. -## Third-party Content +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. -## Cryptography +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. -Content may contain encryption software. The country in which you are currently -may have restrictions on the import, possession, and use, and/or re-export to -another country, of encryption software. BEFORE using any encryption software, -please check the country's laws, regulations and policies concerning the import, -possession, or use, and re-export of encryption software, to see if this is -permitted. +Exhibit A - Form of Secondary Licenses Notice +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." -Copyrights ----------- -Copyright (c) 2020 Oracle andor its affiliates. All rights reserved. +Simply including a copy of this Agreement, including this Exhibit A +is not sufficient to license the Source Code under Secondary Licenses. +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to +look for such a notice. -jakarta.inject:jakarta.inject-api -================================= -Apache 2.0 LICENSE ------------ -Same as above listed license -NOTICE.md ---------- -# Notices for Eclipse Jakarta Dependency Injection +You may add additional accurate notices of copyright ownership. -This content is produced and maintained by the Eclipse Jakarta Dependency -Injection project. +--- -* Project home: https://projects.eclipse.org/projects/cdi.batch +## The GNU General Public License (GPL) Version 2, June 1991 -## Trademarks +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor +Boston, MA 02110-1335 +USA -Jakarta Dependency Injection is a trademark of the Eclipse Foundation. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. -## Copyright +Preamble -All content is the property of the respective authors or their employers. For -more information regarding authorship of content, please consult the listed -source code repository logs. +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free software--to +make sure the software is free for all its users. This General Public +License applies to most of the Free Software Foundation's software and +to any other program whose authors commit to using it. (Some other Free +Software Foundation software is covered by the GNU Library General +Public License instead.) You can apply it to your programs, too. -## Declared Project Licenses +When we speak of free software, we are referring to freedom, not price. +Our General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for this +service if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs; and that you know you can do these things. -This program and the accompanying materials are made available under the terms -of the Apache License, Version 2.0 which is available at -https://www.apache.org/licenses/LICENSE-2.0. +To protect your rights, we need to make restrictions that forbid anyone +to deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. -SPDX-License-Identifier: Apache-2.0 +For example, if you distribute copies of such a program, whether gratis +or for a fee, you must give the recipients all the rights that you have. +You must make sure that they, too, receive or can get the source code. +And you must show them these terms so they know their rights. -## Source Code +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. -The project maintains the following source code repositories: +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. -https://github.com/eclipse-ee4j/injection-api -https://github.com/eclipse-ee4j/injection-spec -https://github.com/eclipse-ee4j/injection-tck +Finally, any free program is threatened constantly by software patents. +We wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must +be licensed for everyone's free use or not licensed at all. -## Third-party Content +The precise terms and conditions for copying, distribution and +modification follow. -This project leverages the following third party content. +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -None +0. This License applies to any program or other work which contains a +notice placed by the copyright holder saying it may be distributed under +the terms of this General Public License. The "Program", below, refers +to any such program or work, and a "work based on the Program" means +either the Program or any derivative work under copyright law: that is +to say, a work containing the Program or a portion of it, either +verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +"modification".) Each licensee is addressed as "you". -## Cryptography +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of running +the Program is not restricted, and the output from the Program is +covered only if its contents constitute a work based on the Program +(independent of having been made by running the Program). Whether that +is true depends on what the Program does. -None +1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously +and appropriately publish on each copy an appropriate copyright notice +and disclaimer of warranty; keep intact all the notices that refer to +this License and to the absence of any warranty; and give any other +recipients of the Program a copy of this License along with the Program. -Copyrights ----------- -Copyright (C) 2009 The JSR-330 Expert Group +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. +2. You may modify your copy or copies of the Program or any portion of +it, thus forming a work based on the Program, and copy and distribute +such modifications or work under the terms of Section 1 above, provided +that you also meet all of these conditions: -javax.inject:javax.inject -========================= -Apache-2.0: License +a) You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. -org.apache.commons:commons-compress -=================================== -Apache-2.0: License ------------ -Same as above listed license -NOTICE.txt ----------- -Apache Commons Compress -Copyright 2002-2023 The Apache Software Foundation +b) You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any part +thereof, to be licensed as a whole at no charge to all third parties +under the terms of this License. -This product includes software developed at -The Apache Software Foundation (https://www.apache.org/). +c) If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a notice +that there is no warranty (or else, saying that you provide a +warranty) and that users may redistribute the program under these +conditions, and telling the user how to view a copy of this License. +(Exception: if the Program itself is interactive but does not +normally print such an announcement, your work based on the Program +is not required to print an announcement.) ---- +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, and +can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on +the Program, the distribution of the whole must be on the terms of this +License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. -The files in the package org.apache.commons.compress.archivers.sevenz -were derived from the LZMA SDK, version 9.20 (C/ and CPP/7zip/), -which has been placed in the public domain: +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. -"LZMA SDK is placed in the public domain." (http://www.7-zip.org/sdk.html) +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of a +storage or distribution medium does not bring the other work under the +scope of this License. ---- +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: -The test file lbzip2_32767.bz2 has been copied from libbzip2's source -repository: +a) Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections 1 +and 2 above on a medium customarily used for software interchange; or, -This program, "bzip2", the associated library "libbzip2", and all -documentation, are copyright (C) 1996-2019 Julian R Seward. All -rights reserved. +b) Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your cost +of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: +c) Accompany it with the information you received as to the offer to +distribute corresponding source code. (This alternative is allowed +only for noncommercial distribution and only if you received the +program in object code or executable form with such an offer, in +accord with Subsection b above.) -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source code +means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to control +compilation and installation of the executable. However, as a special +exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies the +executable. -2. The origin of this software must not be misrepresented; you must -not claim that you wrote the original software. If you use this -software in a product, an acknowledgment in the product -documentation would be appreciated but is not required. +If distribution of executable or object code is made by offering access +to copy from a designated place, then offering equivalent access to copy +the source code from the same place counts as distribution of the source +code, even though third parties are not compelled to copy the source +along with the object code. -3. Altered source versions must be plainly marked as such, and must -not be misrepresented as being the original software. +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt otherwise +to copy, modify, sublicense or distribute the Program is void, and will +automatically terminate your rights under this License. However, parties +who have received copies, or rights, from you under this License will +not have their licenses terminated so long as such parties remain in +full compliance. -4. The name of the author may not be used to endorse or promote -products derived from this software without specific prior written -permission. +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and all +its terms and conditions for copying, distributing or modifying the +Program or works based on it. -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further restrictions +on the recipients' exercise of the rights granted herein. You are not +responsible for enforcing compliance by third parties to this License. -Julian Seward, jseward@acm.org +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot distribute +so as to satisfy simultaneously your obligations under this License and +any other pertinent obligations, then as a consequence you may not +distribute the Program at all. For example, if a patent license would +not permit royalty-free redistribution of the Program by all those who +receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. -org.bitbucket.b_c:jose4j -======================== -Apache-2.0: LICENSE -------- -Same as above listed license -NOTICE.txt ----------- -jose4j -Copyright 2012-2015 Brian Campbell +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is implemented +by public license practices. Many people have made generous +contributions to the wide range of software distributed through that +system in reliance on consistent application of that system; it is up to +the author/donor to decide if he or she is willing to distribute +software through any other system and a licensee cannot impose that choice. -EcdsaUsingShaAlgorithm contains code for converting the concatenated -R & S values of the signature to and from DER, which was originally -derived from the Apache Santuario XML Security library's SignatureECDSA -implementation. http://santuario.apache.org/ +This section is intended to make thoroughly clear what is believed to be +a consequence of the rest of this License. -The Base64 implementation in this software was derived from the -Apache Commons Codec project. http://commons.apache.org/proper/commons-codec/ +8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License may +add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among countries +not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. -JSON processing in this software was derived from the JSON.simple toolkit. -https://code.google.com/p/json-simple/ +9. The Free Software Foundation may publish revised and/or new +versions of the General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. -Copyrights ----------- -Copyright 2012-2017 Brian Campbell +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Program does not specify a version +number of this License, you may choose any version ever published by the +Free Software Foundation. +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the +author to ask for permission. For software which is copyrighted by the +Free Software Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be guided by the +two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. -org.bouncycastle:bcpkix-jdk18on -org.bouncycastle:bcprov-jdk18on -org.bouncycastle:bcutil-jdk18on -=============================== +NO WARRANTY -Bouncy Castle Licence: -Copyright (c) 2000 - 2023 The Legion of the Bouncy Castle Inc. -(https://www.bouncycastle.org) +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH +YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, -copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the -Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +END OF TERMS AND CONDITIONS -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +How to Apply These Terms to Your New Programs -org.eclipse.jgit:org.eclipse.jgit -================================= -This program and the accompanying materials are made available -under the terms of the Eclipse Distribution License v1.0 which -accompanies this distribution, is reproduced below, and is -available at http://www.eclipse.org/org/documents/edl-v10.php +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. -All rights reserved. +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met: +One line to give the program's name and a brief idea of what it does. +Copyright (C) -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -- Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided -with the distribution. +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. -- Neither the name of the Eclipse Foundation, Inc. nor the -names of its contributors may be used to endorse or promote -products derived from this software without specific prior -written permission. +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Also add information on how to contact you by electronic and paper mail. -Copyright (C) 2010, Christian Halstrick -Copyright (C) 2010, Stefan Lay and others -Copyright (C) 2011, Abhishek Bhatnagar and others -Copyright (C) 2010, 2021 Chris Aniszczyk and others -Copyright (C) 2014, Robin Stocker and others -Copyright (C) 2010, 2014, Stefan Lay -Copyright (C) 2016, 2021 Laurent Delaigue and others -Copyright (C) 2010, Mathias Kinzler and others -Copyright (C) 2015, Kaloyan Raev and others -Copyright (C) 2013, CloudBees, Inc. and others -Copyright (C) 2012, GitHub Inc. and others -Copyright (C) 2021, Thomas Wolf and others -Copyright (C) 2011, Roberto Tyley and others -Copyright (C) 2016, Laurent Delaigue and others -Copyright (C) 2017, Two Sigma Open Source and others -Copyright (C) 2011, 2013 Christian Halstrick and -others -Copyright (C) 2013, Google Inc. and others -Copyright (C) 2011, 2022 Christoph Brill and others -Copyright (C) 2011, Ketan Padegaonkar and others -Copyright (C) 2012, Matthias Sohn and others -Copyright (C) 2011, Tomasz Zarna and others -Copyright (C) 2011, Philipp Thun and others -Copyright (C) 2011, 2012 IBM Corporation and others. and others +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: -org.fusesource.jansi:jansi -========================== -Apache-2.0: License -Copyright (C) 2009-2023 the original author(s). +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type +`show w'. This is free software, and you are welcome to redistribute +it under certain conditions; type `show c' for details. -org.jline:jline -=============== +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the commands +you use may be called something other than `show w' and `show c'; they +could even be mouse-clicks or menu items--whatever suits your program. -BSD-3-Clause: LICENSE ------------ -Copyright (c) 2002-2018, the original author or authors. -All rights reserved. +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: -https://opensource.org/licenses/BSD-3-Clause +Yoyodyne, Inc., hereby disclaims all copyright interest in the +program `Gnomovision' (which makes passes at compilers) written by +James Hacker. -Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following -conditions are met: +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice -Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. +This General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications +with the library. If this is what you want to do, use the GNU Library +General Public License instead of this License. -Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with -the distribution. +--- -Neither the name of JLine nor the names of its contributors -may be used to endorse or promote products derived from this -software without specific prior written permission. +## CLASSPATH EXCEPTION -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License version 2 cover the whole +combination. -Copyrights ----------- -Copyright (c) 2002-2021, the original author(s). -Copyright (c) 2002-2016, the original author or authors. +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from or +based on this library. If you modify this library, you may extend this +exception to your version of the library, but you are not obligated to +do so. If you do not wish to do so, delete this exception statement +from your version. +NOTICE.md +--------- +# Notices for Jakarta Annotations -org.reactivestreams:reactive-streams -==================================== -MIT-0: LICENSE -------- -MIT No Attribution +This content is produced and maintained by the Jakarta Annotations project. -Copyright 2014 Reactive Streams +* Project home: https://projects.eclipse.org/projects/ee4j.ca -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so. +## Trademarks -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Jakarta Annotations is a trademark of the Eclipse Foundation. +## Declared Project Licenses -org.shredzone.acme4j:acme4j-client -================================== -Apache-2.0: LICENSE -Copyrights ----------- -Copyright (C) 2016 Richard "Shred" Körber +This program and the accompanying materials are made available under the terms +of the Eclipse Public License v. 2.0 which is available at +http://www.eclipse.org/legal/epl-2.0. This Source Code may also be made +available under the following Secondary Licenses when the conditions for such +availability set forth in the Eclipse Public License v. 2.0 are satisfied: GNU +General Public License, version 2 with the GNU Classpath Exception which is +available at https://www.gnu.org/software/classpath/license.html. +SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 -org.shredzone.acme4j:acme4j-utils -================================= -Apache-2.0: LICENSE -Copyrights ----------- -Copyright (C) 2016 Richard "Shred" Körber +## Source Code +The project maintains the following source code repositories: -org.slf4j:slf4j-api -org.slf4j:slf4j-nop -=================== -LICENSE ------------ -Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) -All rights reserved. +* https://github.com/eclipse-ee4j/common-annotations-api -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +## Third-party Content -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. +## Cryptography -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Content may contain encryption software. The country in which you are currently +may have restrictions on the import, possession, and use, and/or re-export to +another country, of encryption software. BEFORE using any encryption software, +please check the country's laws, regulations and policies concerning the import, +possession, or use, and re-export of encryption software, to see if this is +permitted. -Copyrights ----------- -Copyright (c) 2004-2005 QOS.ch -Copyright 2001-2004 The Apache Software Foundation. -Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) -Copyright (c) 2004-2013 QOS.ch, Copyright (C) 2015 Google Inc. -org.yaml:snakeyaml -================== -Apache-2.0: LICENSE Copyrights ---------- -Copyright (c) 2008, SnakeYAML -Copyright (c) 2008 Google Inc. -Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, -Switzerland -================================================================================ +Copyright (c) 2020 Oracle andor its affiliates. All rights reserved. -Picocli Shell JLine3 -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ +jakarta.inject:jakarta.inject-api +================================= +Apache 2.0 LICENSE +Same as above listed license -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +NOTICE +--------- +# Notices for Eclipse Jakarta Dependency Injection -1. Definitions. +This content is produced and maintained by the Eclipse Jakarta Dependency +Injection project. -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. +* Project home: https://projects.eclipse.org/projects/cdi.batch -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. +## Trademarks -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. +Jakarta Dependency Injection is a trademark of the Eclipse Foundation. -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. +## Copyright -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. +All content is the property of the respective authors or their employers. For +more information regarding authorship of content, please consult the listed +source code repository logs. -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. +## Declared Project Licenses -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). +This program and the accompanying materials are made available under the terms +of the Apache License, Version 2.0 which is available at +https://www.apache.org/licenses/LICENSE-2.0. -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. +SPDX-License-Identifier: Apache-2.0 -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." +## Source Code -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. +The project maintains the following source code repositories: -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. +https://github.com/eclipse-ee4j/injection-api +https://github.com/eclipse-ee4j/injection-spec +https://github.com/eclipse-ee4j/injection-tck -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. +## Third-party Content -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: +This project leverages the following third party content. + +None + +## Cryptography + +None + +Copyrights +---------- +Copyright (C) 2009 The JSR-330 Expert Group -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and +org.apache.commons:commons-compress +=================================== +Apache 2.0 LICENSE +----------- +Same as above listed license +NOTICE.txt +---------- +Apache Commons Compress +Copyright 2002-2023 The Apache Software Foundation -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. +--- -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. +The files in the package org.apache.commons.compress.archivers.sevenz +were derived from the LZMA SDK, version 9.20 (C/ and CPP/7zip/), +which has been placed in the public domain: -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. +"LZMA SDK is placed in the public domain." (http://www.7-zip.org/sdk.html) -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. +--- -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. +The test file lbzip2_32767.bz2 has been copied from libbzip2's source +repository: -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2019 Julian R Seward. All +rights reserved. -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: -END OF TERMS AND CONDITIONS +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. -APPENDIX: How to apply the Apache License to your work. +2. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product +documentation would be appreciated but is not required. -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "{}" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. +3. Altered source versions must be plainly marked as such, and must +not be misrepresented as being the original software. -Copyright {yyyy} {name of copyright owner} +4. The name of the author may not be used to endorse or promote +products derived from this software without specific prior written +permission. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -http://www.apache.org/licenses/LICENSE-2.0 +Julian Seward, jseward@acm.org -Unless required by applicable law or agreed to in writing, software -distributed under the License 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. -========================= -picocli Apache 2.0 license -========================= -JLine BSD License -Copyright (c) 2002-2018, the original author or authors. -All rights reserved. +org.eclipse.jgit:org.eclipse.jgit +================================= +This program and the accompanying materials are made available +under the terms of the Eclipse Distribution License v1.0 which +accompanies this distribution, is reproduced below, and is +available at http://www.eclipse.org/org/documents/edl-v10.php -https://opensource.org/licenses/BSD-3-Clause +All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright +- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with -the distribution. +- Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution. + +- Neither the name of the Eclipse Foundation, Inc. nor the +names of its contributors may be used to endorse or promote +products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyright (C) 2010, Christian Halstrick +Copyright (C) 2010, Stefan Lay and others +Copyright (C) 2011, Abhishek Bhatnagar and others +Copyright (C) 2010, 2021 Chris Aniszczyk and others +Copyright (C) 2014, Robin Stocker and others +Copyright (C) 2010, 2014, Stefan Lay +Copyright (C) 2016, 2021 Laurent Delaigue and others +Copyright (C) 2010, Mathias Kinzler and others +Copyright (C) 2015, Kaloyan Raev and others +Copyright (C) 2013, CloudBees, Inc. and others +Copyright (C) 2012, GitHub Inc. and others +Copyright (C) 2021, Thomas Wolf and others +Copyright (C) 2011, Roberto Tyley and others +Copyright (C) 2016, Laurent Delaigue and others +Copyright (C) 2017, Two Sigma Open Source and others +Copyright (C) 2011, 2013 Christian Halstrick and +others +Copyright (C) 2013, Google Inc. and others +Copyright (C) 2011, 2022 Christoph Brill and others +Copyright (C) 2011, Ketan Padegaonkar and others +Copyright (C) 2012, Matthias Sohn and others +Copyright (C) 2011, Tomasz Zarna and others +Copyright (C) 2011, Philipp Thun and others +Copyright (C) 2011, 2012 IBM Corporation and others. and others + +org.reactivestreams:reactive-streams +==================================== +MIT-0: LICENSE +------- +MIT No Attribution + +Copyright 2014 Reactive Streams + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +org.slf4j:slf4j-api +=================== +LICENSE +----------- +Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Neither the name of JLine nor the names of its contributors -may be used to endorse or promote products derived from this -software without specific prior written permission. +Copyrights +---------- +Copyright (c) 2004-2005 QOS.ch +Copyright 2001-2004 The Apache Software Foundation. +Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) +Copyright (c) 2004-2013 QOS.ch, Copyright (C) 2015 Google Inc. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. + +org.yaml:snakeyaml +================== +Apache-2.0: LICENSE +Copyrights +---------- +Copyright (c) 2008, SnakeYAML +Copyright (c) 2008 Google Inc. +Copyright 2003-2010 Christian d'Heureuse, Inventec Informatik AG, Zurich, +Switzerland ================================================================================ jakarta.inject-api @@ -7642,226 +7904,4 @@ 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. -############################################################# -================================================================================ - -Jansi - -jansi (org.fusesource.jansi:jansi) -Copyright (C) 2009-2023 the original author(s). --------------------------------------------- - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License 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. ----------------------------------------------- -Fourth Party Dependencies ----------------------------------------------- -HawtJNI -Copyright (C) 2009-2011 FuseSource Corp. -Copyright (c) 2004, 2008 IBM Corporation and others. -This product includes software developed by FuseSource Corp. -http://fusesource.com -This product includes software developed at Progress Software Corporation and/or -its subsidiaries or affiliates. -This product includes software developed by IBM Corporation and others. - -Apache License Version 2.0 \ No newline at end of file +############################################################# \ No newline at end of file diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/GcnVersionCatalogUpdatePlugin.groovy b/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/GcnVersionCatalogUpdatePlugin.groovy deleted file mode 100644 index e2f637e..0000000 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/GcnVersionCatalogUpdatePlugin.groovy +++ /dev/null @@ -1,37 +0,0 @@ -package cloud.graal.gcn.dependencies - -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.file.Directory -import org.gradle.api.tasks.Copy -import org.gradle.api.tasks.TaskContainer -import org.gradle.api.tasks.TaskProvider - -class GcnVersionCatalogUpdatePlugin implements Plugin { - - void apply(Project project) { - TaskContainer tasks = project.tasks - Directory gradleDirectory = project.layout.projectDirectory.dir("../gradle") - TaskProvider updater = tasks.register("updateVersionCatalogs", VersionCatalogUpdate.class, task -> { - task.catalogsDirectory.convention(gradleDirectory) - task.outputDirectory.convention(project.getLayout().getBuildDirectory().dir("catalogs-update")) - task.rejectedQualifiers.convention(["alpha", "beta", "rc", "cr", "m", "preview", "b", "ea"]) - task.ignoredModules.convention([ - "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable", - "org.jetbrains.kotlin:kotlin-compiler-embeddable", - "org.jetbrains.kotlin:kotlin-reflect", - "org.jetbrains.kotlin:kotlin-stdlib", - "org.jetbrains.kotlin:kotlin-stdlib-jdk8", - "org.jetbrains.kotlin:kotlin-test" - ]) - task.allowMajorUpdates.convention(false) - task.allowMinorUpdates.convention(false) - }) - tasks.register("useLatestVersions", Copy, task -> { - VersionCatalogUpdate dependent = updater.get() - task.from(dependent.outputDirectory) - task.into(project.providers.environmentVariable("CI").map(value -> gradleDirectory).orElse(dependent.catalogsDirectory)) - }) - tasks.register("dependencyUpdates", task -> task.setDescription("Compatibility task with the old update mechanism")) - } -} diff --git a/gcn/buildSrc/src/main/groovy/gcn-dependencies.gradle b/gcn/buildSrc/src/main/groovy/gcn-dependencies.gradle deleted file mode 100644 index 7d0413b..0000000 --- a/gcn/buildSrc/src/main/groovy/gcn-dependencies.gradle +++ /dev/null @@ -1,11 +0,0 @@ -plugins { - id 'java' -} - -def generateDependencyUtils = tasks.register("generateDependencyUtils", cloud.graal.gcn.dependencies.DependenciesSourceGenerator) { - packageName = "cloud.graal.gcn.build.dependencies" - outputDirectory = layout.buildDirectory.dir("generated-sources/dependencies") - versionCatalog = project.extensions.getByType(VersionCatalogsExtension).named("templateLibs") -} - -sourceSets.main.java.srcDir(generateDependencyUtils) \ No newline at end of file diff --git a/gcn/gcn-cli/src/main/resources/micronaut-starter-cli/native-image.properties b/gcn/gcn-cli/src/main/resources/micronaut-starter-cli/native-image.properties deleted file mode 100644 index ca2bac3..0000000 --- a/gcn/gcn-cli/src/main/resources/micronaut-starter-cli/native-image.properties +++ /dev/null @@ -1,2 +0,0 @@ -Args = -H:Name=gcn \ - -H:Class=cloud.graal.gcn.GcnStarter diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnSpringBootCloudApp.java b/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnSpringBootCloudApp.java deleted file mode 100644 index 55699aa..0000000 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnSpringBootCloudApp.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2023 Oracle and/or its affiliates - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License 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 cloud.graal.gcn.feature.create.app; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.create.AbstractGcnCreateFeature; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnProjectType; -import io.micronaut.core.annotation.NonNull; -import io.micronaut.starter.feature.lang.java.JavaApplication; -import jakarta.inject.Singleton; - -import static cloud.graal.gcn.model.GcnCloud.NONE; -import static cloud.graal.gcn.model.GcnProjectType.SPRING_BOOT_APPLICATION; - -/** - * Base class for Spring Boot create-app features. - * - * @since 4.0.0 - */ -@Singleton -public class GcnSpringBootCloudApp extends AbstractGcnCreateFeature { - - @NonNull - @Override - public GcnProjectType getProjectType() { - return SPRING_BOOT_APPLICATION; - } - - @Override - public GcnCloud getCloud() { - return NONE; - } - - @NonNull - @Override - public String getName() { - return "gcn-spring-boot-app"; - } - - @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { - // exclude default Application and ApplicationTest classes - featureContext.exclude(feature -> feature instanceof JavaApplication); - } - - @Override - public void apply(GcnGeneratorContext generatorContext) { - // Do nothing - // gradle or maven files and Application file are copied - } - - @Override - public boolean isVisible() { - return false; - } - -} diff --git a/gcn/gradle/wrapper/gradle-wrapper.jar b/gcn/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index d64cd4917707c1f8861d8cb53dd15194d4248596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43462 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 diff --git a/gcn/buildSrc/build.gradle b/gdk/buildSrc/build.gradle similarity index 80% rename from gcn/buildSrc/build.gradle rename to gdk/buildSrc/build.gradle index 83b3a55..2f1fb96 100644 --- a/gcn/buildSrc/build.gradle +++ b/gdk/buildSrc/build.gradle @@ -44,16 +44,16 @@ sourceSets.main.java.srcDir(writeRockerHelper) gradlePlugin { plugins { rockerPlugin { - id = 'gcn.rocker' - implementationClass = 'cloud.graal.gcn.rocker.plugin.RockerPlugin' + id = 'gdk.rocker' + implementationClass = 'cloud.graal.gdk.rocker.plugin.RockerPlugin' } - gcnBomPlugin { - id = 'gcn.bom' - implementationClass = 'cloud.graal.gcn.pom.GcnBomPlugin' + gdkBomPlugin { + id = 'gdk.bom' + implementationClass = 'cloud.graal.gdk.pom.GdkBomPlugin' } versionCatalogUpdates { - id = 'gcn.version-catalog-updates' - implementationClass = 'cloud.graal.gcn.dependencies.GcnVersionCatalogUpdatePlugin' + id = 'gdk.version-catalog-updates' + implementationClass = 'cloud.graal.gdk.dependencies.GdkVersionCatalogUpdatePlugin' } } } @@ -68,10 +68,10 @@ abstract class WriteRockerHelper extends DefaultTask { @TaskAction void execute() { var outputFile = outputDirectory.get().asFile.toPath() - .resolve('cloud/graal/gcn/rocker/plugin/RockerHelper.java') + .resolve('cloud/graal/gdk/rocker/plugin/RockerHelper.java') outputFile.parent.toFile().mkdirs() outputFile.text = """\ -package cloud.graal.gcn.rocker.plugin; +package cloud.graal.gdk.rocker.plugin; abstract class RockerHelper { public static final String VERSION = "${rockerVersion.get()}"; diff --git a/gcn/buildSrc/settings.gradle b/gdk/buildSrc/settings.gradle similarity index 96% rename from gcn/buildSrc/settings.gradle rename to gdk/buildSrc/settings.gradle index 24a27eb..ffa5a1f 100644 --- a/gcn/buildSrc/settings.gradle +++ b/gdk/buildSrc/settings.gradle @@ -14,7 +14,7 @@ * limitations under the License. */ -rootProject.name = 'gcn' +rootProject.name = 'gdk' dependencyResolutionManagement { versionCatalogs { diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/DependenciesSourceGenerator.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/DependenciesSourceGenerator.groovy similarity index 73% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/DependenciesSourceGenerator.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/DependenciesSourceGenerator.groovy index 06e650e..84b1476 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/DependenciesSourceGenerator.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/DependenciesSourceGenerator.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.dependencies +package cloud.graal.gdk.dependencies import org.gradle.api.DefaultTask import org.gradle.api.artifacts.VersionCatalog @@ -45,16 +45,16 @@ abstract class DependenciesSourceGenerator extends DefaultTask { def library = versionCatalog.findLibrary(alias).get() if (library.isPresent()) { def lib = library.get() - def artifactId = lib.module.name - def groupId = lib.module.group - def version = lib.versionConstraint.requiredVersion - def pom = alias.startsWith("bom-") ? "true" : "false" + String artifactId = lib.module.name + String groupId = lib.module.group + String version = lib.versionConstraint.requiredVersion + boolean pom = alias.startsWith('bom-') "${artifactId}:${groupId}:${version}:${pom}" } else { null } } - .findAll { it != null } + .findAll { it } .toSet() } } @@ -75,35 +75,35 @@ abstract class DependenciesSourceGenerator extends DefaultTask { Path packageDirectory = outputDirectory.toPath().resolve(packageName.replace('.', '/')) fileOperations.delete(outputDirectory) Files.createDirectories(packageDirectory) - new File(packageDirectory.toFile(), "GcnDependencies.java").withPrintWriter { writer -> + new File(packageDirectory.toFile(), 'GdkDependencies.java').withPrintWriter { writer -> writer.println("package $packageName;") writer.println() - writer.println("import java.util.Collections;") - writer.println("import java.util.HashMap;") - writer.println("import java.util.Map;") - writer.println("import io.micronaut.starter.build.dependencies.Dependency;") + writer.println('import java.util.Collections;') + writer.println('import java.util.HashMap;') + writer.println('import java.util.Map;') + writer.println('import io.micronaut.starter.build.dependencies.Dependency;') writer.println() - writer.println("public class GcnDependencies {") - writer.println(" public static final Map ALL_DEPENDENCIES;") + writer.println('public class GdkDependencies {') + writer.println(' public static final Map ALL_DEPENDENCIES;') def dependenciesMap = [:] def versionCatalog = getVersionCatalog().get() writeDependencies(writer, dependenciesMap, versionCatalog, true) writeDependencies(writer, dependenciesMap, versionCatalog, false) writer.println() - writer.println(" static {") - writer.println(" Map dependencies = new HashMap<>();") + writer.println(' static {') + writer.println(' Map dependencies = new HashMap<>();') dependenciesMap.each { key, value -> writer.println(" dependencies.put(\"$key\", $value);") } - writer.println(" ALL_DEPENDENCIES = Collections.unmodifiableMap(dependencies);") - writer.println(" }") - writer.println("}") + writer.println(' ALL_DEPENDENCIES = Collections.unmodifiableMap(dependencies);') + writer.println(' }') + writer.println('}') } } static void writeDependencies(writer, Map dependenciesMap, versionCatalog, boolean bom) { versionCatalog.libraryAliases - .findAll { alias -> bom == alias.startsWith("bom.") } + .findAll { alias -> bom == alias.startsWith('bom.') } .collect { versionCatalog.findLibrary(it).orElse(null) } .findAll { it != null } .sort { a, b -> a.get().module.name <=> b.get().module.name } @@ -111,15 +111,14 @@ abstract class DependenciesSourceGenerator extends DefaultTask { String artifactId = lib.get().module.name String groupId = lib.get().module.group String version = lib.get().versionConstraint.requiredVersion - String pom = bom ? "true" : "false" String name = artifactId.toUpperCase().replaceAll('-', '_').replaceAll('\\.', '_') writer.println(" public static final Dependency $name = Dependency.builder()\n" + " .groupId(\"$groupId\")\n" + " .artifactId(\"$artifactId\")\n" + " .version(\"$version\")\n" + - " .pom($pom)\n" + + " .pom($bom)\n" + " .build();") - dependenciesMap.put(artifactId, name) + dependenciesMap[artifactId] = name } } } diff --git a/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/GdkVersionCatalogUpdatePlugin.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/GdkVersionCatalogUpdatePlugin.groovy new file mode 100644 index 0000000..e44b586 --- /dev/null +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/GdkVersionCatalogUpdatePlugin.groovy @@ -0,0 +1,54 @@ +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 cloud.graal.gdk.dependencies + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.file.Directory +import org.gradle.api.tasks.Copy +import org.gradle.api.tasks.TaskContainer +import org.gradle.api.tasks.TaskProvider + +class GdkVersionCatalogUpdatePlugin implements Plugin { + + void apply(Project project) { + TaskContainer tasks = project.tasks + Directory gradleDirectory = project.layout.projectDirectory.dir('../gradle') + TaskProvider updater = tasks.register('updateVersionCatalogs', VersionCatalogUpdate.class, task -> { + task.catalogsDirectory.convention(gradleDirectory) + task.outputDirectory.convention(project.layout.buildDirectory.dir('catalogs-update')) + task.rejectedQualifiers.convention(['alpha', 'beta', 'rc', 'cr', 'm', 'preview', 'b', 'ea']) + task.ignoredModules.convention([ + 'org.jetbrains.kotlin:kotlin-annotation-processing-embeddable', + 'org.jetbrains.kotlin:kotlin-compiler-embeddable', + 'org.jetbrains.kotlin:kotlin-reflect', + 'org.jetbrains.kotlin:kotlin-stdlib', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8', + 'org.jetbrains.kotlin:kotlin-test' + ]) + task.allowMajorUpdates.convention(false) + task.allowMinorUpdates.convention(true) + }) + tasks.register('useLatestVersions', Copy, task -> { + VersionCatalogUpdate dependent = updater.get() + task.from(dependent.outputDirectory) + task.into(project.providers.environmentVariable('CI') + .map(value -> gradleDirectory) + .orElse(dependent.catalogsDirectory)) + }) + tasks.register('dependencyUpdates', task -> task.setDescription('Compatibility task with the old update mechanism')) + } +} diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/VersionCatalogUpdate.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/VersionCatalogUpdate.groovy similarity index 84% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/VersionCatalogUpdate.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/VersionCatalogUpdate.groovy index ea30d8e..3e6ca89 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/dependencies/VersionCatalogUpdate.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/dependencies/VersionCatalogUpdate.groovy @@ -1,4 +1,19 @@ -package cloud.graal.gcn.dependencies +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 cloud.graal.gdk.dependencies import io.micronaut.build.catalogs.internal.LenientVersionCatalogParser import io.micronaut.build.catalogs.internal.Library @@ -26,12 +41,13 @@ import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction -import java.nio.charset.StandardCharsets import java.nio.file.Files -import java.util.concurrent.TimeUnit import java.util.regex.Matcher import java.util.regex.Pattern +import static java.nio.charset.StandardCharsets.UTF_8 +import static java.util.concurrent.TimeUnit.MINUTES + abstract class VersionCatalogUpdate extends DefaultTask { @InputDirectory @@ -52,31 +68,31 @@ abstract class VersionCatalogUpdate extends DefaultTask { @Input abstract Property getAllowMinorUpdates() - private static final Pattern ORACLE_VERSION_PATTERN = Pattern.compile(".+-oracle-\\d+") + private static final Pattern ORACLE_VERSION_PATTERN = Pattern.compile('.+-oracle-\\d+') private static final Pattern VERSION_PATTERN = Pattern.compile("(version\\s*=\\s*[\"'])(.+?)([\"'])") @TaskAction void updateCatalogs() throws IOException, InterruptedException { Set catalogs = getCatalogsDirectory().getAsFileTree() - .matching { pattern -> pattern.include("*.versions.toml") } + .matching { pattern -> pattern.include('*.versions.toml') } .getFiles() File outputDir = getOutputDirectory().getAsFile().get() - File logFile = getOutputDirectory().file("updates.log").get().getAsFile() + File logFile = getOutputDirectory().file('updates.log').get().getAsFile() if (outputDir.isDirectory() || outputDir.mkdirs()) { if (catalogs.isEmpty()) { getLogger().info("Didn't find any version catalog to process") } for (File catalog : catalogs) { - getLogger().info("Processing {}", catalog) + getLogger().info('Processing {}', catalog) updateCatalog(catalog, new File(outputDir, catalog.getName()), logFile) } } else { - throw new GradleException("Unable to create output directory " + outputDir) + throw new GradleException('Unable to create output directory ' + outputDir) } } - static boolean supportsUpdate(RichVersion richVersion) { + private static boolean supportsUpdate(RichVersion richVersion) { return richVersion != null && richVersion.getRequire() != null && richVersion.getStrictly() == null @@ -92,41 +108,40 @@ abstract class VersionCatalogUpdate extends DefaultTask { try (FileInputStream is = new FileInputStream(inputCatalog)) { parser.parse(is) } - List lines = Files.readAllLines(inputCatalog.toPath(), StandardCharsets.UTF_8) + List lines = Files.readAllLines(inputCatalog.toPath(), UTF_8) boolean allowMajorUpdate = getAllowMajorUpdates().get() - boolean allowMinorUpdate = getAllowMajorUpdates().get() + boolean allowMinorUpdate = getAllowMinorUpdates().get() VersionCatalogTomlModel model = parser.getModel() DependencyHandler dependencies = getProject().getDependencies() ConfigurationContainer configurations = getProject().getConfigurations() Configuration detachedConfiguration = configurations.detachedConfiguration() - detachedConfiguration.setCanBeConsumed(false) - detachedConfiguration.setCanBeResolved(true) - detachedConfiguration.setTransitive(false) - detachedConfiguration.getResolutionStrategy() - .cacheDynamicVersionsFor(0, TimeUnit.MINUTES) + detachedConfiguration.canBeConsumed = false + detachedConfiguration.canBeResolved = true + detachedConfiguration.transitive = false + detachedConfiguration.resolutionStrategy.cacheDynamicVersionsFor(0, MINUTES) List rejectedQualifiers = getRejectedQualifiers().get() .stream() .map { qualifier -> Pattern.compile("(?i).*[.-]" + qualifier + "[.\\d-+]*") } .toList() - detachedConfiguration.getResolutionStrategy().getComponentSelection().all { rules -> + detachedConfiguration.resolutionStrategy.componentSelection.all { rules -> ModuleComponentIdentifier candidateModule = rules.getCandidate() - String candidateVersion = candidateModule.getVersion() - def micronautIgnoreGroups = Set.of( - "io.micronaut.build", - "io.micronaut.build.internal.bom", - "io.micronaut.gradle", - "io.micronaut.platform", - "io.micronaut.starter", - "io.micronaut.maven", - "io.micronaut.testresources" - ) + String candidateVersion = candidateModule.version + Set micronautIgnoreGroups = [ + 'io.micronaut.build', + 'io.micronaut.build.internal.bom', + 'io.micronaut.gradle', + 'io.micronaut.platform', + 'io.micronaut.starter', + 'io.micronaut.maven', + 'io.micronaut.testresources' + ] - if (candidateModule.getGroup().contains("io.micronaut") && !micronautIgnoreGroups.contains(candidateModule.getGroup()) && !VersionCatalogUpdate.ORACLE_VERSION_PATTERN.matcher(candidateVersion).find()) { - rules.reject("Rejecting micronaut module not build at oracle") + if (candidateModule.getGroup().contains('io.micronaut') && !micronautIgnoreGroups.contains(candidateModule.getGroup()) && !VersionCatalogUpdate.ORACLE_VERSION_PATTERN.matcher(candidateVersion).find()) { + rules.reject('Rejecting Micronaut module not build at Oracle') log.println("Rejecting " + candidateModule.getModuleIdentifier() + " version " + candidateVersion) } Set modulesToAllowAlpha = Set.of("google-cloud-logging-logback", "opentelemetry-semconv") - rejectedQualifiers.forEach { qualifier -> + for (Pattern qualifier in rejectedQualifiers) { if (qualifier.matcher(candidateVersion).find()) { if (!modulesToAllowAlpha.contains(candidateModule.getModule()) || !candidateVersion.contains("alpha")) { rules.reject("Rejecting qualifier " + qualifier) @@ -212,7 +227,7 @@ abstract class VersionCatalogUpdate extends DefaultTask { if (m.find()) { lines.set(lineNb, m.replaceAll('$1' + latest + '$3')) } else { - def lookup = "(\\s*=\\s*[\"'])(" + library.getGroup() + "):("+ library.getName()+"):(.+?)([\"'])" + def lookup = "(\\s*=\\s*[\"'])(" + library.getGroup() + "):(" + library.getName() + "):(.+?)([\"'])" m = Pattern.compile(lookup).matcher(line) if (m.find()) { lines.set(lineNb, m.replaceAll('$1$2:$3:' + latest + '$5')) @@ -260,7 +275,7 @@ abstract class VersionCatalogUpdate extends DefaultTask { } static PrintWriter newPrintWriter(File file) throws FileNotFoundException { - return new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8)) + return new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), UTF_8)) } static String majorVersionOf(String version) { diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/CheckGcnPomAction.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/CheckGdkPomAction.groovy similarity index 97% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/CheckGcnPomAction.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/CheckGdkPomAction.groovy index cacad89..8f9531d 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/CheckGcnPomAction.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/CheckGdkPomAction.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.pom +package cloud.graal.gdk.pom import groovy.json.JsonGenerator import groovy.json.JsonOutput @@ -27,7 +27,7 @@ import org.gradle.api.provider.Property import org.gradle.workers.WorkAction import org.gradle.workers.WorkParameters -abstract class CheckGcnPomAction implements WorkAction { +abstract class CheckGdkPomAction implements WorkAction { static interface Parameters extends WorkParameters { Property getDependencyPath() diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/DependencyExclusion.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/DependencyExclusion.groovy similarity index 86% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/DependencyExclusion.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/DependencyExclusion.groovy index 289eb31..475976e 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/DependencyExclusion.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/DependencyExclusion.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.pom +package cloud.graal.gdk.pom import org.gradle.api.Action import org.gradle.api.NamedDomainObjectContainer @@ -24,15 +24,12 @@ import javax.inject.Inject class DependencyExclusion { - public static final String NAME = "dependencyExclusion" - - private final ObjectFactory objectFactory + public static final String NAME = 'dependencyExclusion' final NamedDomainObjectContainer exclusions @Inject DependencyExclusion(ObjectFactory objectFactory) { - this.objectFactory = objectFactory exclusions = objectFactory.domainObjectContainer(Exclusion) } diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/Exclusion.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/Exclusion.groovy similarity index 90% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/Exclusion.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/Exclusion.groovy index 65e583f..e290aaa 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/Exclusion.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/Exclusion.groovy @@ -14,15 +14,15 @@ * limitations under the License. */ -package cloud.graal.gcn.pom +package cloud.graal.gdk.pom import groovy.transform.CompileStatic @CompileStatic class Exclusion { - String name - Set from = [] + final String name + final Set from = [] Exclusion(String name) { this.name = name diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnBomPlugin.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkBomPlugin.groovy similarity index 91% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnBomPlugin.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkBomPlugin.groovy index 6f64fab..4245023 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnBomPlugin.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkBomPlugin.groovy @@ -1,4 +1,19 @@ -package cloud.graal.gcn.pom +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 cloud.graal.gdk.pom import groovy.namespace.QName import groovy.transform.CompileStatic @@ -36,7 +51,7 @@ import static org.gradle.api.plugins.JavaPlatformPlugin.API_CONFIGURATION_NAME @CompileStatic @CacheableTask -abstract class GcnBomPlugin implements Plugin { +abstract class GdkBomPlugin implements Plugin { @Override void apply(Project project) { @@ -73,7 +88,7 @@ abstract class GcnBomPlugin implements Plugin { } private static void registerCheckBomTask(Project project) { - TaskProvider checkBom = registerPomChecker("checkBom", project, task -> { }) + TaskProvider checkBom = registerPomChecker("checkBom", project, task -> { }) project.tasks.register("checkPom", task -> task.dependsOn(checkBom)) } @@ -106,8 +121,8 @@ abstract class GcnBomPlugin implements Plugin { Map mapAliasToVersion = new HashMap<>() publishing.publications.named("maven", MavenPublication, pub -> { - pub.artifactId = "gcn-bom" - pub.groupId = "cloud.graal.gcn" + pub.artifactId = "gdk-bom" + pub.groupId = "cloud.graal.gdk" pub.from(project.components.named("javaPlatform").get()) pub.pom(pom -> { @@ -202,10 +217,10 @@ abstract class GcnBomPlugin implements Plugin { }) } - static TaskProvider registerPomChecker(String taskName, Project project, - Consumer configuration) { + static TaskProvider registerPomChecker(String taskName, Project project, + Consumer configuration) { TaskContainer tasks = project.tasks - TaskProvider pomChecker = tasks.register(taskName, GcnPomChecker, task -> { + TaskProvider pomChecker = tasks.register(taskName, GdkPomChecker, task -> { task.repositories.add("https://repo.maven.apache.org/maven2/") task.repositories.add("https://maven.oracle.com/public/") @@ -225,7 +240,7 @@ abstract class GcnBomPlugin implements Plugin { .fileProvider(tasks.named("generatePomFileForMavenPublication", GenerateMavenPom) .map(GenerateMavenPom::getDestination)) String version = assertVersion(project) - task.pomCoordinates.set("cloud.graal.gcn:gcn-bom:" + version) + task.pomCoordinates.set("cloud.graal.gdk:gdk-bom:" + version) task.reportDirectory.set(project.layout.buildDirectory.dir("reports/" + taskName)) task.pomsDirectory.set(project.layout.buildDirectory.dir("poms")) ProviderFactory providers = project.providers diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnPomChecker.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkPomChecker.groovy similarity index 94% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnPomChecker.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkPomChecker.groovy index c622452..f8561fb 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/GcnPomChecker.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/GdkPomChecker.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.pom +package cloud.graal.gdk.pom import groovy.transform.CompileStatic import io.micronaut.build.pom.PomFileAdapter @@ -42,7 +42,7 @@ import static org.gradle.language.base.plugins.LifecycleBasePlugin.VERIFICATION_ @CompileStatic @CacheableTask -abstract class GcnPomChecker extends DefaultTask { +abstract class GdkPomChecker extends DefaultTask { @Input abstract ListProperty getRepositories() @@ -73,7 +73,7 @@ abstract class GcnPomChecker extends DefaultTask { @Inject abstract WorkerExecutor getWorkerExecutor() - GcnPomChecker() { + GdkPomChecker() { description = "Verifies a POM file" group = VERIFICATION_GROUP failOnError.convention(true) @@ -98,7 +98,7 @@ abstract class GcnPomChecker extends DefaultTask { def (group, artifact, version, pomFile, path) = [item[0], item[1], item[2], item[3], item[4]] String key = "${group}:${artifact}:${version}" if (seen.add(key)) { - workQueue.submit(CheckGcnPomAction) { params -> + workQueue.submit(CheckGdkPomAction) { params -> params.pomFile.set((File) pomFile) params.groupId.set((String) group) params.artifactId.set((String) artifact) @@ -115,7 +115,7 @@ abstract class GcnPomChecker extends DefaultTask { } workQueue.await() queue.clear() - reports.each { + for (File it in reports) { def validation = PomFileAdapter.parseFromFile(it) String bomPrefix = "POM ${validation.pomFile.groupId}:${validation.pomFile.artifactId}:${validation.pomFile.version} (via ${validation.dependencyPath})" if (validation.pomFile.bom) { @@ -124,8 +124,8 @@ abstract class GcnPomChecker extends DefaultTask { errorCollector.errors.add("$bomPrefix has dependencies outside of block.".toString()) } } - validation.invalidDependencies.each { - errorCollector.error("$bomPrefix declares a non-resolvable dependency: $it".toString()) + for (String invalid in validation.invalidDependencies) { + errorCollector.error(bomPrefix + " declares a non-resolvable dependency: " + invalid) } } } diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/PomParser.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/PomParser.groovy similarity index 82% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/PomParser.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/PomParser.groovy index e10f1d3..85f10b0 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/pom/PomParser.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/pom/PomParser.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.pom +package cloud.graal.gdk.pom import groovy.transform.PackageScope import groovy.xml.XmlSlurper @@ -33,30 +33,30 @@ class PomParser { PomFile parse(File pomFile, String groupId, String artifactId, String version) { def pom = new XmlSlurper().parse(pomFile) - def bom = pom.packaging.text() == 'pom' + boolean bom = pom.packaging.text() == 'pom' Map properties = pom.properties.children().collectEntries { [it.name(), it.text()] } - if (!properties.containsKey("project.version")) { + if (!properties.containsKey('project.version')) { properties['project.version'] = version } properties = resolve(properties) - def parentGroupId = pom.parent.groupId.text() - def parentArtifactId = pom.parent.artifactId.text() - def parentVersion = pom.parent.version.text() + String parentGroupId = pom.parent.groupId.text() + String parentArtifactId = pom.parent.artifactId.text() + String parentVersion = pom.parent.version.text() if (parentGroupId && parentArtifactId && parentVersion) { Optional parentPom = pomDownloader.tryDownloadPom(new PomDependency( - false, - parentGroupId, - parentArtifactId, - parentVersion, - "" + false, + parentGroupId, + parentArtifactId, + parentVersion, + '' )) if (parentPom.present) { PomFile parent = parse(parentPom.get(), parentGroupId, parentArtifactId, parentVersion) parent.properties.each { k, v -> if (!properties.containsKey(k)) { - properties.put(k, v) + properties[k] = v } } } @@ -70,7 +70,7 @@ class PomParser { return new PomFile(groupId, artifactId, version, bom, dependencies + managedDependencies, properties) } - static PomDependency parseDependency(Object model, String group, boolean managed, Map properties) { + private static PomDependency parseDependency(Object model, String group, boolean managed, Map properties) { String depGroup = model.groupId.text().replace('${project.groupId}', group) String depArtifact = model.artifactId.text() String depVersion = substitute(properties, model.version.text()) @@ -83,7 +83,7 @@ class PomParser { while (substituteProperties) { substituteProperties = false for (Map.Entry property : properties) { - String token = "\${${property.key}}" + String token = '${' + property.key + '}' if (value.contains(token)) { value = value.replace(token, property.value) substituteProperties = true // need to recurse because some properties can reference others diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/WhitespaceProcessor.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/WhitespaceProcessor.groovy similarity index 98% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/WhitespaceProcessor.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/WhitespaceProcessor.groovy index c723ccf..9088ad0 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/WhitespaceProcessor.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/WhitespaceProcessor.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.rocker +package cloud.graal.gdk.rocker import com.fizzed.rocker.model.PlainText import com.fizzed.rocker.model.PostProcessorException diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/JavaGeneratorRunnable.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/JavaGeneratorRunnable.groovy similarity index 97% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/JavaGeneratorRunnable.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/JavaGeneratorRunnable.groovy index edb332c..29aba8b 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/JavaGeneratorRunnable.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/JavaGeneratorRunnable.groovy @@ -14,9 +14,9 @@ * limitations under the License. */ -package cloud.graal.gcn.rocker.plugin +package cloud.graal.gdk.rocker.plugin -import cloud.graal.gcn.rocker.WhitespaceProcessor +import cloud.graal.gdk.rocker.WhitespaceProcessor import com.fizzed.rocker.compiler.JavaGenerator import com.fizzed.rocker.compiler.RockerConfiguration import com.fizzed.rocker.compiler.RockerUtil diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/ProcessRockerTemplatesTask.java b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/ProcessRockerTemplatesTask.java similarity index 95% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/ProcessRockerTemplatesTask.java rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/ProcessRockerTemplatesTask.java index c2b5cfe..62dd5e3 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/ProcessRockerTemplatesTask.java +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/ProcessRockerTemplatesTask.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.rocker.plugin; +package cloud.graal.gdk.rocker.plugin; import org.gradle.api.DefaultTask; import org.gradle.api.file.ConfigurableFileCollection; @@ -33,6 +33,7 @@ @CacheableTask public abstract class ProcessRockerTemplatesTask extends DefaultTask { + @InputFiles @PathSensitive(RELATIVE) public abstract ConfigurableFileCollection getTemplateDirs(); @@ -53,7 +54,7 @@ public void processTemplates() { var templates = getTemplateDirs().getFiles(); for (var templateDirectory : templates) { getWorkerExecutor().classLoaderIsolation(spec -> - spec.getClasspath().from(rockerClasspath) + spec.getClasspath().from(rockerClasspath) ).submit(RockerWorkAction.class, params -> { params.getTemplateDirectory().set(templateDirectory); params.getOutputDirectory().set(outputDirectory); diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerPlugin.java b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerPlugin.java similarity index 68% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerPlugin.java rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerPlugin.java index 253bb9f..5b0ff72 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerPlugin.java +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerPlugin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.rocker.plugin; +package cloud.graal.gdk.rocker.plugin; import org.gradle.api.Plugin; import org.gradle.api.Project; @@ -25,6 +25,7 @@ * Based on io.micronaut.starter.rocker.plugin.RockerPlugin. */ public class RockerPlugin implements Plugin { + @Override public void apply(Project project) { project.getPluginManager().apply(JavaPlugin.class); @@ -38,19 +39,19 @@ private static void processSourceSet(Project project, SourceSet sourceSet) { var taskName = sourceSet.getTaskName("generate", "RockerTemplateSource"); var rockerClasspath = project.getConfigurations().detachedConfiguration( - project.getDependencies().create("com.fizzed:rocker-compiler:" + RockerHelper.VERSION) + project.getDependencies().create("com.fizzed:rocker-compiler:" + RockerHelper.VERSION) ); var rockerTaskProvider = project.getTasks() - .register(taskName, ProcessRockerTemplatesTask.class, task -> { - task.setGroup("build"); - task.setDescription("Generate Sources from " + sourceSet.getName() + " Rocker Templates"); - task.getTemplateDirs().from(templateDirectorySet.getSrcDirs()); - task.getOutputDirectory().convention( - project.getLayout().getBuildDirectory() - .dir("generated/rocker/" + taskName) - ); - task.getRockerClasspath().from(rockerClasspath); - }); + .register(taskName, ProcessRockerTemplatesTask.class, task -> { + task.setGroup("build"); + task.setDescription("Generate Sources from " + sourceSet.getName() + " Rocker Templates"); + task.getTemplateDirs().from(templateDirectorySet.getSrcDirs()); + task.getOutputDirectory().convention( + project.getLayout().getBuildDirectory() + .dir("generated/rocker/" + taskName) + ); + task.getRockerClasspath().from(rockerClasspath); + }); sourceSet.getJava().srcDir(rockerTaskProvider); } diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerWorkAction.java b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerWorkAction.java similarity index 96% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerWorkAction.java rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerWorkAction.java index 7ccbea8..457e633 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/RockerWorkAction.java +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/RockerWorkAction.java @@ -14,13 +14,14 @@ * limitations under the License. */ -package cloud.graal.gcn.rocker.plugin; +package cloud.graal.gdk.rocker.plugin; import org.gradle.api.file.DirectoryProperty; import org.gradle.workers.WorkAction; import org.gradle.workers.WorkParameters; public abstract class RockerWorkAction implements WorkAction { + public interface Params extends WorkParameters { DirectoryProperty getTemplateDirectory(); DirectoryProperty getOutputDirectory(); diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/TemplateDirectorySet.groovy b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/TemplateDirectorySet.groovy similarity index 98% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/TemplateDirectorySet.groovy rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/TemplateDirectorySet.groovy index 2b344c2..2fc8449 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/rocker/plugin/TemplateDirectorySet.groovy +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/rocker/plugin/TemplateDirectorySet.groovy @@ -14,7 +14,7 @@ * limitations under the License. */ -package cloud.graal.gcn.rocker.plugin +package cloud.graal.gdk.rocker.plugin import groovy.transform.CompileStatic import org.gradle.api.Project diff --git a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/util/WriteVersionsTask.java b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/util/WriteVersionsTask.java similarity index 55% rename from gcn/buildSrc/src/main/groovy/cloud/graal/gcn/util/WriteVersionsTask.java rename to gdk/buildSrc/src/main/groovy/cloud/graal/gdk/util/WriteVersionsTask.java index e06ff95..169098d 100644 --- a/gcn/buildSrc/src/main/groovy/cloud/graal/gcn/util/WriteVersionsTask.java +++ b/gdk/buildSrc/src/main/groovy/cloud/graal/gdk/util/WriteVersionsTask.java @@ -1,4 +1,19 @@ -package cloud.graal.gcn.util; +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 cloud.graal.gdk.util; import org.gradle.api.DefaultTask; import org.gradle.api.file.DirectoryProperty; @@ -13,6 +28,7 @@ import java.util.Map; public abstract class WriteVersionsTask extends DefaultTask { + @Input public abstract MapProperty getVersions(); @@ -26,12 +42,11 @@ public void generateVersionFile() throws IOException { var fileName = entry.getKey(); var version = entry.getValue(); var outputFile = getOutputDirectory() - .getAsFile() - .get() - .toPath() - .resolve(fileName); + .getAsFile() + .get() + .toPath() + .resolve(fileName); Files.write(outputFile, List.of(version)); } - } } diff --git a/gcn/buildSrc/src/main/groovy/gcn-base.gradle b/gdk/buildSrc/src/main/groovy/gdk-base.gradle similarity index 99% rename from gcn/buildSrc/src/main/groovy/gcn-base.gradle rename to gdk/buildSrc/src/main/groovy/gdk-base.gradle index 3501911..a6ab71e 100644 --- a/gcn/buildSrc/src/main/groovy/gcn-base.gradle +++ b/gdk/buildSrc/src/main/groovy/gdk-base.gradle @@ -19,7 +19,7 @@ plugins { id 'maven-publish' } -group = 'gcn' +group = 'gdk' repositories { maven { diff --git a/gdk/buildSrc/src/main/groovy/gdk-dependencies.gradle b/gdk/buildSrc/src/main/groovy/gdk-dependencies.gradle new file mode 100644 index 0000000..e857683 --- /dev/null +++ b/gdk/buildSrc/src/main/groovy/gdk-dependencies.gradle @@ -0,0 +1,27 @@ +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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. + */ + +plugins { + id 'java' +} + +def generateDependencyUtils = tasks.register("generateDependencyUtils", cloud.graal.gdk.dependencies.DependenciesSourceGenerator) { + packageName = "cloud.graal.gdk.build.dependencies" + outputDirectory = layout.buildDirectory.dir("generated-sources/dependencies") + versionCatalog = project.extensions.getByType(VersionCatalogsExtension).named("templateLibs") +} + +sourceSets.main.java.srcDir(generateDependencyUtils) diff --git a/gcn/buildSrc/src/main/groovy/gcn-module.gradle b/gdk/buildSrc/src/main/groovy/gdk-module.gradle similarity index 92% rename from gcn/buildSrc/src/main/groovy/gcn-module.gradle rename to gdk/buildSrc/src/main/groovy/gdk-module.gradle index 1f5a39c..4146a44 100644 --- a/gcn/buildSrc/src/main/groovy/gcn-module.gradle +++ b/gdk/buildSrc/src/main/groovy/gdk-module.gradle @@ -15,7 +15,7 @@ */ plugins { - id 'gcn-base' + id 'gdk-base' id 'checkstyle' id 'com.diffplug.spotless' } @@ -24,7 +24,7 @@ spotless { java { licenseHeaderFile rootProject.file('config/spotless.license.java') target 'src/main/java/**' - targetExclude '**/*.rocker.raw', '**/GcnBaseCommand.java', '**/GcnStarter.java' + targetExclude '**/*.rocker.raw', '**/GdkBaseCommand.java', '**/GdkStarter.java' } format 'javaMisc', { target 'src/main/**/package-info.java', 'src/main/**/module-info.java' diff --git a/gcn/config/checkstyle/checkstyle.xml b/gdk/config/checkstyle/checkstyle.xml similarity index 100% rename from gcn/config/checkstyle/checkstyle.xml rename to gdk/config/checkstyle/checkstyle.xml diff --git a/gcn/config/checkstyle/suppressions.xml b/gdk/config/checkstyle/suppressions.xml similarity index 100% rename from gcn/config/checkstyle/suppressions.xml rename to gdk/config/checkstyle/suppressions.xml diff --git a/gcn/config/spotless.license.java b/gdk/config/spotless.license.java similarity index 100% rename from gcn/config/spotless.license.java rename to gdk/config/spotless.license.java diff --git a/gcn/gcn-cli/README.adoc b/gdk/gdk-cli/README.adoc similarity index 57% rename from gcn/gcn-cli/README.adoc rename to gdk/gdk-cli/README.adoc index 33c61f2..9cb3662 100644 --- a/gcn/gcn-cli/README.adoc +++ b/gdk/gdk-cli/README.adoc @@ -1,19 +1,19 @@ -= gcn-cli += gdk-cli -This submodule generates the GCN CLI application which is compiled to a native executable `gcn`, which works similarly to the Micronaut `mn` CLI with the addition of being able to generate GCN applications by specifying clouds and services. +This submodule generates the GDK CLI application which is compiled to a native executable `gdk`, which works similarly to the Micronaut `mn` CLI with the addition of being able to generate GDK applications by specifying clouds and services. -== GcnStarter +== GdkStarter -The main class is `GcnStarter` which defines the "core" command and the 3 subcommands "create-app" (`GcnCreateAppCommand`), "create-function" (`GcnCreateFunctionCommand`), and "create-gateway-function" (`GcnCreateGatewayFunctionCommand`). +The main class is `GdkStarter` which defines the "core" command and the 3 subcommands "create-app" (`GdkCreateAppCommand`), "create-function" (`GdkCreateFunctionCommand`), and "create-gateway-function" (`GdkCreateGatewayFunctionCommand`). -When you run the application and provide valid arguments, the `ProjectGenerator` bean (`GcnProjectGenerator`) creates the applications or functions. These are generated as a multi-module project with the core library "lib" and one module for each selected cloud. +When you run the application and provide valid arguments, the `ProjectGenerator` bean (`GdkProjectGenerator`) creates the applications or functions. These are generated as a multi-module project with the core library "lib" and one module for each selected cloud. == Generating projects There are a few ways to generate a project. -* Run `./gradlew clean assemble` from the project root to build the jars in each submodule's `build/libs` directory. Then run `java -jar path/to/gcn/gcn-cli/build/libs/gcn-cli--all.jar create-app com.example.demo --services=... --clouds=... --features=...` passing any features and clouds or other args +* Run `./gradlew clean assemble` from the project root to build the jars in each submodule's `build/libs` directory. Then run `java -jar path/to/gdk/gdk-cli/build/libs/gdk-cli--all.jar create-app com.example.demo --services=... --clouds=... --features=...` passing any features and clouds or other args -* Run `./gradlew clean :gcn-cli:nativeCompile` from the project root to build a native executable in `build/native/nativeCompile`, then run `path/to/gcn/gcn-cli/build/native/nativeCompile/gcn create-app com.example.demo --services=... --clouds=... --features=...` passing any features and clouds or other args +* Run `./gradlew clean :gdk-cli:nativeCompile` from the project root to build a native executable in `build/native/nativeCompile`, then run `path/to/gdk/gdk-cli/build/native/nativeCompile/gdk create-app com.example.demo --services=... --clouds=... --features=...` passing any features and clouds or other args -* Run in IntelliJ by creating a Micronaut run configuration with `Main class` `cloud.graal.gcn.GcnStarter`. Set the `Working directory` to the location where you want to generate the project, and specify the command and args in the `Program arguments` field, e.g., `create-app com.example.demo --services=... --clouds=... --features=...` +* Run in IntelliJ by creating a Micronaut run configuration with `Main class` `cloud.graal.gdk.GdkStarter`. Set the `Working directory` to the location where you want to generate the project, and specify the command and args in the `Program arguments` field, e.g., `create-app com.example.demo --services=... --clouds=... --features=...` diff --git a/gcn/gcn-cli/build.gradle b/gdk/gdk-cli/build.gradle similarity index 93% rename from gcn/gcn-cli/build.gradle rename to gdk/gdk-cli/build.gradle index 7cc01f3..5320a76 100644 --- a/gcn/gcn-cli/build.gradle +++ b/gdk/gdk-cli/build.gradle @@ -15,7 +15,7 @@ */ plugins { - id 'gcn-module' + id 'gdk-module' id 'io.micronaut.application' id 'com.github.johnrengelman.shadow' } @@ -56,7 +56,7 @@ dependencies { implementation mnLibs.micronaut.picocli implementation mnLibs.micronaut.validation implementation mnLibs.picocli - implementation projects.gcnCore + implementation projects.gdkCore } configurations.all { @@ -64,27 +64,27 @@ configurations.all { } application { - mainClass.set 'cloud.graal.gcn.GcnStarter' + mainClass.set 'cloud.graal.gdk.GdkStarter' } micronaut { version libs.micronaut.starter.api.get().version processing { incremental true - annotations 'cloud.graal.gcn.*' + annotations 'cloud.graal.gdk.*' } } graalvmNative { binaries { main { - imageName.set 'gcn' + imageName.set 'gdk' } } } startScripts { - applicationName = 'gcn' + applicationName = 'gdk' } tasks.named('shadowJar') { diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/GcnStarter.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/GdkStarter.java similarity index 83% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/GcnStarter.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/GdkStarter.java index fd79a3a..8ab8eec 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/GcnStarter.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/GdkStarter.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; -import cloud.graal.gcn.command.GcnBaseCommand; -import cloud.graal.gcn.command.GcnCommonOptionsMixin; -import cloud.graal.gcn.command.GcnCreateAppCommand; -import cloud.graal.gcn.command.GcnCreateFunctionCommand; -import cloud.graal.gcn.command.GcnCreateGatewayFunctionCommand; +import cloud.graal.gdk.command.GdkBaseCommand; +import cloud.graal.gdk.command.GdkCommonOptionsMixin; +import cloud.graal.gdk.command.GdkCreateAppCommand; +import cloud.graal.gdk.command.GdkCreateFunctionCommand; +import cloud.graal.gdk.command.GdkCreateGatewayFunctionCommand; import io.micronaut.context.ApplicationContext; import io.micronaut.context.BeanContext; import io.micronaut.context.annotation.Prototype; @@ -47,13 +47,13 @@ /** * The main class for the library. Starts an interactive shell if passed no * arguments, otherwise instantiates the requested command class - * (GcnCreateAppCommand / GcnCreateFunctionCommand / GcnCreateGatewayFunctionCommand) + * (GdkCreateAppCommand / GdkCreateFunctionCommand / GdkCreateGatewayFunctionCommand) * and attempts to generate an application. *

* Based on io.micronaut.starter.cli.MicronautStarter. */ -@Command(name = "gcn", description = { - "GCN CLI command line interface for generating projects and services.", +@Command(name = "gdk", description = { + "GDK CLI command line interface for generating projects and services.", "Application generation commands are:", "", "* @|bold create-app|@ @|yellow NAME|@", @@ -63,29 +63,29 @@ optionListHeading = "%n@|bold,underline Options:|@%n", commandListHeading = "%n@|bold,underline Commands:|@%n", subcommands = { - GcnCreateAppCommand.class, - GcnCreateFunctionCommand.class, - GcnCreateGatewayFunctionCommand.class + GdkCreateAppCommand.class, + GdkCreateFunctionCommand.class, + GdkCreateGatewayFunctionCommand.class }) @TypeHint({ - GcnStarter.class, + GdkStarter.class, LanguageCandidates.class, LanguageConverter.class, BuildToolCandidates.class, BuildToolConverter.class, - GcnCommonOptionsMixin.class, + GdkCommonOptionsMixin.class, TestFrameworkCandidates.class, TestFrameworkConverter.class, AcmeServerOption.class }) @Prototype -public class GcnStarter extends GcnBaseCommand { +public class GdkStarter extends GdkBaseCommand { // TODO disable commands create-test / create-command / feature-diff / create-bean / create-job private static boolean interactiveShell = false; private static final BiFunction EXCEPTION_HANDLER = (e, commandLine) -> { - GcnBaseCommand command = commandLine.getCommand(); + GdkBaseCommand command = commandLine.getCommand(); command.err(e.getMessage()); if (command.showStacktrace()) { e.printStackTrace(commandLine.getErr()); @@ -101,7 +101,7 @@ public class GcnStarter extends GcnBaseCommand { * @param args args */ public static void main(String[] args) { - GcnUtils.configureJdkVersions(); + GdkUtils.configureJdkVersions(); if (args.length == 0) { // The first command line isn't technically in the shell yet so this is called before setting the static flag startShell(); @@ -111,7 +111,7 @@ public static void main(String[] args) { } private static CommandLine createCommandLine() { - boolean noOpConsole = GcnStarter.interactiveShell; + boolean noOpConsole = GdkStarter.interactiveShell; try (BeanContext beanContext = ApplicationContext.builder().deduceEnvironment(false).start()) { return createCommandLine(beanContext, noOpConsole); } @@ -125,7 +125,7 @@ private static int execute(String[] args) { } private static CommandLine createCommandLine(BeanContext beanContext, boolean noOpConsole) { - GcnStarter starter = beanContext.getBean(GcnStarter.class); + GdkStarter starter = beanContext.getBean(GdkStarter.class); CommandLine commandLine = new CommandLine(starter, new MicronautFactory(beanContext)); commandLine.setExecutionExceptionHandler((ex, commandLine1, parseResult) -> EXCEPTION_HANDLER.apply(ex, commandLine1)); commandLine.setUsageHelpWidth(100); @@ -144,8 +144,8 @@ private static CommandLine createCommandLine(BeanContext beanContext, boolean no private static void startShell() { CommandLine commandLine = createCommandLine(); - GcnStarter.interactiveShell = true; - new InteractiveShell(commandLine, GcnStarter::execute, EXCEPTION_HANDLER, "@|blue gcn>|@ ").start(); + GdkStarter.interactiveShell = true; + new InteractiveShell(commandLine, GdkStarter::execute, EXCEPTION_HANDLER, "@|blue gdk>|@ ").start(); } @Override diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/CloudTypeConverter.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/CloudTypeConverter.java similarity index 75% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/CloudTypeConverter.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/CloudTypeConverter.java index 5ec2521..7c3421f 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/CloudTypeConverter.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/CloudTypeConverter.java @@ -13,20 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import picocli.CommandLine.ITypeConverter; import picocli.CommandLine.TypeConversionException; /** - * Determines the GcnCloud for a selected cloud in the CLI "--clouds" arg. + * Determines the GdkCloud for a selected cloud in the CLI "--clouds" arg. */ -public class CloudTypeConverter implements ITypeConverter { +public class CloudTypeConverter implements ITypeConverter { @Override - public GcnCloud convert(String value) { - for (GcnCloud cloud : GcnCloud.supportedValues()) { + public GdkCloud convert(String value) { + for (GdkCloud cloud : GdkCloud.supportedValues()) { if (cloud.name().equalsIgnoreCase(value)) { return cloud; } diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnBaseCommand.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkBaseCommand.java similarity index 94% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnBaseCommand.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkBaseCommand.java index ccbac01..5ce534d 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnBaseCommand.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkBaseCommand.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.annotation.Nullable; @@ -36,12 +36,12 @@ import static picocli.CommandLine.Help.Ansi.AUTO; /** - * Base class for all GCN Picocli command classes. + * Base class for all GDK Picocli command classes. * Based on io.micronaut.starter.cli.command.BaseCommand. * * @since 1.0.0 */ -public abstract class GcnBaseCommand implements ConsoleOutput, Callable { +public abstract class GdkBaseCommand implements ConsoleOutput, Callable { /** * Command spec. @@ -55,7 +55,7 @@ public abstract class GcnBaseCommand implements ConsoleOutput, Callable */ @Mixin @ReflectiveAccess - protected final GcnCommonOptionsMixin commonOptions = new GcnCommonOptionsMixin(); + protected final GdkCommonOptionsMixin commonOptions = new GdkCommonOptionsMixin(); @Override public void out(String message) { diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCommonOptionsMixin.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCommonOptionsMixin.java similarity index 84% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCommonOptionsMixin.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCommonOptionsMixin.java index 1e2e15c..2db2118 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCommonOptionsMixin.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCommonOptionsMixin.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.GcnUtils; +import cloud.graal.gdk.GdkUtils; import io.micronaut.core.annotation.ReflectiveAccess; import picocli.CommandLine.Command; import picocli.CommandLine.IVersionProvider; @@ -25,9 +25,9 @@ * Mixin for common options across commands. */ @Command(mixinStandardHelpOptions = true, - versionProvider = GcnCommonOptionsMixin.GcnVersionProvider.class) + versionProvider = GdkCommonOptionsMixin.GdkVersionProvider.class) @SuppressWarnings("checkstyle:VisibilityModifier") -public class GcnCommonOptionsMixin { +public class GdkCommonOptionsMixin { /** * Whether to show full stack trace when exceptions occur. @@ -48,9 +48,9 @@ public class GcnCommonOptionsMixin { /** * Generates a version description. */ - public static class GcnVersionProvider implements IVersionProvider { + public static class GdkVersionProvider implements IVersionProvider { public String[] getVersion() { - return new String[]{"GCN Version: " + GcnUtils.getVersion()}; + return new String[]{"GDK Version: " + GdkUtils.getVersion()}; } } } diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateAppCommand.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateAppCommand.java similarity index 76% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateAppCommand.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateAppCommand.java index ce0ecdf..89b8ef2 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateAppCommand.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateAppCommand.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.GcnProjectCreator; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.GdkProjectCreator; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.context.annotation.Prototype; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.io.OutputHandler; import picocli.CommandLine.Command; -import static cloud.graal.gcn.model.GcnProjectType.APPLICATION; +import static cloud.graal.gdk.model.GdkProjectType.APPLICATION; /** * The command class for "create-app". @@ -31,15 +31,15 @@ */ @Command(name = "create-app", description = "Creates an application") @Prototype -public class GcnCreateAppCommand extends GcnCreateCommand { +public class GdkCreateAppCommand extends GdkCreateCommand { - GcnCreateAppCommand(GcnProjectCreator projectCreator, + GdkCreateAppCommand(GdkProjectCreator projectCreator, @Nullable OutputHandler outputHandler) { super(projectCreator, outputHandler); } @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return APPLICATION; } } diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateCommand.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateCommand.java similarity index 89% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateCommand.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateCommand.java index b3eb568..aa59848 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateCommand.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateCommand.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; - -import cloud.graal.gcn.GcnProjectCreator; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnCloud.AvailableClouds; -import cloud.graal.gcn.model.GcnProjectType; -import cloud.graal.gcn.model.GcnService; -import cloud.graal.gcn.model.GcnService.AvailableServices; +package cloud.graal.gdk.command; + +import cloud.graal.gdk.GdkProjectCreator; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.model.GdkCloud.AvailableClouds; +import cloud.graal.gdk.model.GdkProjectType; +import cloud.graal.gdk.model.GdkService; +import cloud.graal.gdk.model.GdkService.AvailableServices; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.annotation.Nullable; import io.micronaut.core.annotation.ReflectiveAccess; @@ -47,14 +47,14 @@ import java.util.List; import java.util.Map; -import static cloud.graal.gcn.GcnGeneratorContext.EXAMPLE_CODE; +import static cloud.graal.gdk.GdkGeneratorContext.EXAMPLE_CODE; /** * Abstract base class for the "create" commands. * * @since 1.0.0 */ -public abstract class GcnCreateCommand extends GcnBaseCommand { +public abstract class GdkCreateCommand extends GdkBaseCommand { /** * Project name. @@ -105,7 +105,7 @@ public abstract class GcnCreateCommand extends GcnBaseCommand { description = "The supported cloud providers. Possible values: ${COMPLETION-CANDIDATES}", completionCandidates = AvailableClouds.class, converter = CloudTypeConverter.class) @ReflectiveAccess - protected List clouds = new ArrayList<>(); + protected List clouds = new ArrayList<>(); /** * Selected services. @@ -114,7 +114,7 @@ public abstract class GcnCreateCommand extends GcnBaseCommand { description = "The supported services. Possible values: ${COMPLETION-CANDIDATES}", completionCandidates = AvailableServices.class, converter = ServiceTypeConverter.class) @ReflectiveAccess - protected List services = new ArrayList<>(); + protected List services = new ArrayList<>(); /** * Selected feature names. @@ -135,7 +135,7 @@ public abstract class GcnCreateCommand extends GcnBaseCommand { /** * Project creator. */ - protected final GcnProjectCreator projectCreator; + protected final GdkProjectCreator projectCreator; /** * Output handler. @@ -146,7 +146,7 @@ public abstract class GcnCreateCommand extends GcnBaseCommand { * @param projectCreator project creator * @param outputHandler output handler */ - protected GcnCreateCommand(GcnProjectCreator projectCreator, + protected GdkCreateCommand(GdkProjectCreator projectCreator, @Nullable OutputHandler outputHandler) { this.outputHandler = outputHandler; this.projectCreator = projectCreator; @@ -184,7 +184,7 @@ public Integer call() throws Exception { /** * @return the project type */ - public abstract GcnProjectType getProjectType(); + public abstract GdkProjectType getProjectType(); /** * @param project the project diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateFunctionCommand.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateFunctionCommand.java similarity index 76% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateFunctionCommand.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateFunctionCommand.java index 07f5804..97971f4 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateFunctionCommand.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateFunctionCommand.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.GcnProjectCreator; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.GdkProjectCreator; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.context.annotation.Prototype; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.io.OutputHandler; import picocli.CommandLine.Command; -import static cloud.graal.gcn.model.GcnProjectType.FUNCTION; +import static cloud.graal.gdk.model.GdkProjectType.FUNCTION; /** * The command class for "create-function". @@ -31,15 +31,15 @@ */ @Command(name = "create-function", description = "Creates a Cloud Function") @Prototype -public class GcnCreateFunctionCommand extends GcnCreateCommand { +public class GdkCreateFunctionCommand extends GdkCreateCommand { - GcnCreateFunctionCommand(GcnProjectCreator projectCreator, + GdkCreateFunctionCommand(GdkProjectCreator projectCreator, @Nullable OutputHandler outputHandler) { super(projectCreator, outputHandler); } @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return FUNCTION; } } diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateGatewayFunctionCommand.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateGatewayFunctionCommand.java similarity index 76% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateGatewayFunctionCommand.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateGatewayFunctionCommand.java index 1d2a8a3..84e014d 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/GcnCreateGatewayFunctionCommand.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/GdkCreateGatewayFunctionCommand.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.GcnProjectCreator; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.GdkProjectCreator; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.context.annotation.Prototype; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.io.OutputHandler; import picocli.CommandLine.Command; -import static cloud.graal.gcn.model.GcnProjectType.GATEWAY_FUNCTION; +import static cloud.graal.gdk.model.GdkProjectType.GATEWAY_FUNCTION; /** * The command class for "create-gateway-function". @@ -31,15 +31,15 @@ */ @Command(name = "create-gateway-function", description = "Creates a Gateway Cloud Function") @Prototype -public class GcnCreateGatewayFunctionCommand extends GcnCreateCommand { +public class GdkCreateGatewayFunctionCommand extends GdkCreateCommand { - GcnCreateGatewayFunctionCommand(GcnProjectCreator projectCreator, + GdkCreateGatewayFunctionCommand(GdkProjectCreator projectCreator, @Nullable OutputHandler outputHandler) { super(projectCreator, outputHandler); } @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return GATEWAY_FUNCTION; } } diff --git a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/ServiceTypeConverter.java b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/ServiceTypeConverter.java similarity index 75% rename from gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/ServiceTypeConverter.java rename to gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/ServiceTypeConverter.java index 7bb4a33..103c660 100644 --- a/gcn/gcn-cli/src/main/java/cloud/graal/gcn/command/ServiceTypeConverter.java +++ b/gdk/gdk-cli/src/main/java/cloud/graal/gdk/command/ServiceTypeConverter.java @@ -13,20 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.command; +package cloud.graal.gdk.command; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.model.GdkService; import picocli.CommandLine.ITypeConverter; import picocli.CommandLine.TypeConversionException; /** - * Determines the GcnService for a selected service in the CLI "--services" arg. + * Determines the GdkService for a selected service in the CLI "--services" arg. */ -public class ServiceTypeConverter implements ITypeConverter { +public class ServiceTypeConverter implements ITypeConverter { @Override - public GcnService convert(String value) { - for (GcnService service : GcnService.supportedValues()) { + public GdkService convert(String value) { + for (GdkService service : GdkService.supportedValues()) { if (service.name().equalsIgnoreCase(value)) { return service; } diff --git a/gcn/gcn-cli/src/main/resources/application.yml b/gdk/gdk-cli/src/main/resources/application.yml similarity index 97% rename from gcn/gcn-cli/src/main/resources/application.yml rename to gdk/gdk-cli/src/main/resources/application.yml index 3b93bb1..cd79b2d 100644 --- a/gcn/gcn-cli/src/main/resources/application.yml +++ b/gdk/gdk-cli/src/main/resources/application.yml @@ -14,4 +14,4 @@ micronaut: application: - name: gcn + name: gdk diff --git a/gcn/gcn-cli/src/main/resources/logback.xml b/gdk/gdk-cli/src/main/resources/logback.xml similarity index 100% rename from gcn/gcn-cli/src/main/resources/logback.xml rename to gdk/gdk-cli/src/main/resources/logback.xml diff --git a/gdk/gdk-cli/src/main/resources/micronaut-starter-cli/native-image.properties b/gdk/gdk-cli/src/main/resources/micronaut-starter-cli/native-image.properties new file mode 100644 index 0000000..9fb40a7 --- /dev/null +++ b/gdk/gdk-cli/src/main/resources/micronaut-starter-cli/native-image.properties @@ -0,0 +1,2 @@ +Args = -H:Name=gdk \ + -H:Class=cloud.graal.gdk.GdkStarter diff --git a/gcn/gcn-cli/src/main/resources/micronaut-starter-cli/resource-config.json b/gdk/gdk-cli/src/main/resources/micronaut-starter-cli/resource-config.json similarity index 100% rename from gcn/gcn-cli/src/main/resources/micronaut-starter-cli/resource-config.json rename to gdk/gdk-cli/src/main/resources/micronaut-starter-cli/resource-config.json diff --git a/gcn/gcn-cli/src/main/resources/org/fusesource/jansi/jansi.properties b/gdk/gdk-cli/src/main/resources/org/fusesource/jansi/jansi.properties similarity index 100% rename from gcn/gcn-cli/src/main/resources/org/fusesource/jansi/jansi.properties rename to gdk/gdk-cli/src/main/resources/org/fusesource/jansi/jansi.properties diff --git a/gcn/gcn-core/README.adoc b/gdk/gdk-core/README.adoc similarity index 77% rename from gcn/gcn-core/README.adoc rename to gdk/gdk-core/README.adoc index 262b148..e7a4c97 100644 --- a/gcn/gcn-core/README.adoc +++ b/gdk/gdk-core/README.adoc @@ -1,37 +1,37 @@ -= gcn-core += gdk-core This is the core library used by the CLI and REST API. It primarily depends on the Micronaut `io.micronaut.starter:micronaut-starter-api` library. == Determining features -Most features are selectable, but "service" features (under package `cloud.graal.gcn.feature.service`) which represent Micronaut/Oracle supported features will replace standard features to add additional GCN functionality. +Most features are selectable, but "service" features (under package `cloud.graal.gdk.feature.service`) which represent Micronaut/Oracle supported features will replace standard features to add additional GDK functionality. -In addition, when users choose clouds, there are "create" features (under package `cloud.graal.gcn.feature.create`) that represent those and add functionality to the cloud-specific project modules. +In addition, when users choose clouds, there are "create" features (under package `cloud.graal.gdk.feature.create`) that represent those and add functionality to the cloud-specific project modules. -There is a "create" feature for each combination of cloud and project type, e.g., `GcnAwsCloudApp` for `create-app` with AWS or `GcnGcpCloudFunction` for `create-function` with GCP. +There is a "create" feature for each combination of cloud and project type, e.g., `GdkAwsCloudApp` for `create-app` with AWS or `GdkGcpCloudFunction` for `create-function` with GCP. There is a "service" feature for each combination of cloud and service type, e.g., `OciEmail` for OCI and email or `AzureStreaming` for Azure and streaming. -Based on the user's selection of clouds and services, the corresponding GCN "create" and "service" features are added to the collection of user-selected features for generating the apps. +Based on the user's selection of clouds and services, the corresponding GDK "create" and "service" features are added to the collection of user-selected features for generating the apps. -The "create" features build an application or function for the corresponding cloud. Most of the work will be in the base class (e.g., `AbstractGcnCloudApp`) with any required cloud-specific customizations being done in the feature class. +The "create" features build an application or function for the corresponding cloud. Most of the work will be in the base class (e.g., `AbstractGdkCloudApp`) with any required cloud-specific customizations being done in the feature class. The "create" features are only responsible for generating content that's not related to any selected services. The "service" features handle those changes. Generally the "service" features delegate to existing micronaut-starter features. For example `OciSecretManagement` currently just dependency-injects the `io.micronaut.starter.feature.oraclecloud.OracleCloudVault` feature (which is what's selected in starter if you select `oracle-cloud-secretmanagement`) which does the real work. -== GcnProjectGenerator +== GdkProjectGenerator -The primary difference between `GcnProjectGenerator` and `io.micronaut.starter.application.generator.DefaultProjectGenerator` from micronaut-starter is the partitioning of work. Some support for multi-module builds was added recently to micronaut-starter to support AWS CDK, but most of the library still runs under the assumption that a single application will be created. +The primary difference between `GdkProjectGenerator` and `io.micronaut.starter.application.generator.DefaultProjectGenerator` from micronaut-starter is the partitioning of work. Some support for multi-module builds was added recently to micronaut-starter to support AWS CDK, but most of the library still runs under the assumption that a single application will be created. -`GcnGeneratorContext` helps with this partitioning. It extends the default `io.micronaut.starter.application.generator.GeneratorContext` and supports various states that determine which config settings and dependencies are "active". +`GdkGeneratorContext` helps with this partitioning. It extends the default `io.micronaut.starter.application.generator.GeneratorContext` and supports various states that determine which config settings and dependencies are "active". -Features make their changes when their `apply(GcnGeneratorContext)` method is called, and they make application or bootstrap config changes by calling `GeneratorContext.getConfiguration()` / `GeneratorContext.getBootstrapConfiguration()`, and register dependencies via `GeneratorContext.addDependency()`. +Features make their changes when their `apply(GdkGeneratorContext)` method is called, and they make application or bootstrap config changes by calling `GeneratorContext.getConfiguration()` / `GeneratorContext.getBootstrapConfiguration()`, and register dependencies via `GeneratorContext.addDependency()`. -`GcnProjectGenerator` sets the "cloud" to `NONE` initially when generating the "lib" module, then sets the "cloud" from each cloud module. This way `GcnGeneratorContext` knows which configuration or dependency context to use to separate out cloud-specific config and dependencies. +`GdkProjectGenerator` sets the "cloud" to `NONE` initially when generating the "lib" module, then sets the "cloud" from each cloud module. This way `GdkGeneratorContext` knows which configuration or dependency context to use to separate out cloud-specific config and dependencies. == Rocker templates -The project has support for Rocker templates to generate application source code and other files. Template files must end in `.rocker.raw` and can be in any package under `src/main/java`, but the current convention is to keep templates with the features that use them in a `template` folder, e.g., see the templates used by the "database" service in `src/main/java/cloud/graal/gcn/feature/service/database/template`. +The project has support for Rocker templates to generate application source code and other files. Template files must end in `.rocker.raw` and can be in any package under `src/main/java`, but the current convention is to keep templates with the features that use them in a `template` folder, e.g., see the templates used by the "database" service in `src/main/java/cloud/graal/gdk/feature/service/database/template`. The build is configured to regenerate Java source for the templates in `build/generated/rocker` before compiling; the generated Java source files are compiled with the main project source. diff --git a/gcn/gcn-core/build.gradle b/gdk/gdk-core/build.gradle similarity index 91% rename from gcn/gcn-core/build.gradle rename to gdk/gdk-core/build.gradle index 81d9ce5..95be116 100644 --- a/gcn/gcn-core/build.gradle +++ b/gdk/gdk-core/build.gradle @@ -15,9 +15,9 @@ */ plugins { - id 'gcn-module' - id 'gcn.rocker' - id 'gcn-dependencies' + id 'gdk-module' + id 'gdk.rocker' + id 'gdk-dependencies' id 'io.micronaut.library' } @@ -46,7 +46,7 @@ dependencies { implementation(mnLibs.micronaut.http.client) } -def writeVersions = tasks.register('writeVersions', cloud.graal.gcn.util.WriteVersionsTask) { +def writeVersions = tasks.register('writeVersions', cloud.graal.gdk.util.WriteVersionsTask) { versions.put('version.txt', System.getenv('CI_COMMIT_TAG') ? System.getenv('CI_COMMIT_TAG').substring(1) : providers.gradleProperty('version')) outputDirectory = layout.buildDirectory.dir('versions') } @@ -66,7 +66,7 @@ micronaut { version libs.micronaut.starter.api.get().version processing { incremental true - annotations 'cloud.graal.gcn.*' + annotations 'cloud.graal.gdk.*' } } @@ -76,9 +76,9 @@ javadoc { publishing { publications { - mavenGcnCore(MavenPublication) { - groupId = 'cloud.graal.gcn' - artifactId = 'gcn-core' + mavenGdkCore(MavenPublication) { + groupId = 'cloud.graal.gdk' + artifactId = 'gdk-core' from components.java } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnBuildProperties.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkBuildProperties.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnBuildProperties.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkBuildProperties.java index ed4fede..12049c5 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnBuildProperties.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkBuildProperties.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.starter.build.BuildProperties; import io.micronaut.starter.build.Comment; import io.micronaut.starter.build.Property; @@ -39,21 +39,21 @@ * * @since 1.0.0 */ -public class GcnBuildProperties extends BuildProperties { +public class GdkBuildProperties extends BuildProperties { private static final String EXEC_MAIN_CLASS = "exec.mainClass"; - private final Map> propertyMaps = new HashMap<>(); - private final GcnGeneratorContext generatorContext; + private final Map> propertyMaps = new HashMap<>(); + private final GdkGeneratorContext generatorContext; /** * @param generatorContext generator context * @param clouds selected clouds */ - public GcnBuildProperties(GcnGeneratorContext generatorContext, - Set clouds) { + public GdkBuildProperties(GdkGeneratorContext generatorContext, + Set clouds) { this.generatorContext = generatorContext; - for (GcnCloud cloud : clouds) { + for (GdkCloud cloud : clouds) { propertyMaps.put(cloud, new LinkedHashMap<>()); } } @@ -85,7 +85,7 @@ public List getProperties() { * @param cloud the cloud * @return properties for the specified cloud */ - public List getProperties(GcnCloud cloud) { + public List getProperties(GdkCloud cloud) { return new ArrayList<>(propertyMaps.get(cloud).values()).stream().sorted(Comparator.comparing(Property::getKey)). collect(Collectors.toList()); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnContextFactory.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkContextFactory.java similarity index 83% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnContextFactory.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkContextFactory.java index cbebc29..df66912 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnContextFactory.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkContextFactory.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; -import cloud.graal.gcn.feature.GcnFeature; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.feature.GdkFeature; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.application.ApplicationType; @@ -45,13 +45,13 @@ import java.util.stream.Collectors; /** - * Replaces the default ContextFactory to create GcnFeatureContext - * instead of FeatureContext and GcnGeneratorContext + * Replaces the default ContextFactory to create GdkFeatureContext + * instead of FeatureContext and GdkGeneratorContext * instead of GeneratorContext. */ @Singleton @Replaces(ContextFactory.class) -public class GcnContextFactory extends ContextFactory { +public class GdkContextFactory extends ContextFactory { private final FeatureValidator featureValidator; private final CoordinateResolver coordinateResolver; @@ -61,7 +61,7 @@ public class GcnContextFactory extends ContextFactory { * @param featureValidator FeatureValidator * @param coordinateResolver DefaultCoordinateResolver */ - public GcnContextFactory(FeatureValidator featureValidator, + public GdkContextFactory(FeatureValidator featureValidator, DefaultCoordinateResolver coordinateResolver, ProjectNameValidator projectNameValidator) { super(featureValidator, coordinateResolver, projectNameValidator); @@ -71,7 +71,7 @@ public GcnContextFactory(FeatureValidator featureValidator, } @Override - public GcnFeatureContext createFeatureContext(AvailableFeatures available, + public GdkFeatureContext createFeatureContext(AvailableFeatures available, List selectedNames, ApplicationType type, Options initialOptions, @@ -80,10 +80,10 @@ public GcnFeatureContext createFeatureContext(AvailableFeatures available, FeatureContext realContext = super.createFeatureContext(available, selectedNames, type, initialOptions, os); Options options = realContext.getOptions(); Set selectedAndDefaultFeatures = new HashSet<>(realContext.getSelectedFeatures()); - Set clouds = selectedAndDefaultFeatures.stream() - .filter(feature -> feature instanceof GcnFeature) - .map(GcnFeature.class::cast) - .map(GcnFeature::getCloud) + Set clouds = selectedAndDefaultFeatures.stream() + .filter(feature -> feature instanceof GdkFeature) + .map(GdkFeature.class::cast) + .map(GdkFeature::getCloud) .collect(Collectors.toSet()); available.getAllFeatures() @@ -91,10 +91,10 @@ public GcnFeatureContext createFeatureContext(AvailableFeatures available, .filter(f -> ((DefaultFeature) f).shouldApply(type, options, selectedAndDefaultFeatures)) .forEach(selectedAndDefaultFeatures::add); - return new GcnFeatureContext(options, type, os, selectedAndDefaultFeatures, selectedNames, clouds); + return new GdkFeatureContext(options, type, os, selectedAndDefaultFeatures, selectedNames, clouds); } - public GcnGeneratorContext createGeneratorContext(Project project, + public GdkGeneratorContext createGeneratorContext(Project project, FeatureContext featureContext, ConsoleOutput consoleOutput) { if (project != null) { @@ -110,9 +110,9 @@ public GcnGeneratorContext createGeneratorContext(Project project, List finalFeaturesList = new ArrayList<>(finalFeatures); finalFeaturesList.sort(Comparator.comparingInt(Feature::getOrder)); - return new GcnGeneratorContext( + return new GdkGeneratorContext( project, - (GcnFeatureContext) featureContext, + (GdkFeatureContext) featureContext, new LinkedHashSet<>(finalFeaturesList), coordinateResolver); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnGeneratorContext.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkGeneratorContext.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnGeneratorContext.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkGeneratorContext.java index bf50741..9415864 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnGeneratorContext.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkGeneratorContext.java @@ -13,15 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; - -import cloud.graal.gcn.build.dependencies.GcnDependencies; -import cloud.graal.gcn.feature.GcnFeature; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.GcnFeatures; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.template.GcnPropertiesTemplate; -import cloud.graal.gcn.template.TemplatePostProcessor; +package cloud.graal.gdk; + +import cloud.graal.gdk.build.dependencies.GdkDependencies; +import cloud.graal.gdk.feature.GdkFeature; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.GdkFeatures; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.template.GdkPropertiesTemplate; +import cloud.graal.gdk.template.TemplatePostProcessor; +import cloud.graal.gdk.feature.replaced.GdkJTE; import com.fizzed.rocker.RockerModel; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.util.StringUtils; @@ -49,6 +50,8 @@ import io.micronaut.starter.feature.config.BootstrapConfiguration; import io.micronaut.starter.feature.config.Configuration; import io.micronaut.starter.feature.database.DatabaseDriverFeature; +import io.micronaut.starter.feature.function.Cloud; +import io.micronaut.starter.feature.function.CloudFeature; import io.micronaut.starter.feature.function.awslambda.AwsLambda; import io.micronaut.starter.feature.lang.ApplicationRenderingContext; import io.micronaut.starter.feature.lang.groovy.GroovyApplicationRenderingContext; @@ -79,13 +82,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import static cloud.graal.gcn.GcnUtils.APP_MODULE; -import static cloud.graal.gcn.GcnUtils.BOM_VERSION_SUFFIX; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; -import static cloud.graal.gcn.feature.replaced.GcnJTE.JTE_GROUP_ID; -import static cloud.graal.gcn.feature.replaced.GcnJTE.JTE_NATIVE_RESOURCES; -import static cloud.graal.gcn.model.GcnCloud.AWS; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.context.env.Environment.DEVELOPMENT; import static io.micronaut.context.env.Environment.FUNCTION; import static io.micronaut.context.env.Environment.TEST; @@ -100,7 +98,7 @@ * * @since 1.0.0 */ -public class GcnGeneratorContext extends GeneratorContext { +public class GdkGeneratorContext extends GeneratorContext { /** * Additional options map key for the example code boolean. @@ -115,42 +113,49 @@ public class GcnGeneratorContext extends GeneratorContext { private static final String PLUGIN_GRADLE_AZUREFUNCTIONS = "com.microsoft.azure.azurefunctions"; private static final String PLUGIN_MAVEN_AZUREFUNCTIONS = "azure-functions-maven-plugin"; + private static final Map MICRONAUT_CLOUD_TO_GDK_CLOUD = Map.of( + Cloud.AWS, GdkCloud.AWS, + Cloud.GCP, GdkCloud.GCP, + Cloud.AZURE, GdkCloud.AZURE, + Cloud.ORACLE, GdkCloud.OCI + ); + private static final Map PLUGIN_GAVS = Map.ofEntries( gavMapEntry("com.github.johnrengelman.shadow", "com.github.johnrengelman:shadow", StarterCoordinates.SHADOW), - gavMapEntry("io.micronaut.application", "io.micronaut.gradle:micronaut-gradle-plugin", GcnDependencies.MICRONAUT_GRADLE_PLUGIN), - gavMapEntry("io.micronaut.library", "io.micronaut.gradle:micronaut-gradle-plugin", GcnDependencies.MICRONAUT_GRADLE_PLUGIN), - gavMapEntry("io.micronaut.test-resources", "io.micronaut.gradle:micronaut-test-resources-plugin", GcnDependencies.MICRONAUT_GRADLE_PLUGIN), + gavMapEntry("io.micronaut.application", "io.micronaut.gradle:micronaut-gradle-plugin", GdkDependencies.MICRONAUT_GRADLE_PLUGIN), + gavMapEntry("io.micronaut.library", "io.micronaut.gradle:micronaut-gradle-plugin", GdkDependencies.MICRONAUT_GRADLE_PLUGIN), + gavMapEntry("io.micronaut.test-resources", "io.micronaut.gradle:micronaut-test-resources-plugin", GdkDependencies.MICRONAUT_GRADLE_PLUGIN), gavMapEntry("org.jetbrains.kotlin.jvm", "org.jetbrains.kotlin:kotlin-gradle-plugin", StarterCoordinates.KOTLIN_GRADLE_PLUGIN), gavMapEntry("org.jetbrains.kotlin.kapt", "org.jetbrains.kotlin:kotlin-gradle-plugin", StarterCoordinates.KOTLIN_GRADLE_PLUGIN), gavMapEntry("org.jetbrains.kotlin.plugin.allopen", "org.jetbrains.kotlin:kotlin-allopen", StarterCoordinates.KOTLIN_GRADLE_PLUGIN), gavMapEntry("com.google.cloud.tools.jib", "com.google.cloud.tools.jib:com.google.cloud.tools.jib.gradle.plugin", StarterCoordinates.JIB_GRADLE_PLUGIN), - gavMapEntry("io.micronaut.aot", "io.micronaut.gradle:micronaut-aot-plugin", GcnDependencies.MICRONAUT_GRADLE_PLUGIN), + gavMapEntry("io.micronaut.aot", "io.micronaut.gradle:micronaut-aot-plugin", GdkDependencies.MICRONAUT_GRADLE_PLUGIN), gavMapEntry("com.google.devtools.ksp", "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", StarterCoordinates.COM_GOOGLE_DEVTOOLS_KSP_GRADLE_PLUGIN), gavMapEntry("gg.jte.gradle", "gg.jte:jte-gradle-plugin", StarterCoordinates.JTE_GRADLE_PLUGIN) ); - private static final ThreadLocal INSTANCE = new ThreadLocal<>(); + private static final ThreadLocal INSTANCE = new ThreadLocal<>(); - private GcnCloud cloud = NONE; + private GdkCloud cloud = NONE; private boolean hideLibFeatures; - private final Map applicationConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map cloudApplicationConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map bootstrapConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map cloudBootstrapConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map cloudDependencyContexts = new HashMap<>(GcnCloud.supportedValues().length); - private final Map cloudProjects = new HashMap<>(GcnCloud.supportedValues().length); - private final Map cloudFeatures; - private final Map> cloudApplicationEnvConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map> cloudBootstrapEnvConfigurations = new HashMap<>(GcnCloud.supportedValues().length); - private final Map> buildPlugins = new HashMap<>(); + private final Map applicationConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map cloudApplicationConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map bootstrapConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map cloudBootstrapConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map cloudDependencyContexts = new HashMap<>(GdkCloud.supportedValues().length); + private final Map cloudProjects = new HashMap<>(GdkCloud.supportedValues().length); + private final Map cloudFeatures; + private final Map> cloudApplicationEnvConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map> cloudBootstrapEnvConfigurations = new HashMap<>(GdkCloud.supportedValues().length); + private final Map> buildPlugins = new HashMap<>(); private final Map> postProcessors = new HashMap<>(); private final Map> regexPostProcessors = new HashMap<>(); private final Set presentTemplatePaths = new HashSet<>(); private final CoordinateResolver coordinateResolver; - private final GcnFeatureContext featureContext; + private final GdkFeatureContext featureContext; private final boolean generateExampleCode; - private final Set clouds; - private final GcnBuildProperties buildProperties; + private final Set clouds; + private final GdkBuildProperties buildProperties; /** * @param project the project @@ -158,8 +163,8 @@ public class GcnGeneratorContext extends GeneratorContext { * @param features all features, including selected, default, and added * @param coordinateResolver dependency coordinate resolver */ - public GcnGeneratorContext(Project project, - GcnFeatureContext featureContext, + public GdkGeneratorContext(Project project, + GdkFeatureContext featureContext, Set features, CoordinateResolver coordinateResolver) { super(project, featureContext.getApplicationType(), featureContext.getOptions(), @@ -172,12 +177,12 @@ public GcnGeneratorContext(Project project, String key = featureContext.getOptions().getBuildTool().isGradle() ? "micronautVersion" : "micronaut.version"; clouds = new HashSet<>(cloudFeatures.keySet()); clouds.add(NONE); // for lib module - buildProperties = new GcnBuildProperties(this, clouds); - buildProperties.put(key, GcnUtils.getMicronautVersion() + BOM_VERSION_SUFFIX); + buildProperties = new GdkBuildProperties(this, clouds); + buildProperties.put(key, GdkUtils.getMicronautVersion() + GdkUtils.BOM_VERSION_SUFFIX); if (!featureContext.getBuildTool().isGradle()) { - buildProperties.put("micronaut-maven-plugin.version", GcnDependencies.MICRONAUT_MAVEN_PLUGIN.getVersion()); - buildProperties.put("micronaut.test.resources.version", GcnDependencies.MICRONAUT_TEST_RESOURCES_CORE.getVersion()); + buildProperties.put("micronaut-maven-plugin.version", GdkDependencies.MICRONAUT_MAVEN_PLUGIN.getVersion()); + buildProperties.put("micronaut.test.resources.version", GdkDependencies.MICRONAUT_TEST_RESOURCES_CORE.getVersion()); } INSTANCE.set(this); @@ -186,7 +191,7 @@ public GcnGeneratorContext(Project project, /** * @return the current instance */ - public static GcnGeneratorContext getInstance() { + public static GdkGeneratorContext getInstance() { return INSTANCE.get(); } @@ -195,20 +200,20 @@ private static Map.Entry gavMapEntry(String keyStart, String val return Map.entry(keyStart + ':' + coordinate.getVersion(), valueStart + ':' + coordinate.getVersion()); } - private static Map splitFeatures(Set allFeatures, - GcnFeatureContext featureContext, - GcnGeneratorContext self) { - Map> featuresByCloud = new HashMap<>(GcnCloud.supportedValues().length); + private static Map splitFeatures(Set allFeatures, + GdkFeatureContext featureContext, + GdkGeneratorContext self) { + Map> featuresByCloud = new HashMap<>(GdkCloud.supportedValues().length); ApplicationFeature applicationFeature = null; DatabaseDriverFeature databaseDriverFeature = null; Set defaultFeatures = new HashSet<>(); Set specifiedFeatures = new HashSet<>(); - Collection initialClouds = new HashSet<>(); + Collection initialClouds = new HashSet<>(); for (Feature feature : allFeatures) { - if (feature instanceof GcnFeature) { - initialClouds.add(((GcnFeature) feature).getCloud()); + if (feature instanceof GdkFeature) { + initialClouds.add(((GdkFeature) feature).getCloud()); } } @@ -225,10 +230,14 @@ private static Map splitFeatures(Set allFeatures !(feature instanceof BuildFeature)) { defaultFeatures.add(feature); } - if (feature instanceof GcnFeature) { - GcnCloud cloud = ((GcnFeature) feature).getCloud(); + if (feature instanceof GdkFeature) { + GdkCloud cloud = ((GdkFeature) feature).getCloud(); featuresByCloud.computeIfAbsent(cloud, k -> new HashSet<>()).add(feature); } else { + if (feature instanceof CloudFeature cloudFeature && initialClouds.contains(MICRONAUT_CLOUD_TO_GDK_CLOUD.get(cloudFeature.getCloud()))) { + featuresByCloud.computeIfAbsent(MICRONAUT_CLOUD_TO_GDK_CLOUD.get(cloudFeature.getCloud()), k -> new HashSet<>()).add(feature); + } + if (applicationFeature == null && feature instanceof ApplicationFeature) { applicationFeature = (ApplicationFeature) feature; } @@ -240,7 +249,7 @@ private static Map splitFeatures(Set allFeatures specifiedFeatures.add(feature); } - for (GcnCloud cloud : featureContext.getAddedFeatureClouds(feature)) { + for (GdkCloud cloud : featureContext.getAddedFeatureClouds(feature)) { featuresByCloud.computeIfAbsent(cloud, k -> new HashSet<>()).add(feature); } } @@ -260,11 +269,11 @@ private static Map splitFeatures(Set allFeatures } } - Map split = new HashMap<>(featuresByCloud.size()); - for (Map.Entry> entry : featuresByCloud.entrySet()) { + Map split = new HashMap<>(featuresByCloud.size()); + for (Map.Entry> entry : featuresByCloud.entrySet()) { List finalFeaturesList = new ArrayList<>(entry.getValue()); finalFeaturesList.sort(Comparator.comparingInt(Feature::getOrder)); - split.put(entry.getKey(), new GcnFeatures(self, new LinkedHashSet<>(finalFeaturesList), featureContext.getOptions())); + split.put(entry.getKey(), new GdkFeatures(self, new LinkedHashSet<>(finalFeaturesList), featureContext.getOptions())); } return split; @@ -275,7 +284,7 @@ private static Map splitFeatures(Set allFeatures * * @param cloud the cloud */ - public void setCloud(GcnCloud cloud) { + public void setCloud(GdkCloud cloud) { this.cloud = cloud; if (cloud != NONE) { applicationConfigurations.putIfAbsent(cloud, new ApplicationConfiguration(cloud.getModuleName())); @@ -283,7 +292,7 @@ public void setCloud(GcnCloud cloud) { bootstrapConfigurations.putIfAbsent(cloud, new BootstrapConfiguration(cloud.getModuleName())); cloudBootstrapConfigurations.putIfAbsent(cloud, new BootstrapConfiguration(cloud.getModuleName())); cloudDependencyContexts.putIfAbsent(cloud, new DependencyContextImpl(coordinateResolver)); - cloudProjects.putIfAbsent(cloud, createProject(cloud)); + cloudProjects.putIfAbsent(cloud, createProject(cloud, getProject().getName())); } } @@ -297,14 +306,14 @@ public void resetCloud() { /** * @return the current cloud, or NONE indicating the lib module */ - public GcnCloud getCloud() { + public GdkCloud getCloud() { return cloud; } /** * @return the selected clouds */ - public Set getClouds() { + public Set getClouds() { return clouds; } @@ -316,13 +325,13 @@ public boolean hasConfigurationEnvironment(@NonNull String env) { } return cloudApplicationEnvConfigurations - .computeIfAbsent(cloud, gcnCloud -> new HashMap<>()) + .computeIfAbsent(cloud, gdkCloud -> new HashMap<>()) .containsKey(env); } @NonNull @Override - public GcnBuildProperties getBuildProperties() { + public GdkBuildProperties getBuildProperties() { return buildProperties; } @@ -365,14 +374,14 @@ public ApplicationConfiguration getConfiguration(String env, ApplicationConfigur } return cloudApplicationEnvConfigurations - .computeIfAbsent(cloud, gcnCloud -> new HashMap<>()) + .computeIfAbsent(cloud, gdkCloud -> new HashMap<>()) .computeIfAbsent(env, (key) -> defaultConfig); } /** * @return application environment configurations grouped by cloud */ - public Map> getCloudApplicationEnvConfigurations() { + public Map> getCloudApplicationEnvConfigurations() { return Collections.unmodifiableMap(cloudApplicationEnvConfigurations); } @@ -386,14 +395,14 @@ public ApplicationConfiguration getLibConfiguration() { /** * @return application configurations grouped by cloud */ - public Map getApplicationConfigurations() { + public Map getApplicationConfigurations() { return Collections.unmodifiableMap(applicationConfigurations); } /** * @return cloud application configurations grouped by cloud */ - public Map getCloudApplicationConfigurations() { + public Map getCloudApplicationConfigurations() { return Collections.unmodifiableMap(cloudApplicationConfigurations); } @@ -408,7 +417,7 @@ public ApplicationConfiguration getCloudConfiguration() { * @param cloud the cloud * @return the application configuration for the specified cloud */ - public ApplicationConfiguration getConfiguration(GcnCloud cloud) { + public ApplicationConfiguration getConfiguration(GdkCloud cloud) { return cloudApplicationConfigurations.get(cloud); } @@ -426,7 +435,7 @@ public BootstrapConfiguration getBootstrapConfiguration(String env, BootstrapCon } return cloudBootstrapEnvConfigurations - .computeIfAbsent(cloud, gcnCloud -> new HashMap<>()) + .computeIfAbsent(cloud, gdkCloud -> new HashMap<>()) .computeIfAbsent(env, (key) -> defaultConfig); } @@ -441,7 +450,7 @@ public BootstrapConfiguration getTestBootstrapConfiguration() { /** * @return bootstrap environment configurations grouped by cloud */ - public Map> getCloudBootstrapEnvConfigurations() { + public Map> getCloudBootstrapEnvConfigurations() { return Collections.unmodifiableMap(cloudBootstrapEnvConfigurations); } @@ -456,7 +465,7 @@ public BootstrapConfiguration getCloudBootstrapConfiguration() { * @param cloud the cloud * @return the bootstrap configuration for the specified cloud */ - public BootstrapConfiguration getBootstrapConfiguration(GcnCloud cloud) { + public BootstrapConfiguration getBootstrapConfiguration(GdkCloud cloud) { return cloudBootstrapConfigurations.getOrDefault(cloud, super.getBootstrapConfiguration()); } @@ -470,14 +479,14 @@ public BootstrapConfiguration getLibBootstrapConfiguration() { /** * @return bootstrap configurations grouped by cloud */ - public Map getBootstrapConfigurations() { + public Map getBootstrapConfigurations() { return Collections.unmodifiableMap(bootstrapConfigurations); } /** * @return cloud bootstrap configurations grouped by cloud */ - public Map getCloudBootstrapConfigurations() { + public Map getCloudBootstrapConfigurations() { return Collections.unmodifiableMap(cloudBootstrapConfigurations); } @@ -498,22 +507,22 @@ public Project getLibProject() { /** * @return project grouped by cloud */ - public Map getCloudProjects() { + public Map getCloudProjects() { return Collections.unmodifiableMap(cloudProjects); } @NonNull @Override - public GcnFeatures getFeatures() { + public GdkFeatures getFeatures() { if (cloud != NONE) { return cloudFeatures.get(cloud); } if (hideLibFeatures) { - // hide GCN features and features added by them so the + // hide GDK features and features added by them so the // 'features.contains("...")' checks in Rocker templates // return false for the lib module build - return new GcnFeatures(this, libFeatures(), featureContext.getOptions()); + return new GdkFeatures(this, libFeatures(), featureContext.getOptions()); } return getLibFeatures(); @@ -523,25 +532,25 @@ public GcnFeatures getFeatures() { * @return features for the lib module */ @NonNull - public GcnFeatures getLibFeatures() { - return new GcnFeatures(this, super.getFeatures().getFeatures(), featureContext.getOptions()); + public GdkFeatures getLibFeatures() { + return new GdkFeatures(this, super.getFeatures().getFeatures(), featureContext.getOptions()); } /** * @param cloud the cloud * @return the features for the cloud */ - public GcnFeatures getFeatures(GcnCloud cloud) { + public GdkFeatures getFeatures(GdkCloud cloud) { if (cloud != NONE) { return cloudFeatures.get(cloud); } if (hideLibFeatures) { - // hide GCN features and features added by them so the + // hide GDK features and features added by them so the // 'features.contains("...")' checks in Rocker templates // return false for the lib module build - return new GcnFeatures(this, libFeatures(), featureContext.getOptions()); + return new GdkFeatures(this, libFeatures(), featureContext.getOptions()); } return getLibFeatures(); @@ -550,7 +559,7 @@ public GcnFeatures getFeatures(GcnCloud cloud) { /** * @return features grouped by cloud */ - public Map getCloudFeatures() { + public Map getCloudFeatures() { return Collections.unmodifiableMap(cloudFeatures); } @@ -599,14 +608,14 @@ public void applyFeatures() { hideLibFeatures = true; } - for (Map.Entry e : cloudFeatures.entrySet()) { + for (Map.Entry e : cloudFeatures.entrySet()) { applyFeatures(e.getValue().getFeatures(), e.getKey()); } applyFeatures(libFeatures(), NONE); } - private void applyFeatures(Set features, GcnCloud cloud) { + private void applyFeatures(Set features, GdkCloud cloud) { setCloud(cloud); @@ -614,7 +623,13 @@ private void applyFeatures(Set features, GcnCloud cloud) { sorted.sort(Comparator.comparingInt(Feature::getOrder)); for (Feature feature : sorted) { - feature.apply(this); + if (feature instanceof CloudFeature cloudFeature) { + if (MICRONAUT_CLOUD_TO_GDK_CLOUD.get(cloudFeature.getCloud()) == getCloud() || isPlatformIndependent()) { + feature.apply(this); + } + } else { + feature.apply(this); + } } } @@ -699,7 +714,7 @@ public Collection getLibDependencies() { /** * @return dependency contexts grouped by cloud */ - public Map getCloudDependencyContexts() { + public Map getCloudDependencyContexts() { return Collections.unmodifiableMap(cloudDependencyContexts); } @@ -713,12 +728,12 @@ public Collection getModuleNames() { } List names = new ArrayList<>(cloudFeatures.size() + 1); - names.add(LIB_MODULE); + names.add(GdkUtils.LIB_MODULE); names.addAll(cloudFeatures.keySet().stream() .filter(Objects::nonNull) .filter(cloud -> cloud != NONE) - .map(GcnCloud::getModuleName) + .map(GdkCloud::getModuleName) .sorted() .toList()); @@ -729,16 +744,16 @@ public Collection getModuleNames() { * @return environment configurations grouped by cloud */ @NonNull - public Map> getExtraConfigurations() { + public Map> getExtraConfigurations() { - Map> extra = new HashMap<>(); + Map> extra = new HashMap<>(); - for (Map.Entry> e : cloudApplicationEnvConfigurations.entrySet()) { - extra.computeIfAbsent(e.getKey(), gcnCloud -> new HashSet<>()).addAll(e.getValue().values()); + for (Map.Entry> e : cloudApplicationEnvConfigurations.entrySet()) { + extra.computeIfAbsent(e.getKey(), gdkCloud -> new HashSet<>()).addAll(e.getValue().values()); } - for (Map.Entry> e : cloudBootstrapEnvConfigurations.entrySet()) { - extra.computeIfAbsent(e.getKey(), gcnCloud -> new HashSet<>()).addAll(e.getValue().values()); + for (Map.Entry> e : cloudBootstrapEnvConfigurations.entrySet()) { + extra.computeIfAbsent(e.getKey(), gdkCloud -> new HashSet<>()).addAll(e.getValue().values()); } return extra; @@ -759,10 +774,10 @@ public void addTemplate(String name, Template template) { } if (!template.getModule().equals(ROOT)) { - if (template instanceof GcnPropertiesTemplate) { - if (isPlatformIndependent() && (template.getModule().equals(LIB_MODULE) || template.getModule().equals(APP_MODULE))) { + if (template instanceof GdkPropertiesTemplate) { + if (isPlatformIndependent() && (template.getModule().equals(GdkUtils.LIB_MODULE) || template.getModule().equals(GdkUtils.APP_MODULE))) { // for platform independent, re-route non-root templates to root - template = new GcnPropertiesTemplate(ROOT, template.getPath(), ((GcnPropertiesTemplate) template).getOriginalConfig()); + template = new GdkPropertiesTemplate(ROOT, template.getPath(), ((GdkPropertiesTemplate) template).getOriginalConfig()); } } else if (template instanceof RockerTemplate) { @@ -773,12 +788,12 @@ public void addTemplate(String name, Template template) { // re-route non-root templates added by features that were added by a cloud service feature to the cloud module newModule = cloud.getModuleName(); name += '-' + newModule; - } else if (isPlatformIndependent() && (template.getModule().equals(LIB_MODULE) || template.getModule().equals(DEFAULT_MODULE))) { + } else if (isPlatformIndependent() && (template.getModule().equals(GdkUtils.LIB_MODULE) || template.getModule().equals(DEFAULT_MODULE))) { // for platform independent, re-route non-root templates to root newModule = ROOT; } else if (template.getModule().equals(DEFAULT_MODULE)) { // re-route to lib - newModule = LIB_MODULE; + newModule = GdkUtils.LIB_MODULE; } if (newModule != null) { @@ -788,7 +803,7 @@ public void addTemplate(String name, Template template) { } else if (template instanceof URLTemplate urlTemplate) { if (name.endsWith(".html")) { // re-route to lib - template = new URLTemplate(LIB_MODULE, urlTemplate.getPath(), urlTemplate.getUrl(), urlTemplate.isExecutable()); + template = new URLTemplate(GdkUtils.LIB_MODULE, urlTemplate.getPath(), urlTemplate.getUrl(), urlTemplate.isExecutable()); } } } @@ -797,7 +812,7 @@ public void addTemplate(String name, Template template) { } /** - * Internal function for adding templates. The GCN feature templates are added first, + * Internal function for adding templates. The GDK feature templates are added first, * so we want to avoid overwriting those with micronaut feature templates. * Therefore, all added templates are stored in a set and a template is not added if * one exists with the same path already. @@ -806,7 +821,7 @@ public void addTemplate(String name, Template template) { * @param template template */ private void addTemplateInternal(String name, Template template) { - String templatePath = template.getModule() + "/" + template.getPath(); + String templatePath = isPlatformIndependent() ? template.getPath() : template.getModule() + "/" + template.getPath(); if (presentTemplatePaths.contains(templatePath) && !name.equals("multi-module-pom")) { return; } @@ -819,7 +834,7 @@ private void addTemplateInternal(String name, Template template) { public void removeTemplate(String name) { Template template = super.getTemplates().get(name); if (template != null) { - String templatePath = template.getModule() + "/" + template.getPath(); + String templatePath = isPlatformIndependent() ? template.getPath() : template.getModule() + "/" + template.getPath(); super.removeTemplate(name); presentTemplatePaths.remove(templatePath); } @@ -856,7 +871,7 @@ private boolean isIgnoredAppTemplate(String name, Template template) { } /** - * @return true if building a platform-independent app, + * @return true if bclouds uilding a platform-independent app, * i.e. a single-module app with not cloud modules */ public boolean isPlatformIndependent() { @@ -880,7 +895,12 @@ public Set getAllConfigurations() { public void addTemplate(String name, String path, TestRockerModelProvider testRockerModelProvider) { - String moduleName = cloud == NONE ? LIB_MODULE : cloud.getModuleName(); + String moduleName = cloud == NONE ? GdkUtils.LIB_MODULE : cloud.getModuleName(); + + if (isPlatformIndependent()) { + moduleName = ""; + } + RockerModel rockerModel = testRockerModelProvider.findModel(getLanguage(), getTestFramework()); if (rockerModel != null) { addTemplateInternal(name, new RockerTemplate(moduleName, path, rockerModel)); @@ -894,7 +914,7 @@ public void addTemplate(String templateKey, RockerModel kotlinTemplate, RockerModel groovyTemplate) { addTemplateInternal(templateKey, new RockerTemplate( - cloud == NONE ? LIB_MODULE : cloud.getModuleName(), + cloud == NONE ? isPlatformIndependent() ? "" : GdkUtils.LIB_MODULE : cloud.getModuleName(), path, parseModel(javaTemplate, kotlinTemplate, groovyTemplate))); } @@ -1007,13 +1027,13 @@ public ApplicationRenderingContext getApplicationRenderingContext(Language langu }; } - private Project createProject(GcnCloud cloud) { - return NameUtils.parse(getLibProject().getPackageName() + '.' + cloud.getModuleName()); + private Project createProject(GdkCloud cloud, String originalModuleName) { + return NameUtils.parse(getLibProject().getPackageName() + '.' + originalModuleName + "-" + cloud.getModuleName()); } private Set libFeatures() { return super.getFeatures().getFeatures().stream().filter(f -> { - if (f instanceof GcnFeature) { + if (f instanceof GdkFeature) { return false; } @@ -1053,8 +1073,8 @@ public Set getBuildPluginsGAV() { throw new IllegalStateException("Unexpected Gradle build plugin or version mismatch for '" + key + "'"); } - if (key.contains(JTE_GROUP_ID)) { - gavs.add(JTE_GROUP_ID + ":" + JTE_NATIVE_RESOURCES + ":" + plugin.getVersion()); + if (key.contains(GdkJTE.JTE_GROUP_ID)) { + gavs.add(GdkJTE.JTE_GROUP_ID + ":" + GdkJTE.JTE_NATIVE_RESOURCES + ":" + plugin.getVersion()); } gavs.add(gav); @@ -1065,7 +1085,7 @@ public Set getBuildPluginsGAV() { @Override public String toString() { - StringBuilder sb = new StringBuilder("GcnGeneratorContext:\n"); + StringBuilder sb = new StringBuilder("GdkGeneratorContext:\n"); sb.append("\n ApplicationType: ").append(getApplicationType()); sb.append("\n Language: ").append(StringUtils.capitalize(getLanguage().getName())); @@ -1089,15 +1109,15 @@ public String toString() { sb.append("\n Lib Dependencies: ").append(toString(getLibDependencies())).append('\n'); - Map cloudDependencies = new HashMap<>(); - for (Map.Entry e : getCloudDependencyContexts().entrySet()) { + Map cloudDependencies = new HashMap<>(); + for (Map.Entry e : getCloudDependencyContexts().entrySet()) { cloudDependencies.put(e.getKey(), toString(e.getValue().getDependencies())); } sb.append("\n Cloud Dependencies: ").append(cloudDependencies).append('\n'); sb.append("\n Lib Project: ").append(getLibProject().getProperties()).append('\n'); - Map cloudProjects = new HashMap<>(); - for (Map.Entry e : getCloudProjects().entrySet()) { + Map cloudProjects = new HashMap<>(); + for (Map.Entry e : getCloudProjects().entrySet()) { cloudProjects.put(e.getKey(), e.getValue().getProperties().toString()); } sb.append("\n Cloud Projects: ").append(cloudProjects).append('\n'); @@ -1106,15 +1126,15 @@ public String toString() { sb.append("\n Cloud Features: ").append(getCloudFeatures()).append('\n'); sb.append("\n Lib BuildProperties: ").append(toString(getBuildProperties().getProperties())).append('\n'); - Map cloudBuildProps = new HashMap<>(); - for (GcnCloud cloud : cloudFeatures.keySet()) { + Map cloudBuildProps = new HashMap<>(); + for (GdkCloud cloud : cloudFeatures.keySet()) { cloudBuildProps.put(cloud, toString(getBuildProperties().getProperties(cloud))); } sb.append("\n Cloud BuildProperties: ").append(cloudBuildProps).append('\n'); sb.append("\n Lib Build Plugins: ").append(toString(super.getBuildPlugins())).append('\n'); - Map cloudPlugins = new HashMap<>(); - for (Map.Entry> e : buildPlugins.entrySet()) { + Map cloudPlugins = new HashMap<>(); + for (Map.Entry> e : buildPlugins.entrySet()) { cloudPlugins.put(e.getKey(), toString(e.getValue())); } sb.append("\n Cloud Build Plugins: ").append(cloudPlugins).append('\n'); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectCreator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectCreator.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectCreator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectCreator.java index 92de52c..fcdbcf6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectCreator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectCreator.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; - -import cloud.graal.gcn.feature.create.AbstractGcnCreateFeature; -import cloud.graal.gcn.feature.create.PlatformIndependent; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnProjectType; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk; + +import cloud.graal.gdk.feature.create.AbstractGdkCreateFeature; +import cloud.graal.gdk.feature.create.PlatformIndependent; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.model.GdkProjectType; +import cloud.graal.gdk.model.GdkService; import io.micronaut.starter.application.OperatingSystem; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.Feature; @@ -38,25 +38,25 @@ import java.util.List; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.options.BuildTool.GRADLE; import static io.micronaut.starter.options.BuildTool.GRADLE_KOTLIN; import static io.micronaut.starter.options.Language.KOTLIN; /** - * Creates GCN projects. Auto-adds "create" and "service" features based on the + * Creates GDK projects. Auto-adds "create" and "service" features based on the * selected clouds and services. */ @Singleton -public class GcnProjectCreator { +public class GdkProjectCreator { - private final GcnProjectGenerator projectGenerator; - private final Collection createFeatures; - private final Collection serviceFeatures; + private final GdkProjectGenerator projectGenerator; + private final Collection createFeatures; + private final Collection serviceFeatures; - GcnProjectCreator(GcnProjectGenerator projectGenerator, - Collection createFeatures, - Collection serviceFeatures) { + GdkProjectCreator(GdkProjectGenerator projectGenerator, + Collection createFeatures, + Collection serviceFeatures) { this.projectGenerator = projectGenerator; this.createFeatures = createFeatures; this.serviceFeatures = serviceFeatures; @@ -79,13 +79,13 @@ public class GcnProjectCreator { * @throws Exception if something goes wrong */ @SuppressWarnings("checkstyle:ParameterNumber") - public void create(GcnProjectType projectType, + public void create(GdkProjectType projectType, Project project, Language lang, TestFramework test, BuildTool build, - List clouds, - List services, + List clouds, + List services, List features, Integer jdkMajorVersion, OperatingSystem operatingSystem, @@ -144,10 +144,10 @@ private JdkVersion jdkVersion(Integer majorVersion) { return JdkVersion.valueOf(majorVersion); } - private List derivedFeatures(List clouds, - List services, + private List derivedFeatures(List clouds, + List services, List features, - GcnProjectType projectType) { + GdkProjectType projectType) { List derived = new ArrayList<>(features); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectGenerator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectGenerator.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectGenerator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectGenerator.java index 194e169..e2efa2f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnProjectGenerator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkProjectGenerator.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; -import cloud.graal.gcn.feature.GcnDefaultAvailableFeatures; -import cloud.graal.gcn.feature.GcnFunctionAvailableFeatures; -import cloud.graal.gcn.template.GcnTemplateRenderer; +import cloud.graal.gdk.feature.GdkDefaultAvailableFeatures; +import cloud.graal.gdk.feature.GdkFunctionAvailableFeatures; +import cloud.graal.gdk.template.GdkTemplateRenderer; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.application.ApplicationType; @@ -48,24 +48,24 @@ /** * Replaces the default generator to customize generation with - * GcnContextFactory, GcnGeneratorContext, GcnTemplateRenderer. + * GdkContextFactory, GdkGeneratorContext, GdkTemplateRenderer. */ @Singleton @Replaces(ProjectGenerator.class) -public class GcnProjectGenerator implements ProjectGenerator { +public class GdkProjectGenerator implements ProjectGenerator { private final List features; - private final GcnContextFactory contextFactory; + private final GdkContextFactory contextFactory; /** * @param contextFactory context factory * @param features all feature beans */ - protected GcnProjectGenerator(GcnContextFactory contextFactory, + protected GdkProjectGenerator(GdkContextFactory contextFactory, List features) { this.features = features; this.contextFactory = contextFactory; - GcnUtils.configureJdkVersions(); + GdkUtils.configureJdkVersions(); } @Override @@ -89,12 +89,12 @@ public void generate(ApplicationType applicationType, OutputHandler outputHandler, GeneratorContext gc) throws Exception { - GcnGeneratorContext generatorContext = (GcnGeneratorContext) gc; + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; addMicronautCli(generatorContext, applicationType); generatorContext.applyFeatures(); - try (GcnTemplateRenderer templateRenderer = new GcnTemplateRenderer(project, outputHandler, + try (GdkTemplateRenderer templateRenderer = new GdkTemplateRenderer(project, outputHandler, generatorContext.getPostProcessors(), generatorContext.getRegexPostProcessors(), generatorContext.getClouds())) { for (Map.Entry entry : generatorContext.getTemplates().entrySet()) { RenderResult renderResult = templateRenderer.render(entry.getValue(), entry.getKey()); @@ -114,7 +114,7 @@ public void addFeature(Feature feature) { features.add(feature); } - private void addMicronautCli(GcnGeneratorContext generatorContext, + private void addMicronautCli(GdkGeneratorContext generatorContext, ApplicationType applicationType) { List featureNames = new ArrayList<>(generatorContext.getFeatures()); @@ -139,8 +139,8 @@ public GeneratorContext createGeneratorContext(ApplicationType applicationType, ConsoleOutput consoleOutput) { AvailableFeatures availableFeatures = applicationType == FUNCTION - ? new GcnFunctionAvailableFeatures(features) - : new GcnDefaultAvailableFeatures(features); + ? new GdkFunctionAvailableFeatures(features) + : new GdkDefaultAvailableFeatures(features); FeatureContext featureContext = contextFactory.createFeatureContext( availableFeatures, selectedFeatures, applicationType, options, operatingSystem); return contextFactory.createGeneratorContext(project, featureContext, consoleOutput); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnUtils.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkUtils.java similarity index 85% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnUtils.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkUtils.java index 6525b03..ea91c92 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/GcnUtils.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/GdkUtils.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; -import cloud.graal.gcn.build.dependencies.GcnDependencies; +import cloud.graal.gdk.build.dependencies.GdkDependencies; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.annotation.Nullable; import io.micronaut.starter.options.JdkVersion; @@ -36,7 +36,7 @@ * * @since 1.0.0 */ -public final class GcnUtils { +public final class GdkUtils { /** * For now we aren't using version catalogs, but in the future may, or will @@ -64,10 +64,10 @@ public final class GcnUtils { */ public static final String BOM_VERSION_SUFFIX = getBomVersionSuffix(); - private static final String GCN_BOM_VERSION = loadVersion("version.txt"); + private static final String GDK_BOM_VERSION = loadVersion("version.txt"); private static String loadVersion(String resourcePath) { - URL resource = GcnUtils.class.getResource("/" + resourcePath); + URL resource = GdkUtils.class.getResource("/" + resourcePath); if (resource == null) { throw new IllegalStateException("Resource /" + resourcePath + " not found"); } @@ -80,30 +80,30 @@ private static String loadVersion(String resourcePath) { } private static String getBomVersionSuffix() { - Matcher m = Pattern.compile("(-oracle-\\d+)").matcher(GcnDependencies.MICRONAUT_CORE.getVersion()); + Matcher m = Pattern.compile("(-oracle-\\d+)").matcher(GdkDependencies.MICRONAUT_CORE.getVersion()); m.find(); return m.group(); } /** - * @return the GCN version + * @return the GDK version */ public static String getVersion() { - return GCN_BOM_VERSION; + return GDK_BOM_VERSION; } /** * @return the version of Micronaut Platform */ public static String getMicronautVersion() { - return GcnDependencies.MICRONAUT_PARENT.getVersion(); + return GdkDependencies.MICRONAUT_PARENT.getVersion(); } /** * @return the BOM version */ - public static String getGcnBomVersion() { - return GCN_BOM_VERSION; + public static String getGdkBomVersion() { + return GDK_BOM_VERSION; } /** diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/OracleCloudNettyClientDependencies.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/OracleCloudNettyClientDependencies.java similarity index 98% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/OracleCloudNettyClientDependencies.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/OracleCloudNettyClientDependencies.java index 8e35f9c..dc468d2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/OracleCloudNettyClientDependencies.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/OracleCloudNettyClientDependencies.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn; +package cloud.graal.gdk; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.build.dependencies.Dependency; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnGradleBuild.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkGradleBuild.java similarity index 92% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnGradleBuild.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkGradleBuild.java index ea8c069..d0d891f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnGradleBuild.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkGradleBuild.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.buildtool; +package cloud.graal.gdk.buildtool; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.gradle.GradleBuild; @@ -29,7 +29,7 @@ * * @since 1.0.0 */ -public class GcnGradleBuild extends GradleBuild { +public class GdkGradleBuild extends GradleBuild { private final List repositories; @@ -39,7 +39,7 @@ public class GcnGradleBuild extends GradleBuild { * @param plugins plugins * @param repositories repos */ - public GcnGradleBuild(@NonNull GradleDsl gradleDsl, + public GdkGradleBuild(@NonNull GradleDsl gradleDsl, @NonNull List dependencies, @NonNull List plugins, @NonNull List repositories) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnMavenBuild.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkMavenBuild.java similarity index 96% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnMavenBuild.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkMavenBuild.java index 5637efa..89aa43a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/GcnMavenBuild.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/GdkMavenBuild.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.buildtool; +package cloud.graal.gdk.buildtool; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.Property; @@ -34,7 +34,7 @@ * * @since 1.0.0 */ -public class GcnMavenBuild extends MavenBuild { +public class GdkMavenBuild extends MavenBuild { private final List repositories; @@ -50,7 +50,7 @@ public class GcnMavenBuild extends MavenBuild { * @param testAnnotationProcessorCombineAttribute MavenCombineAttribute for test annotation processors * @param profiles profiles */ - public GcnMavenBuild(String artifactId, + public GdkMavenBuild(String artifactId, List annotationProcessors, List testAnnotationProcessors, List dependencies, diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/Utils.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/Utils.java similarity index 97% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/Utils.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/Utils.java index fb1d06e..04206b4 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/buildtool/Utils.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/buildtool/Utils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.buildtool; +package cloud.graal.gdk.buildtool; import io.micronaut.starter.template.Writable; import io.micronaut.starter.template.WritableUtils; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/AbstractGcnFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/AbstractGdkFeature.java similarity index 70% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/AbstractGcnFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/AbstractGdkFeature.java index 6e0a7e5..2f19d99 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/AbstractGcnFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/AbstractGdkFeature.java @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.email.AbstractEmailFeature; -import cloud.graal.gcn.feature.service.security.AbstractSecurityFeature; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.email.AbstractEmailFeature; +import cloud.graal.gdk.feature.service.security.AbstractSecurityFeature; +import cloud.graal.gdk.GdkUtils; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.application.Project; @@ -26,41 +28,39 @@ import io.micronaut.starter.feature.MultiProjectFeature; import io.micronaut.starter.template.StringTemplate; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; -import static cloud.graal.gcn.model.GcnCloud.NONE; import static io.micronaut.starter.template.Template.ROOT; /** - * Abstract base class for GCN "create" and "service" features. + * Abstract base class for GDK "create" and "service" features. * * @since 1.0.0 */ -public abstract class AbstractGcnFeature implements GcnFeature, MultiProjectFeature { +public abstract class AbstractGdkFeature implements GdkFeature, MultiProjectFeature { @Override public final void apply(GeneratorContext generatorContext) { - addLibPlaceholders((GcnGeneratorContext) generatorContext); - apply((GcnGeneratorContext) generatorContext); + addLibPlaceholders((GdkGeneratorContext) generatorContext); + apply((GdkGeneratorContext) generatorContext); } /** - * Method to implement using the GCN generator context instead of the default. + * Method to implement using the GDK generator context instead of the default. * - * @param generatorContext the GCN generator context + * @param generatorContext the GDK generator context */ - public abstract void apply(GcnGeneratorContext generatorContext); + public abstract void apply(GdkGeneratorContext generatorContext); @Override public final void processSelectedFeatures(FeatureContext featureContext) { - processSelectedFeatures((GcnFeatureContext) featureContext); + processSelectedFeatures((GdkFeatureContext) featureContext); } /** - * Method to implement using the GCN feature context instead of the default. + * Method to implement using the GDK feature context instead of the default. * - * @param featureContext the GCN feature context + * @param featureContext the GDK feature context */ - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { // override as needed } @@ -80,7 +80,7 @@ protected String getModuleName() { } protected String getDefaultModule() { - return getCloud() == NONE ? ROOT : LIB_MODULE; + return getCloud() == GdkCloud.NONE ? ROOT : GdkUtils.LIB_MODULE; } /** @@ -89,7 +89,7 @@ protected String getDefaultModule() { * * @param generatorContext the generator context */ - private void addLibPlaceholders(GcnGeneratorContext generatorContext) { + private void addLibPlaceholders(GdkGeneratorContext generatorContext) { if (generatorContext.isPlatformIndependent()) { return; @@ -106,7 +106,7 @@ private void addLibPlaceholders(GcnGeneratorContext generatorContext) { } } - private void addGitkeep(GcnGeneratorContext generatorContext, String name, String path) { + private void addGitkeep(GdkGeneratorContext generatorContext, String name, String path) { generatorContext.addTemplate(name, new StringTemplate(getDefaultModule(), path + "/.gitkeep", "")); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnBom.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkBom.java similarity index 77% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnBom.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkBom.java index 29cdda0..8470230 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnBom.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkBom.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; -import cloud.graal.gcn.GcnUtils; -import cloud.graal.gcn.feature.create.GcnRepository; -import cloud.graal.gcn.feature.create.GcnStageRepository; +import cloud.graal.gdk.GdkUtils; +import cloud.graal.gdk.feature.create.GdkRepository; +import cloud.graal.gdk.feature.create.GdkStageRepository; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.util.StringUtils; import io.micronaut.starter.application.ApplicationType; @@ -37,21 +37,21 @@ import java.util.Set; /** - * Adds the GCN BOM to Gradle and Maven builds. + * Adds the GDK BOM to Gradle and Maven builds. * * @since 1.0.0 */ @Singleton -public class GcnBom implements DefaultFeature, RequiresRepository { +public class GdkBom implements DefaultFeature, RequiresRepository { private static final Dependency BOM = Dependency.builder() - .groupId("cloud.graal.gcn") - .artifactId("gcn-bom") - .version(GcnUtils.getGcnBomVersion()) + .groupId("cloud.graal.gdk") + .artifactId("gdk-bom") + .version(GdkUtils.getGdkBomVersion()) .pom() .compile() .build(); - private static final GradlePlugin BOM_PLUGIN = GradlePlugin.builder().id("cloud.graal.gcn.gcn-bom").build(); + private static final GradlePlugin BOM_PLUGIN = GradlePlugin.builder().id("cloud.graal.gdk.gdk-bom").build(); @Override public void apply(GeneratorContext generatorContext) { @@ -65,7 +65,7 @@ public void apply(GeneratorContext generatorContext) { @NonNull @Override public String getName() { - return "gcn-bom"; + return "gdk-bom"; } @Override @@ -88,13 +88,13 @@ public boolean isVisible() { public List getRepositories() { List result = new ArrayList<>(); - if (!StringUtils.isEmpty(GcnUtils.getenv("USE_MAVEN_LOCAL"))) { + if (!StringUtils.isEmpty(GdkUtils.getenv("USE_MAVEN_LOCAL"))) { result.add(new MavenLocal()); } - if (!StringUtils.isEmpty(GcnUtils.getenv("STAGE_URL"))) { - result.add(new GcnStageRepository()); + if (!StringUtils.isEmpty(GdkUtils.getenv("STAGE_URL"))) { + result.add(new GdkStageRepository()); } else { - result.add(new GcnRepository()); + result.add(new GdkRepository()); } return result; } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnDefaultAvailableFeatures.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkDefaultAvailableFeatures.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnDefaultAvailableFeatures.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkDefaultAvailableFeatures.java index f714bca..13811dc 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnDefaultAvailableFeatures.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkDefaultAvailableFeatures.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.NonNull; @@ -32,7 +32,7 @@ import static io.micronaut.starter.application.ApplicationType.DEFAULT; /** - * Replaces DefaultAvailableFeatures to hide auto-selected GCN + * Replaces DefaultAvailableFeatures to hide auto-selected GDK * features from autocompletion in the CLI. * * @since 1.0.0 @@ -40,26 +40,26 @@ @Named("default") @Replaces(DefaultAvailableFeatures.class) @Singleton -public class GcnDefaultAvailableFeatures extends DefaultAvailableFeatures { +public class GdkDefaultAvailableFeatures extends DefaultAvailableFeatures { - private final Map gcnFeatures; + private final Map gdkFeatures; /** * @param features all feature beans */ - public GcnDefaultAvailableFeatures(List features) { + public GdkDefaultAvailableFeatures(List features) { super(features.stream() - .filter(f -> !(f instanceof GcnFeature)) + .filter(f -> !(f instanceof GdkFeature)) .sorted(Comparator.comparing(Feature::getName)) .toList()); // filter out our features so they're not visible in the cli, // but we need these features for findFeature below - gcnFeatures = features.stream() + gdkFeatures = features.stream() .filter(f -> f.supports(DEFAULT)) - .filter(f -> f instanceof GcnFeature) - .map(GcnFeature.class::cast) + .filter(f -> f instanceof GdkFeature) + .map(GdkFeature.class::cast) .collect(Collectors.toMap(Feature::getName, Function.identity())); } @@ -69,6 +69,6 @@ public Optional findFeature(@NonNull String name, boolean ignoreVisibil if (feature.isPresent()) { return feature; } - return Optional.ofNullable(gcnFeatures.get(name)); + return Optional.ofNullable(gdkFeatures.get(name)); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeature.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeature.java index ca1ef8b..4a594cd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeature.java @@ -13,22 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.Feature; /** - * A GCN feature. + * A GDK feature. * * @since 1.0.0 */ -public interface GcnFeature extends Feature { +public interface GdkFeature extends Feature { /** * @return the cloud */ @NonNull - GcnCloud getCloud(); + GdkCloud getCloud(); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatureContext.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatureContext.java similarity index 84% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatureContext.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatureContext.java index 54e1602..2064a71 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatureContext.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatureContext.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.GdkGeneratorContext; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.application.OperatingSystem; @@ -41,27 +42,26 @@ import java.util.Set; import java.util.stream.Collectors; -import static cloud.graal.gcn.GcnGeneratorContext.EXAMPLE_CODE; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static java.util.stream.Collectors.collectingAndThen; import static java.util.stream.Collectors.toSet; /** * Cloud-aware feature context. */ -public class GcnFeatureContext extends FeatureContext { +public class GdkFeatureContext extends FeatureContext { private final Set selectedAndDefaultFeatures; private final Collection selectedNames; - private final Set selectedClouds; + private final Set selectedClouds; private final boolean generateExampleCode; private final List features = new ArrayList<>(); private final List exclusions = new ArrayList<>(); private ListIterator iterator; - private final Map> addedFeatures = new HashMap<>(); + private final Map> addedFeatures = new HashMap<>(); - private GcnCloud cloud = NONE; + private GdkCloud cloud = NONE; /** * @param options Options @@ -69,21 +69,21 @@ public class GcnFeatureContext extends FeatureContext { * @param operatingSystem OS * @param selectedAndDefaultFeatures features that the user selected and default features * @param selectedNames the names of the features selected by the user, and the - * names of the GCN "create" and "service" features that + * names of the GDK "create" and "service" features that * were auto-selected based on the selected clouds and services * @param selectedClouds the selected clouds */ - public GcnFeatureContext(Options options, + public GdkFeatureContext(Options options, ApplicationType applicationType, OperatingSystem operatingSystem, Set selectedAndDefaultFeatures, Collection selectedNames, - Set selectedClouds) { + Set selectedClouds) { super(options, applicationType, operatingSystem, selectedAndDefaultFeatures); this.selectedAndDefaultFeatures = selectedAndDefaultFeatures; this.selectedNames = selectedNames; this.selectedClouds = selectedClouds; - generateExampleCode = getOptions().get(EXAMPLE_CODE, Boolean.class).orElse(true); + generateExampleCode = getOptions().get(GdkGeneratorContext.EXAMPLE_CODE, Boolean.class).orElse(true); } @Override @@ -91,14 +91,14 @@ public void processSelectedFeatures() { processSelectedFeatures(NONE); - for (GcnCloud cloud : selectedClouds) { + for (GdkCloud cloud : selectedClouds) { processSelectedFeatures(cloud); } cloud = NONE; } - private void processSelectedFeatures(GcnCloud cloud) { + private void processSelectedFeatures(GdkCloud cloud) { this.cloud = cloud; addedFeatures.put(cloud, new HashSet<>()); @@ -110,8 +110,8 @@ private void processSelectedFeatures(GcnCloud cloud) { return true; } - if (f instanceof GcnFeature) { - return cloud == ((GcnFeature) f).getCloud(); + if (f instanceof GdkFeature) { + return cloud == ((GdkFeature) f).getCloud(); } if (!(f instanceof DefaultFeature)) { @@ -189,22 +189,22 @@ public boolean isPresent(Class feature) { /** * Features add other features by calling {@link #addFeature(Feature) addFeature} - * from {@link AbstractGcnFeature#processSelectedFeatures(GcnFeatureContext)}, and - * this happens in GcnContextFactory before the generator + * from {@link AbstractGdkFeature#processSelectedFeatures(GdkFeatureContext)}, and + * this happens in GdkContextFactory before the generator * context is constructed. Features are partitioned by cloud before invoking * these methods, so the cloud is known and is used to record the addition - * here. Later when GcnGeneratorContext is being constructed, the cloud + * here. Later when GdkGeneratorContext is being constructed, the cloud * information is used when partitioning features between modules. * * @param feature the feature * @return the cloud(s) that caused the feature to be added */ @NonNull - public Set getAddedFeatureClouds(Feature feature) { + public Set getAddedFeatureClouds(Feature feature) { - Set clouds = new HashSet<>(); + Set clouds = new HashSet<>(); - for (Map.Entry> e : addedFeatures.entrySet()) { + for (Map.Entry> e : addedFeatures.entrySet()) { if (e.getKey() == NONE) { continue; } @@ -218,7 +218,7 @@ public Set getAddedFeatureClouds(Feature feature) { /** * @return the names of the features selected by the user, and the names of - * the GCN "create" and "service" features that were auto-selected based on + * the GDK "create" and "service" features that were auto-selected based on * the selected clouds and services */ public Collection getSelectedNames() { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatures.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatures.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatures.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatures.java index 405f901..5a5730e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFeatures.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFeatures.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; -import cloud.graal.gcn.GcnGeneratorContext; +import cloud.graal.gdk.GdkGeneratorContext; import io.micronaut.starter.feature.Feature; import io.micronaut.starter.feature.Features; import io.micronaut.starter.options.Options; @@ -26,9 +26,9 @@ /** * Features for one service. */ -public class GcnFeatures extends Features { +public class GdkFeatures extends Features { - private final GcnGeneratorContext context; + private final GdkGeneratorContext context; /** pre-computed main class name. */ private String mainClassName; private boolean mainClassNameSet; @@ -38,7 +38,7 @@ public class GcnFeatures extends Features { * @param features the features * @param options Options */ - public GcnFeatures(GcnGeneratorContext context, + public GdkFeatures(GdkGeneratorContext context, Set features, Options options) { super(context, features, options); @@ -56,7 +56,7 @@ public Optional mainClass() { @Override public String toString() { - return "GcnFeatures(" + super.toString() + ')' + + return "GdkFeatures(" + super.toString() + ')' + " BuildTool: " + build() + ", ApplicationFeature: " + application() + ", LanguageFeature: " + language() + diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFunctionAvailableFeatures.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFunctionAvailableFeatures.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFunctionAvailableFeatures.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFunctionAvailableFeatures.java index 115f988..621afe9 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnFunctionAvailableFeatures.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkFunctionAvailableFeatures.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.NonNull; @@ -32,7 +32,7 @@ import static io.micronaut.starter.application.ApplicationType.FUNCTION; /** - * Replaces FunctionAvailableFeatures to hide auto-selected GCN + * Replaces FunctionAvailableFeatures to hide auto-selected GDK * features from autocompletion in the CLI. * * @since 1.0.0 @@ -40,26 +40,26 @@ @Named("function") @Replaces(FunctionAvailableFeatures.class) @Singleton -public class GcnFunctionAvailableFeatures extends FunctionAvailableFeatures { +public class GdkFunctionAvailableFeatures extends FunctionAvailableFeatures { - private final Map gcnFeatures; + private final Map gdkFeatures; /** * @param features all feature beans */ - public GcnFunctionAvailableFeatures(List features) { + public GdkFunctionAvailableFeatures(List features) { super(features.stream() - .filter(f -> !(f instanceof GcnFeature)) + .filter(f -> !(f instanceof GdkFeature)) .sorted(Comparator.comparing(Feature::getName)) .toList()); // filter out our features so they're not visible in the cli, // but we need these features for findFeature below - gcnFeatures = features.stream() + gdkFeatures = features.stream() .filter(f -> f.supports(FUNCTION)) - .filter(f -> f instanceof GcnFeature) - .map(GcnFeature.class::cast) + .filter(f -> f instanceof GdkFeature) + .map(GdkFeature.class::cast) .collect(Collectors.toMap(Feature::getName, Function.identity())); } @@ -69,6 +69,6 @@ public Optional findFeature(@NonNull String name, boolean ignoreVisibil if (feature.isPresent()) { return feature; } - return Optional.ofNullable(gcnFeatures.get(name)); + return Optional.ofNullable(gdkFeatures.get(name)); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnTestedFeatures.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkTestedFeatures.java similarity index 91% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnTestedFeatures.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkTestedFeatures.java index 59ecfa7..886bc3a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/GcnTestedFeatures.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/GdkTestedFeatures.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature; +package cloud.graal.gdk.feature; import io.micronaut.starter.feature.Feature; import java.util.Set; /** - * Stores all the features officially tested by GCN team. + * Stores all the features officially tested by GDK team. * Used for providing information in the UI. */ -public final class GcnTestedFeatures { +public final class GdkTestedFeatures { /** * Names of tested features. @@ -97,14 +97,14 @@ public final class GcnTestedFeatures { "tracing-opentelemetry-gcp" ); - private GcnTestedFeatures() { + private GdkTestedFeatures() { } /** * @param feature a feature * @return true if the feature was tested */ - public static boolean isFeatureGcnTested(Feature feature) { + public static boolean isFeatureGdkTested(Feature feature) { return TESTED_FEATURE_NAMES.contains(feature.getName()); } @@ -112,7 +112,7 @@ public static boolean isFeatureGcnTested(Feature feature) { * @param featureName the name of a feature * @return true if the feature was tested */ - public static boolean isFeatureGcnTested(String featureName) { + public static boolean isFeatureGdkTested(String featureName) { return TESTED_FEATURE_NAMES.contains(featureName); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/AbstractGcnCreateFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/AbstractGdkCreateFeature.java similarity index 85% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/AbstractGcnCreateFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/AbstractGdkCreateFeature.java index 59fc11b..4d9cba0 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/AbstractGcnCreateFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/AbstractGdkCreateFeature.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.AbstractGcnFeature; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.AbstractGdkFeature; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.Features; @@ -37,22 +37,22 @@ /** * Abstract base class for "create" features. For each user-selected cloud, the * feature for the specified project type will be selected, e.g., - * GcnAwsCloudApp for create-app + AWS, GcnAzureCloudFunction for create-function + Azure, - * GcnOciCloudGatewayFunction for create-gateway-function + OCI, etc. + * GdkAwsCloudApp for create-app + AWS, GdkAzureCloudFunction for create-function + Azure, + * GdkOciCloudGatewayFunction for create-gateway-function + OCI, etc. * * @since 1.0.0 */ -public abstract class AbstractGcnCreateFeature extends AbstractGcnFeature { +public abstract class AbstractGdkCreateFeature extends AbstractGdkFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { if (generatorContext.getApplicationType() != FUNCTION) { createApplicationClass(generatorContext); } } - private void createApplicationClass(GcnGeneratorContext generatorContext) { + private void createApplicationClass(GdkGeneratorContext generatorContext) { Project project = generatorContext.getProject(); String path = generatorContext.getLanguage().getSourcePath("/" + project.getPackagePath() + "/Application"); @@ -77,7 +77,7 @@ private void createApplicationClass(GcnGeneratorContext generatorContext) { * @return the project type enum */ @NonNull - public abstract GcnProjectType getProjectType(); + public abstract GdkProjectType getProjectType(); @Override public int getOrder() { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnGradleBuildCreator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkGradleBuildCreator.java similarity index 91% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnGradleBuildCreator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkGradleBuildCreator.java index 90fbf14..b36e0ea 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnGradleBuildCreator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkGradleBuildCreator.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; -import cloud.graal.gcn.buildtool.GcnGradleBuild; +import cloud.graal.gdk.buildtool.GdkGradleBuild; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.order.OrderUtil; import io.micronaut.starter.application.generator.GeneratorContext; @@ -37,9 +37,9 @@ * @since 1.0.0 */ @Singleton -public class GcnGradleBuildCreator extends GradleBuildCreator { +public class GdkGradleBuildCreator extends GradleBuildCreator { - private static final GcnRepository REPO = new GcnRepository(); + private static final GdkRepository REPO = new GdkRepository(); @NonNull @Override @@ -56,7 +56,7 @@ public GradleBuild create(@NonNull GeneratorContext generatorContext, .sorted(OrderUtil.COMPARATOR) .toList(); - return new GcnGradleBuild( + return new GdkGradleBuild( build.getDsl(), build.getDependencies(), plugins, diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnMavenBuildCreator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkMavenBuildCreator.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnMavenBuildCreator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkMavenBuildCreator.java index 53d7ff0..4e5db03 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnMavenBuildCreator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkMavenBuildCreator.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; -import cloud.graal.gcn.buildtool.GcnMavenBuild; -import cloud.graal.gcn.feature.replaced.template.gcnMvnPluginJTE; +import cloud.graal.gdk.buildtool.GdkMavenBuild; +import cloud.graal.gdk.feature.replaced.GdkJTE; +import cloud.graal.gdk.feature.replaced.template.gdkMvnPluginJTE; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.order.OrderUtil; import io.micronaut.starter.application.generator.GeneratorContext; @@ -37,15 +38,13 @@ import java.util.LinkedHashSet; import java.util.List; -import static cloud.graal.gcn.feature.replaced.GcnJTE.JTE_NATIVE_RESOURCES; - /** * Extends MavenBuildCreator to add the Oracle Maven repo. * * @since 1.0.0 */ @Singleton -public class GcnMavenBuildCreator extends MavenBuildCreator { +public class GdkMavenBuildCreator extends MavenBuildCreator { @NonNull @Override @@ -60,7 +59,7 @@ public MavenBuild create(GeneratorContext generatorContext, List rep .sorted(OrderUtil.COMPARATOR) .toList(); - return new GcnMavenBuild( + return new GdkMavenBuild( build.getArtifactId(), deduplicate(build.getAnnotationProcessors()), deduplicate(build.getTestAnnotationProcessors()), @@ -83,13 +82,13 @@ private List deduplicate(List annota private MavenPlugin clonePlugin(MavenPlugin plugin) { if ("jte-maven-plugin".equals(plugin.getArtifactId())) { - gcnMvnPluginJTE extensionModel = (gcnMvnPluginJTE) ((RockerWritable) plugin.getExtension()).getModel(); + gdkMvnPluginJTE extensionModel = (gdkMvnPluginJTE) ((RockerWritable) plugin.getExtension()).getModel(); return new MavenPlugin( plugin.getArtifactId(), - new RockerWritable(gcnMvnPluginJTE.template( + new RockerWritable(gdkMvnPluginJTE.template( extensionModel.groupId(), extensionModel.artifactId(), - JTE_NATIVE_RESOURCES, + GdkJTE.JTE_NATIVE_RESOURCES, extensionModel.version(), extensionModel.templateDirectory())), 0); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnRepository.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkRepository.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnRepository.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkRepository.java index 804f98f..730abd1 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnRepository.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.Repository; @@ -23,12 +23,12 @@ * * @since 1.0.0 */ -public class GcnRepository implements Repository { +public class GdkRepository implements Repository { @NonNull @Override public String getId() { - return "gcn"; + return "gdk"; } @NonNull diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnStageRepository.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkStageRepository.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnStageRepository.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkStageRepository.java index 827aece..1863d5a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/GcnStageRepository.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/GdkStageRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; import io.micronaut.starter.build.Repository; @@ -22,11 +22,11 @@ * * @since 1.0.0 */ -public class GcnStageRepository implements Repository { +public class GdkStageRepository implements Repository { @Override public String getId() { - return "gcn-stage"; + return "gdk-stage"; } @Override diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/PlatformIndependent.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/PlatformIndependent.java similarity index 67% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/PlatformIndependent.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/PlatformIndependent.java index b293443..284f33a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/PlatformIndependent.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/PlatformIndependent.java @@ -13,20 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create; +package cloud.graal.gdk.feature.create; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.AbstractGcnFeature; -import cloud.graal.gcn.feature.create.gatewayfunction.AbstractGcnCloudGatewayFunction; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.template.BuildGradlePostProcessor; -import cloud.graal.gcn.template.LogbackXmlPostProcessor; -import cloud.graal.gcn.template.MavenPlatformPostProcessor; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.AbstractGdkFeature; +import cloud.graal.gdk.feature.create.gatewayfunction.AbstractGdkCloudGatewayFunction; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.template.BuildGradlePostProcessor; +import cloud.graal.gdk.template.LogbackXmlPostProcessor; +import cloud.graal.gdk.template.MavenPlatformPostProcessor; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.gradle.GradleDsl; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.build.gradle.GradleDsl.GROOVY; /** @@ -35,24 +35,24 @@ * @since 1.0.0 */ @Singleton -public class PlatformIndependent extends AbstractGcnFeature { +public class PlatformIndependent extends AbstractGdkFeature { /** * The feature name. */ - public static final String NAME = "gcn-platform-independent"; + public static final String NAME = "gdk-platform-independent"; @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { GradleDsl dsl = generatorContext.getBuildTool().getGradleDsl().orElse(GROOVY); - generatorContext.addPostProcessor("build", new BuildGradlePostProcessor(dsl, false, generatorContext.getFeature(AbstractGcnCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); + generatorContext.addPostProcessor("build", new BuildGradlePostProcessor(dsl, false, generatorContext.getFeature(AbstractGdkCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); generatorContext.addPostProcessor("loggingConfig", new LogbackXmlPostProcessor()); generatorContext.addPostProcessor("mavenPom", new MavenPlatformPostProcessor()); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/AbstractGcnCloudApp.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/AbstractGdkCloudApp.java similarity index 71% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/AbstractGcnCloudApp.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/AbstractGdkCloudApp.java index 2ef98c1..890f63c 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/AbstractGcnCloudApp.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/AbstractGdkCloudApp.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.app; +package cloud.graal.gdk.feature.create.app; -import cloud.graal.gcn.feature.create.AbstractGcnCreateFeature; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.feature.create.AbstractGdkCreateFeature; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.core.annotation.NonNull; -import static cloud.graal.gcn.model.GcnProjectType.APPLICATION; +import static cloud.graal.gdk.model.GdkProjectType.APPLICATION; /** * Base class for create-app features. * * @since 1.0.0 */ -public abstract class AbstractGcnCloudApp extends AbstractGcnCreateFeature { +public abstract class AbstractGdkCloudApp extends AbstractGdkCreateFeature { @NonNull @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return APPLICATION; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAwsCloudApp.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAwsCloudApp.java similarity index 77% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAwsCloudApp.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAwsCloudApp.java index 68abe03..16b29f6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAwsCloudApp.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAwsCloudApp.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.app; +package cloud.graal.gdk.feature.create.app; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS create-app feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnAwsCloudApp extends AbstractGcnCloudApp { +public class GdkAwsCloudApp extends AbstractGdkCloudApp { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-cloud-app"; + return "gdk-aws-cloud-app"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAzureCloudApp.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAzureCloudApp.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAzureCloudApp.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAzureCloudApp.java index cda2e4c..b4ab209 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnAzureCloudApp.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkAzureCloudApp.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.app; +package cloud.graal.gdk.feature.create.app; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure create-app feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnAzureCloudApp extends AbstractGcnCloudApp { +public class GdkAzureCloudApp extends AbstractGdkCloudApp { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-cloud-app"; + return "gdk-azure-cloud-app"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnGcpCloudApp.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkGcpCloudApp.java similarity index 77% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnGcpCloudApp.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkGcpCloudApp.java index 25303e9..2876743 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnGcpCloudApp.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkGcpCloudApp.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.app; +package cloud.graal.gdk.feature.create.app; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP create-app feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnGcpCloudApp extends AbstractGcnCloudApp { +public class GdkGcpCloudApp extends AbstractGdkCloudApp { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-cloud-app"; + return "gdk-gcp-cloud-app"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnOciCloudApp.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkOciCloudApp.java similarity index 77% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnOciCloudApp.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkOciCloudApp.java index 27831eb..5c19f70 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/app/GcnOciCloudApp.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/app/GdkOciCloudApp.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.app; +package cloud.graal.gdk.feature.create.app; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI create-app feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnOciCloudApp extends AbstractGcnCloudApp { +public class GdkOciCloudApp extends AbstractGdkCloudApp { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-cloud-app"; + return "gdk-oci-cloud-app"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/AbstractGcnCloudFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/AbstractGdkCloudFunction.java similarity index 69% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/AbstractGcnCloudFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/AbstractGdkCloudFunction.java index 0e88ffe..abe5dde 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/AbstractGcnCloudFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/AbstractGdkCloudFunction.java @@ -13,25 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.function; +package cloud.graal.gdk.feature.create.function; -import cloud.graal.gcn.feature.create.AbstractGcnCreateFeature; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.feature.create.AbstractGdkCreateFeature; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.FunctionFeature; -import static cloud.graal.gcn.model.GcnProjectType.FUNCTION; +import static cloud.graal.gdk.model.GdkProjectType.FUNCTION; /** * Base class for create-function features. * * @since 1.0.0 */ -public abstract class AbstractGcnCloudFunction extends AbstractGcnCreateFeature implements FunctionFeature { +public abstract class AbstractGdkCloudFunction extends AbstractGdkCreateFeature implements FunctionFeature { @NonNull @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return FUNCTION; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAwsCloudFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAwsCloudFunction.java similarity index 65% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAwsCloudFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAwsCloudFunction.java index 494303a..839a6eb 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAwsCloudFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAwsCloudFunction.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.function; +package cloud.graal.gdk.feature.create.function; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.replaced.GcnAwsLambda; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.replaced.GdkAwsLambda; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.awslambda.AwsLambda; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS create-function feature. @@ -30,31 +30,31 @@ * @since 1.0.0 */ @Singleton -public class GcnAwsCloudFunction extends AbstractGcnCloudFunction { +public class GdkAwsCloudFunction extends AbstractGdkCloudFunction { - private final GcnAwsLambda awsLambda; + private final GdkAwsLambda awsLambda; /** - * @param awsLambda GcnAwsLambda feature + * @param awsLambda GdkAwsLambda feature */ - public GcnAwsCloudFunction(GcnAwsLambda awsLambda) { + public GdkAwsCloudFunction(GdkAwsLambda awsLambda) { this.awsLambda = awsLambda; } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(awsLambda, AwsLambda.class); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-cloud-function"; + return "gdk-aws-cloud-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAzureCloudFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAzureCloudFunction.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAzureCloudFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAzureCloudFunction.java index b56d54c..afa815b 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnAzureCloudFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkAzureCloudFunction.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.function; +package cloud.graal.gdk.feature.create.function; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure create-function feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnAzureCloudFunction extends AbstractGcnCloudFunction { +public class GdkAzureCloudFunction extends AbstractGdkCloudFunction { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-cloud-function"; + return "gdk-azure-cloud-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnGcpCloudFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkGcpCloudFunction.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnGcpCloudFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkGcpCloudFunction.java index 75f7094..0d1c2d8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnGcpCloudFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkGcpCloudFunction.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.function; +package cloud.graal.gdk.feature.create.function; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP create-function feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnGcpCloudFunction extends AbstractGcnCloudFunction { +public class GdkGcpCloudFunction extends AbstractGdkCloudFunction { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-cloud-function"; + return "gdk-gcp-cloud-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnOciCloudFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkOciCloudFunction.java similarity index 73% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnOciCloudFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkOciCloudFunction.java index f246ec0..7dde561 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/function/GcnOciCloudFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/function/GdkOciCloudFunction.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.function; +package cloud.graal.gdk.feature.create.function; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.oraclefunction.OracleRawFunction; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI create-function feature. @@ -29,31 +29,31 @@ * @since 1.0.0 */ @Singleton -public class GcnOciCloudFunction extends AbstractGcnCloudFunction { +public class GdkOciCloudFunction extends AbstractGdkCloudFunction { private final OracleRawFunction oracleRawFunction; /** * @param oracleRawFunction OracleRawFunction feature */ - public GcnOciCloudFunction(OracleRawFunction oracleRawFunction) { + public GdkOciCloudFunction(OracleRawFunction oracleRawFunction) { this.oracleRawFunction = oracleRawFunction; } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(oracleRawFunction, OracleRawFunction.class); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-cloud-function"; + return "gdk-oci-cloud-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/AbstractGcnCloudGatewayFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/AbstractGdkCloudGatewayFunction.java similarity index 69% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/AbstractGcnCloudGatewayFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/AbstractGdkCloudGatewayFunction.java index 09dbf7f..3609cc6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/AbstractGcnCloudGatewayFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/AbstractGdkCloudGatewayFunction.java @@ -13,25 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.gatewayfunction; +package cloud.graal.gdk.feature.create.gatewayfunction; -import cloud.graal.gcn.feature.create.AbstractGcnCreateFeature; -import cloud.graal.gcn.model.GcnProjectType; +import cloud.graal.gdk.feature.create.AbstractGdkCreateFeature; +import cloud.graal.gdk.model.GdkProjectType; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.FunctionFeature; -import static cloud.graal.gcn.model.GcnProjectType.GATEWAY_FUNCTION; +import static cloud.graal.gdk.model.GdkProjectType.GATEWAY_FUNCTION; /** * Base class for create-gateway-function features. * * @since 1.0.0 */ -public abstract class AbstractGcnCloudGatewayFunction extends AbstractGcnCreateFeature implements FunctionFeature { +public abstract class AbstractGdkCloudGatewayFunction extends AbstractGdkCreateFeature implements FunctionFeature { @NonNull @Override - public GcnProjectType getProjectType() { + public GdkProjectType getProjectType() { return GATEWAY_FUNCTION; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAwsCloudGatewayFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAwsCloudGatewayFunction.java similarity index 71% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAwsCloudGatewayFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAwsCloudGatewayFunction.java index 1d161cf..3437dc3 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAwsCloudGatewayFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAwsCloudGatewayFunction.java @@ -13,19 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.gatewayfunction; +package cloud.graal.gdk.feature.create.gatewayfunction; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.replaced.GcnAwsLambda; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.replaced.GdkAwsLambda; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.aws.AmazonApiGateway; import io.micronaut.starter.feature.function.awslambda.AwsLambda; import io.micronaut.starter.feature.json.SerializationJacksonFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS create-gateway-function feature. @@ -33,19 +33,19 @@ * @since 1.0.0 */ @Singleton -public class GcnAwsCloudGatewayFunction extends AbstractGcnCloudGatewayFunction { +public class GdkAwsCloudGatewayFunction extends AbstractGdkCloudGatewayFunction { private final AmazonApiGateway amazonApiGateway; - private final GcnAwsLambda awsLambda; + private final GdkAwsLambda awsLambda; private final SerializationJacksonFeature serializationJacksonFeature; /** * @param amazonApiGateway AmazonApiGateway feature - * @param awsLambda GcnAwsLambda feature + * @param awsLambda GdkAwsLambda feature * @param serializationJacksonFeature serialisation Jackson feature */ - public GcnAwsCloudGatewayFunction(AmazonApiGateway amazonApiGateway, - GcnAwsLambda awsLambda, + public GdkAwsCloudGatewayFunction(AmazonApiGateway amazonApiGateway, + GdkAwsLambda awsLambda, SerializationJacksonFeature serializationJacksonFeature) { this.amazonApiGateway = amazonApiGateway; this.awsLambda = awsLambda; @@ -53,24 +53,24 @@ public GcnAwsCloudGatewayFunction(AmazonApiGateway amazonApiGateway, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(serializationJacksonFeature, SerializationJacksonFeature.class); featureContext.addFeature(awsLambda, AwsLambda.class); featureContext.addFeature(amazonApiGateway, AmazonApiGateway.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { super.apply(generatorContext); applyForLib(generatorContext, () -> { serializationJacksonFeature.apply(generatorContext); }); } - protected void applyForLib(GcnGeneratorContext generatorContext, + protected void applyForLib(GdkGeneratorContext generatorContext, Runnable runnable) { - GcnCloud cloud = generatorContext.getCloud(); + GdkCloud cloud = generatorContext.getCloud(); generatorContext.resetCloud(); @@ -83,13 +83,13 @@ protected void applyForLib(GcnGeneratorContext generatorContext, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-cloud-gateway-function"; + return "gdk-aws-cloud-gateway-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAzureCloudGatewayFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAzureCloudGatewayFunction.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAzureCloudGatewayFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAzureCloudGatewayFunction.java index 7866fed..3757010 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnAzureCloudGatewayFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkAzureCloudGatewayFunction.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.gatewayfunction; +package cloud.graal.gdk.feature.create.gatewayfunction; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure create-gateway-function feature. @@ -27,17 +27,17 @@ * @since 1.0.0 */ @Singleton -public class GcnAzureCloudGatewayFunction extends AbstractGcnCloudGatewayFunction { +public class GdkAzureCloudGatewayFunction extends AbstractGdkCloudGatewayFunction { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-cloud-gateway-function"; + return "gdk-azure-cloud-gateway-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnGcpCloudGatewayFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkGcpCloudGatewayFunction.java similarity index 73% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnGcpCloudGatewayFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkGcpCloudGatewayFunction.java index b03c576..75daf9a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnGcpCloudGatewayFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkGcpCloudGatewayFunction.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.gatewayfunction; +package cloud.graal.gdk.feature.create.gatewayfunction; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.gcp.GoogleCloudRawFunction; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP create-gateway-function feature. @@ -29,31 +29,31 @@ * @since 1.0.0 */ @Singleton -public class GcnGcpCloudGatewayFunction extends AbstractGcnCloudGatewayFunction { +public class GdkGcpCloudGatewayFunction extends AbstractGdkCloudGatewayFunction { private final GoogleCloudRawFunction googleCloudFunction; /** * @param googleCloudFunction {@link GoogleCloudRawFunction} feature */ - public GcnGcpCloudGatewayFunction(GoogleCloudRawFunction googleCloudFunction) { + public GdkGcpCloudGatewayFunction(GoogleCloudRawFunction googleCloudFunction) { this.googleCloudFunction = googleCloudFunction; } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(googleCloudFunction, GoogleCloudRawFunction.class); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-cloud-gateway-function"; + return "gdk-gcp-cloud-gateway-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnOciCloudGatewayFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkOciCloudGatewayFunction.java similarity index 73% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnOciCloudGatewayFunction.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkOciCloudGatewayFunction.java index 63db710..81258f4 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/gatewayfunction/GcnOciCloudGatewayFunction.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/gatewayfunction/GdkOciCloudGatewayFunction.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.create.gatewayfunction; +package cloud.graal.gdk.feature.create.gatewayfunction; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.function.oraclefunction.OracleRawFunction; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI create-gateway-function feature. @@ -29,31 +29,31 @@ * @since 1.0.0 */ @Singleton -public class GcnOciCloudGatewayFunction extends AbstractGcnCloudGatewayFunction { +public class GdkOciCloudGatewayFunction extends AbstractGdkCloudGatewayFunction { private final OracleRawFunction oracleRawFunction; /** * @param oracleRawFunction OracleRawFunction feature */ - public GcnOciCloudGatewayFunction(OracleRawFunction oracleRawFunction) { + public GdkOciCloudGatewayFunction(OracleRawFunction oracleRawFunction) { this.oracleRawFunction = oracleRawFunction; } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(oracleRawFunction, OracleRawFunction.class); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-cloud-gateway-function"; + return "gdk-oci-cloud-gateway-function"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/BuildSrcBuildGradle.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/BuildSrcBuildGradle.rocker.raw similarity index 72% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/BuildSrcBuildGradle.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/BuildSrcBuildGradle.rocker.raw index f68a960..42a133a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/BuildSrcBuildGradle.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/BuildSrcBuildGradle.rocker.raw @@ -1,5 +1,5 @@ -@import cloud.graal.gcn.GcnGeneratorContext -@args (GcnGeneratorContext gc, boolean kotlin) +@import cloud.graal.gdk.GdkGeneratorContext +@args (GdkGeneratorContext gc, boolean kotlin) plugins { @if (kotlin) { `kotlin-dsl` diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsGroovy.rocker.raw similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsGroovy.rocker.raw index 42f8403..45f0a2b 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsGroovy.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsGroovy.rocker.raw @@ -1,12 +1,12 @@ dependencies { components { - withModule "cloud.graal.gcn:gcn-bom", EnforceBomDependencies + withModule "cloud.graal.gdk:gdk-bom", EnforceBomDependencies } } abstract class EnforceBomDependencies implements ComponentMetadataRule { void execute(ComponentMetadataContext ctx) { - if (ctx.details.id.group == "cloud.graal.gcn" && ctx.details.id.name == "gcn-bom") { + if (ctx.details.id.group == "cloud.graal.gdk" && ctx.details.id.name == "gdk-bom") { ctx.details.allVariants { withDependencyConstraints { it.each { md -> diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsKotlin.rocker.raw similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsKotlin.rocker.raw index 2ba6d8f..a3671e9 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/create/template/EnforceVersionsKotlin.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/create/template/EnforceVersionsKotlin.rocker.raw @@ -1,12 +1,12 @@ dependencies { components { - withModule("cloud.graal.gcn:gcn-bom") + withModule("cloud.graal.gdk:gdk-bom") } } open class EnforceBomDependencies : ComponentMetadataRule { override fun execute(ctx: ComponentMetadataContext) { - if (ctx.details.id.group == "cloud.graal.gcn" && ctx.details.id.name == "gcn-bom") { + if (ctx.details.id.group == "cloud.graal.gdk" && ctx.details.id.name == "gdk-bom") { ctx.details.allVariants { withDependencyConstraints { for (md in this) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuild.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuild.java similarity index 84% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuild.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuild.java index e08a023..80e8bdd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuild.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuild.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.graalvm; +package cloud.graal.gdk.feature.graalvm; -import cloud.graal.gcn.GcnGeneratorContext; +import cloud.graal.gdk.GdkGeneratorContext; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.application.generator.GeneratorContext; @@ -52,16 +52,16 @@ public void processSelectedFeatures(FeatureContext featureContext) { public void apply(GeneratorContext ctx) { if (ctx.getBuildTool().isGradle()) { String template = "build"; - if (!((GcnGeneratorContext) ctx).getCloud().getModuleName().isBlank()) { - template = template + "-" + ((GcnGeneratorContext) ctx).getCloud().getModuleName(); + if (!((GdkGeneratorContext) ctx).getCloud().getModuleName().isBlank()) { + template = template + "-" + ((GdkGeneratorContext) ctx).getCloud().getModuleName(); } - ((GcnGeneratorContext) ctx).addPostProcessor(template, GRADLE_POST_PROCESSOR); + ((GdkGeneratorContext) ctx).addPostProcessor(template, GRADLE_POST_PROCESSOR); } else { String template = "mavenPom"; - if (!((GcnGeneratorContext) ctx).getCloud().getModuleName().isBlank()) { - template = template + "-" + ((GcnGeneratorContext) ctx).getCloud().getModuleName(); + if (!((GdkGeneratorContext) ctx).getCloud().getModuleName().isBlank()) { + template = template + "-" + ((GdkGeneratorContext) ctx).getCloud().getModuleName(); } - ((GcnGeneratorContext) ctx).addPostProcessor(template, MAVEN_POST_PROCESSOR); + ((GdkGeneratorContext) ctx).addPostProcessor(template, MAVEN_POST_PROCESSOR); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuildPostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuildPostProcessor.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuildPostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuildPostProcessor.java index 4602a9b..fff5797 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/graalvm/GraalvmQuickBuildPostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/graalvm/GraalvmQuickBuildPostProcessor.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.graalvm; +package cloud.graal.gdk.feature.graalvm; -import cloud.graal.gcn.template.TemplatePostProcessor; +import cloud.graal.gdk.template.TemplatePostProcessor; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.options.BuildTool; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/GrpcNetty.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/GrpcNetty.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/GrpcNetty.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/GrpcNetty.java index c6bbce9..94d2857 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/GrpcNetty.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/GrpcNetty.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.misc; +package cloud.graal.gdk.feature.misc; -import cloud.graal.gcn.feature.service.logging.GcpLogging; -import cloud.graal.gcn.feature.service.metrics.GcpMetrics; -import cloud.graal.gcn.feature.service.objectstore.GcpObjectStore; -import cloud.graal.gcn.feature.service.secretmanagement.GcpSecretManagement; -import cloud.graal.gcn.feature.service.tracing.GcpTracing; +import cloud.graal.gdk.feature.service.logging.GcpLogging; +import cloud.graal.gdk.feature.service.metrics.GcpMetrics; +import cloud.graal.gdk.feature.service.objectstore.GcpObjectStore; +import cloud.graal.gdk.feature.service.secretmanagement.GcpSecretManagement; +import cloud.graal.gdk.feature.service.tracing.GcpTracing; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.application.generator.GeneratorContext; @@ -82,7 +82,7 @@ public void apply(GeneratorContext generatorContext) { @NonNull @Override public String getName() { - return "gcn-grpc-netty"; + return "gdk-grpc-netty"; } @Override diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/License.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/License.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/License.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/License.java index a027590..ea63ac4 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/License.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/License.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.misc; +package cloud.graal.gdk.feature.misc; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.misc.template.ApacheLicense; -import cloud.graal.gcn.feature.misc.template.ApacheNotice; -import cloud.graal.gcn.template.TemplatePostProcessor; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.misc.template.ApacheLicense; +import cloud.graal.gdk.feature.misc.template.ApacheNotice; +import cloud.graal.gdk.template.TemplatePostProcessor; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.application.generator.GeneratorContext; @@ -33,9 +33,9 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import static cloud.graal.gcn.feature.misc.License.PomLicensePostProcessor.PATTERN_POM; -import static cloud.graal.gcn.feature.misc.License.SrcLicensePostProcessor.PATTERN_GRADLE; -import static cloud.graal.gcn.feature.misc.License.SrcLicensePostProcessor.PATTERN_SRC; +import static cloud.graal.gdk.feature.misc.License.PomLicensePostProcessor.PATTERN_POM; +import static cloud.graal.gdk.feature.misc.License.SrcLicensePostProcessor.PATTERN_GRADLE; +import static cloud.graal.gdk.feature.misc.License.SrcLicensePostProcessor.PATTERN_SRC; import static io.micronaut.starter.template.Template.ROOT; /** @@ -66,7 +66,7 @@ public class License implements DefaultFeature { @Override public void apply(GeneratorContext gc) { - GcnGeneratorContext generatorContext = (GcnGeneratorContext) gc; + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; generatorContext.addTemplate("license", new RockerTemplate(ROOT, "LICENSE", ApacheLicense.template())); @@ -81,7 +81,7 @@ public void apply(GeneratorContext gc) { @NonNull @Override public String getName() { - return "gcn-license"; + return "gdk-license"; } @Override diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/template/ApacheLicense.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/template/ApacheLicense.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/template/ApacheLicense.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/template/ApacheLicense.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/template/ApacheNotice.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/template/ApacheNotice.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/misc/template/ApacheNotice.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/misc/template/ApacheNotice.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/AwsLambdaInitializer.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/AwsLambdaInitializer.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/AwsLambdaInitializer.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/AwsLambdaInitializer.java index dae0070..573573d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/AwsLambdaInitializer.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/AwsLambdaInitializer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Context; import jakarta.inject.Singleton; @@ -33,8 +33,8 @@ class AwsLambdaInitializer { @SuppressWarnings("unused") - AwsLambdaInitializer(GcnAwsLambda awsLambda, - GcnAwsLambdaCustomRuntime customRuntime) { + AwsLambdaInitializer(GdkAwsLambda awsLambda, + GdkAwsLambdaCustomRuntime customRuntime) { customRuntime.init(); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambda.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambda.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambda.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambda.java index 1cb27f4..2f98ac2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambda.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambda.java @@ -13,11 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; import io.micronaut.context.annotation.Replaces; -import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.architecture.X86; import io.micronaut.starter.feature.aws.AwsLambdaEventsSerde; import io.micronaut.starter.feature.aws.AwsLambdaSnapstart; @@ -29,8 +27,6 @@ import io.micronaut.starter.feature.other.ShadePlugin; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; - /** * Replaces the default feature to conditionally apply only for AWS. This is * needed because AwsLambda is a default feature. @@ -39,13 +35,13 @@ */ @Replaces(AwsLambda.class) @Singleton -public class GcnAwsLambda extends AwsLambda { +public class GdkAwsLambda extends AwsLambda { /** * @param shadePlugin ShadePlugin feature * @param customRuntime AwsLambdaCustomRuntime feature */ - public GcnAwsLambda(ShadePlugin shadePlugin, + public GdkAwsLambda(ShadePlugin shadePlugin, AwsLambdaCustomRuntime customRuntime, X86 x86, AwsLambdaSnapstart snapstart, HttpClientJdk httpClientJdk, @@ -54,12 +50,4 @@ public GcnAwsLambda(ShadePlugin shadePlugin, FunctionAwsLambdaHandlerProvider functionAwsLambdaHandlerProvider) { super(shadePlugin, customRuntime, x86, snapstart, httpClientJdk, awsLambdaEventsSerde, defaultAwsLambdaHandlerProvider, functionAwsLambdaHandlerProvider); } - - @Override - public void apply(GeneratorContext generatorContext) { - if (AWS == ((GcnGeneratorContext) generatorContext).getCloud()) { - super.apply(generatorContext); - } - } - } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambdaCustomRuntime.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambdaCustomRuntime.java similarity index 92% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambdaCustomRuntime.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambdaCustomRuntime.java index d39e828..7b14af3 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnAwsLambdaCustomRuntime.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkAwsLambdaCustomRuntime.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.feature.FeatureContext; @@ -32,13 +32,13 @@ */ @Replaces(AwsLambdaCustomRuntime.class) @Singleton -public class GcnAwsLambdaCustomRuntime extends AwsLambdaCustomRuntime { +public class GdkAwsLambdaCustomRuntime extends AwsLambdaCustomRuntime { private Provider awsLambdaProvider; private AwsLambda awsLambda; private final HttpClientJdk httpClient; - GcnAwsLambdaCustomRuntime(Provider awsLambda, HttpClientJdk httpClientJdk) { + GdkAwsLambdaCustomRuntime(Provider awsLambda, HttpClientJdk httpClientJdk) { super(null, httpClientJdk); this.awsLambdaProvider = awsLambda; this.httpClient = httpClientJdk; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnConsole.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkConsole.java similarity index 94% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnConsole.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkConsole.java index fcbae7c..03cddf8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnConsole.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkConsole.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; @@ -28,7 +28,7 @@ */ @Replaces(Console.class) @Singleton -public class GcnConsole extends Console { +public class GdkConsole extends Console { @Override public void apply(GeneratorContext generatorContext) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnDefaultPomDependencyVersionResolver.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkDefaultPomDependencyVersionResolver.java similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnDefaultPomDependencyVersionResolver.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkDefaultPomDependencyVersionResolver.java index 05348e0..89af53c 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnDefaultPomDependencyVersionResolver.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkDefaultPomDependencyVersionResolver.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.NonNull; @@ -27,15 +27,15 @@ import java.util.Map; import java.util.Optional; -import static cloud.graal.gcn.build.dependencies.GcnDependencies.ALL_DEPENDENCIES; +import static cloud.graal.gdk.build.dependencies.GdkDependencies.ALL_DEPENDENCIES; @Singleton @Replaces(DefaultPomDependencyVersionResolver.class) -public class GcnDefaultPomDependencyVersionResolver extends DefaultPomDependencyVersionResolver { +public class GdkDefaultPomDependencyVersionResolver extends DefaultPomDependencyVersionResolver { private static final Map COORDINATES; - public GcnDefaultPomDependencyVersionResolver() { + public GdkDefaultPomDependencyVersionResolver() { } public @NonNull Optional resolve(@NonNull String artifactId) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGoogleCloudFunctionFeatureValidator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGoogleCloudFunctionFeatureValidator.java similarity index 96% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGoogleCloudFunctionFeatureValidator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGoogleCloudFunctionFeatureValidator.java index 716bf20..907da36 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGoogleCloudFunctionFeatureValidator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGoogleCloudFunctionFeatureValidator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.ApplicationType; @@ -35,7 +35,7 @@ @Replaces(GoogleCloudFunctionFeatureValidator.class) @Singleton -public class GcnGoogleCloudFunctionFeatureValidator implements FeatureValidator { +public class GdkGoogleCloudFunctionFeatureValidator implements FeatureValidator { private static boolean supports(JdkVersion jdkVersion) { return jdkVersion == JDK_11 || jdkVersion == JDK_17 || jdkVersion == JDK_21; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGraalVmFeatureValidator.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGraalVmFeatureValidator.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGraalVmFeatureValidator.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGraalVmFeatureValidator.java index 004fe2c..902ee5a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGraalVmFeatureValidator.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGraalVmFeatureValidator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.util.StringUtils; @@ -34,7 +34,7 @@ */ @Singleton @Replaces(GraalVMFeatureValidator.class) -public class GcnGraalVmFeatureValidator extends GraalVMFeatureValidator { +public class GdkGraalVmFeatureValidator extends GraalVMFeatureValidator { @Override public void validatePostProcessing(Options options, ApplicationType applicationType, Set features) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGradle.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGradle.java similarity index 83% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGradle.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGradle.java index b8284a4..577844e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnGradle.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkGradle.java @@ -13,20 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.buildtool.GcnGradleBuild; -import cloud.graal.gcn.feature.create.GcnGradleBuildCreator; -import cloud.graal.gcn.feature.create.gatewayfunction.AbstractGcnCloudGatewayFunction; -import cloud.graal.gcn.feature.create.template.BuildSrcBuildGradle; -import cloud.graal.gcn.feature.create.template.EnforceVersionsGroovy; -import cloud.graal.gcn.feature.create.template.EnforceVersionsKotlin; -import cloud.graal.gcn.feature.replaced.template.LibBuildGradle; -import cloud.graal.gcn.feature.replaced.template.LibMicronautGradle; -import cloud.graal.gcn.feature.replaced.template.gcnGradlePluginJTE; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.template.BuildGradlePostProcessor; +package cloud.graal.gdk.feature.replaced; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.buildtool.GdkGradleBuild; +import cloud.graal.gdk.feature.create.GdkGradleBuildCreator; +import cloud.graal.gdk.feature.create.gatewayfunction.AbstractGdkCloudGatewayFunction; +import cloud.graal.gdk.feature.create.template.BuildSrcBuildGradle; +import cloud.graal.gdk.feature.create.template.EnforceVersionsGroovy; +import cloud.graal.gdk.feature.create.template.EnforceVersionsKotlin; +import cloud.graal.gdk.feature.replaced.template.LibBuildGradle; +import cloud.graal.gdk.feature.replaced.template.LibMicronautGradle; +import cloud.graal.gdk.feature.replaced.template.gdkGradlePluginJTE; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.template.BuildGradlePostProcessor; import com.fizzed.rocker.RockerModel; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.order.OrderUtil; @@ -53,9 +53,10 @@ import java.util.List; import java.util.Optional; -import static cloud.graal.gcn.GcnGeneratorContext.PLUGIN_SHADOW; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; -import static cloud.graal.gcn.GcnUtils.USE_GRADLE_VERSION_CATALOG; +import static cloud.graal.gdk.GdkGeneratorContext.PLUGIN_SHADOW; +import static cloud.graal.gdk.GdkUtils.LIB_MODULE; +import static cloud.graal.gdk.GdkUtils.USE_GRADLE_VERSION_CATALOG; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.build.gradle.GradleDsl.GROOVY; import static io.micronaut.starter.build.gradle.GradleDsl.KOTLIN; import static io.micronaut.starter.feature.build.gradle.MicronautApplicationGradlePlugin.Builder.APPLICATION; @@ -69,7 +70,7 @@ */ @Replaces(Gradle.class) @Singleton -public class GcnGradle extends Gradle { +public class GdkGradle extends Gradle { private static final String ARTIFACT_ID = "micronaut-gradle-plugin"; private static final String PLUGIN_TEST_RESOURCES = "io.micronaut.test-resources"; @@ -91,14 +92,14 @@ public class GcnGradle extends Gradle { private final CoordinateResolver coordinateResolver; private final RepositoryResolver repositoryResolver; - private final GcnGradleBuildCreator gradleBuildCreator; + private final GdkGradleBuildCreator gradleBuildCreator; /** * @param gradleBuildCreator GradleBuildCreator bean * @param coordinateResolver CoordinateResolver bean * @param repositoryResolver RepositoryResolver bean */ - public GcnGradle(GcnGradleBuildCreator gradleBuildCreator, + public GdkGradle(GdkGradleBuildCreator gradleBuildCreator, CoordinateResolver coordinateResolver, RepositoryResolver repositoryResolver) { super(gradleBuildCreator, repositoryResolver); @@ -111,7 +112,7 @@ public GcnGradle(GcnGradleBuildCreator gradleBuildCreator, protected RockerModel buildFile(GeneratorContext generatorContext, GradleBuild build) { - if (((GcnGeneratorContext) generatorContext).isPlatformIndependent()) { + if (((GdkGeneratorContext) generatorContext).isPlatformIndependent()) { return super.buildFile(generatorContext, build); } @@ -125,7 +126,7 @@ protected RockerModel buildFile(GeneratorContext generatorContext, @Override protected GradleBuild createBuild(GeneratorContext gc) { - GcnGeneratorContext generatorContext = (GcnGeneratorContext) gc; + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; List repositories = repositoryResolver.resolveRepositories(gc); @@ -159,7 +160,7 @@ protected GradleBuild createBuild(GeneratorContext gc) { plugins.add(p); } - return new GcnGradleBuild(original.getDsl(), + return new GdkGradleBuild(original.getDsl(), original.getDependencies(), plugins, gradleRepositories); } @@ -169,7 +170,7 @@ protected void addGradleInitFiles(GeneratorContext generatorContext) { super.addGradleInitFiles(generatorContext); } - private void addBuildSrc(GcnGeneratorContext generatorContext) { + private void addBuildSrc(GdkGeneratorContext generatorContext) { GradleDsl dsl = generatorContext .getBuildTool() @@ -182,8 +183,8 @@ private void addBuildSrc(GcnGeneratorContext generatorContext) { generatorContext.addTemplate(path + ext, new RockerTemplate(ROOT, path + ext, BuildSrcBuildGradle.template(generatorContext, kotlin))); - path = "buildSrc/src/main/" + (kotlin ? "kotlin" : "groovy") + "/cloud.graal.gcn.gcn-bom.gradle" + ext; - generatorContext.addTemplate("gcn-bom-plugin", new RockerTemplate(ROOT, path, + path = "buildSrc/src/main/" + (kotlin ? "kotlin" : "groovy") + "/cloud.graal.gdk.gdk-bom.gradle" + ext; + generatorContext.addTemplate("gdk-bom-plugin", new RockerTemplate(ROOT, path, kotlin ? EnforceVersionsKotlin.template() : EnforceVersionsGroovy.template())); } @@ -204,31 +205,31 @@ private Optional resolveTestRuntime(GeneratorContext generatorContext) { @Override public void apply(GeneratorContext generatorContext) { super.apply(generatorContext); - addGradleBuild((GcnGeneratorContext) generatorContext); + addGradleBuild((GdkGeneratorContext) generatorContext); } - private void addGradleBuild(GcnGeneratorContext generatorContext) { + private void addGradleBuild(GdkGeneratorContext generatorContext) { GradleDsl dsl = generatorContext.getBuildTool().getGradleDsl().orElse(GradleDsl.GROOVY); - GcnCloud reset = generatorContext.getCloud(); + GdkCloud reset = generatorContext.getCloud(); generatorContext.getClouds().forEach(x -> addCloudGradleBuild(generatorContext, dsl, x)); generatorContext.setCloud(reset); // for lib/build.gradle - generatorContext.addPostProcessor("build", new BuildGradlePostProcessor(dsl, false, generatorContext.getFeature(AbstractGcnCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); + generatorContext.addPostProcessor("build", new BuildGradlePostProcessor(dsl, false, generatorContext.getFeature(AbstractGdkCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); } - private void addCloudGradleBuild(GcnGeneratorContext generatorContext, GradleDsl dsl, - GcnCloud gcnCloud) { + private void addCloudGradleBuild(GdkGeneratorContext generatorContext, GradleDsl dsl, + GdkCloud cloud) { - if (gcnCloud == GcnCloud.NONE) { + if (cloud == NONE) { return; } - generatorContext.setCloud(gcnCloud); + generatorContext.setCloud(cloud); generatorContext.addDependency(Dependency.builder() .artifactId(LIB_MODULE + "-reference") @@ -271,33 +272,33 @@ private void addCloudGradleBuild(GcnGeneratorContext generatorContext, GradleDsl List dependencies = GradleDependency.listOf(generatorContext, USE_GRADLE_VERSION_CATALOG); - GradleBuild build = new GcnGradleBuild( + GradleBuild build = new GdkGradleBuild( original.getDsl(), dependencies, copiedPlugins, GradleRepository.listOf(dsl, repositories)); - String templateKey = "build-" + gcnCloud.getModuleName(); - generatorContext.addTemplate(templateKey, new RockerTemplate(gcnCloud.getModuleName(), generatorContext.getBuildTool().getBuildFileName(), + String templateKey = "build-" + cloud.getModuleName(); + generatorContext.addTemplate(templateKey, new RockerTemplate(cloud.getModuleName(), generatorContext.getBuildTool().getBuildFileName(), buildGradle.template( generatorContext.getApplicationType(), generatorContext.getProject(), - generatorContext.getFeatures(gcnCloud), + generatorContext.getFeatures(cloud), build) )); - generatorContext.addPostProcessor(templateKey, new BuildGradlePostProcessor(dsl, true, generatorContext.getFeature(AbstractGcnCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); + generatorContext.addPostProcessor(templateKey, new BuildGradlePostProcessor(dsl, true, generatorContext.getFeature(AbstractGdkCloudGatewayFunction.class).orElse(null) != null, generatorContext.getApplicationType())); } private GradlePlugin cloneJtePlugin(GradlePlugin plugin) { - gcnGradlePluginJTE extensionModel = (gcnGradlePluginJTE) ((RockerWritable) plugin.getExtension()).getModel(); + gdkGradlePluginJTE extensionModel = (gdkGradlePluginJTE) ((RockerWritable) plugin.getExtension()).getModel(); return new GradlePlugin( plugin.getGradleFile(), plugin.getId(), plugin.getVersion(), null, - new RockerWritable(gcnGradlePluginJTE.template( + new RockerWritable(gdkGradlePluginJTE.template( true, extensionModel.dsl(), extensionModel.path())), @@ -310,7 +311,7 @@ private GradlePlugin cloneJtePlugin(GradlePlugin plugin) { } private GradlePlugin cloneMicronautPlugin(GradlePlugin plugin, - GcnGeneratorContext generatorContext) { + GdkGeneratorContext generatorContext) { micronautGradle extensionModel = (micronautGradle) ((RockerWritable) plugin.getExtension()).getModel(); return new GradlePlugin( diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClient.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClient.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClient.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClient.java index 1f0a805..c878f51 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClient.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClient.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.feature.GcnFeature; +import cloud.graal.gdk.feature.GdkFeature; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.ApplicationType; import io.micronaut.starter.feature.DefaultFeature; @@ -36,13 +36,13 @@ */ @Replaces(HttpClient.class) @Singleton -public class GcnHttpClient extends HttpClient implements DefaultFeature { +public class GdkHttpClient extends HttpClient implements DefaultFeature { private static final String HTTP_CLIENT_TEST_NAME = new HttpClientTest().getName(); @Override public boolean shouldApply(ApplicationType applicationType, Options options, Set selectedFeatures) { - return selectedFeatures.stream().anyMatch(GcnFeature.class::isInstance) && selectedFeatures.stream().noneMatch(HttpClientJdk.class::isInstance); + return selectedFeatures.stream().anyMatch(GdkFeature.class::isInstance) && selectedFeatures.stream().noneMatch(HttpClientJdk.class::isInstance); } @Override diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClientJdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClientJdk.java similarity index 91% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClientJdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClientJdk.java index 36b4e04..6f32c0a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnHttpClientJdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkHttpClientJdk.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.feature.FeatureContext; @@ -23,12 +23,12 @@ import jakarta.inject.Singleton; /** - * GcnHttpClientJdk replaces HttpClientJdk. + * Replaces HttpClientJdk. * If HttpClientJdk feature is applied both HttpClientTest and HttpClient should be removed, generated app should have only one client. */ @Singleton @Replaces(HttpClientJdk.class) -public class GcnHttpClientJdk extends HttpClientJdk { +public class GdkHttpClientJdk extends HttpClientJdk { private static final String HTTP_CLIENT_TEST_NAME = new HttpClientTest().getName(); private static final String HTTP_CLIENT = new HttpClient().getName(); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnJTE.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkJTE.java similarity index 92% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnJTE.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkJTE.java index 3d7a111..4cac200 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnJTE.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkJTE.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.feature.replaced.template.gcnGradlePluginJTE; -import cloud.graal.gcn.feature.replaced.template.gcnMvnPluginJTE; +import cloud.graal.gdk.feature.replaced.template.gdkGradlePluginJTE; +import cloud.graal.gdk.feature.replaced.template.gdkMvnPluginJTE; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.generator.GeneratorContext; @@ -39,7 +39,7 @@ @Replaces(JTE.class) @Singleton -public class GcnJTE extends JTE implements ViewFeature, MicronautServerDependent { +public class GdkJTE extends JTE implements ViewFeature, MicronautServerDependent { public static final String ARTIFACT_ID_MICRONAUT_VIEWS_JTE = "micronaut-views-jte"; public static final String JTE_GROUP_ID = "gg.jte"; @@ -95,7 +95,7 @@ private BuildPlugin gradlePlugin(GeneratorContext generatorContext) { GradlePlugin.Builder builder = GradlePlugin.builder() .id("gg.jte.gradle") - .extension(new RockerWritable(gcnGradlePluginJTE.template(patchKapt, gradleDsl.orElse(GradleDsl.KOTLIN), JTE_SRC_DIR))) + .extension(new RockerWritable(gdkGradlePluginJTE.template(patchKapt, gradleDsl.orElse(GradleDsl.KOTLIN), JTE_SRC_DIR))) .lookupArtifactId("jte-gradle-plugin"); return builder.build(); } @@ -104,7 +104,7 @@ private BuildPlugin mavenPlugin(GeneratorContext generatorContext) { Coordinate coordinate = generatorContext.resolveCoordinate(MAVEN_PLUGIN_ARTIFACT_ID); return MavenPlugin.builder() .artifactId(MAVEN_PLUGIN_ARTIFACT_ID) - .extension(new RockerWritable(gcnMvnPluginJTE.template(coordinate.getGroupId(), + .extension(new RockerWritable(gdkMvnPluginJTE.template(coordinate.getGroupId(), coordinate.getArtifactId(), JTE_NATIVE_RESOURCES, coordinate.getVersion(), diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKoTest.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKoTest.java similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKoTest.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKoTest.java index bb9f2e2..7b46688 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKoTest.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKoTest.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.test.KoTest; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.options.BuildTool.MAVEN; /** @@ -33,7 +33,7 @@ */ @Replaces(KoTest.class) @Singleton -public class GcnKoTest extends KoTest { +public class GdkKoTest extends KoTest { /** * ARTIFACT_ID_KOTEST_RUNNER_JUNIT_5_JVM mirrored from base class for the UI. @@ -51,13 +51,13 @@ public class GcnKoTest extends KoTest { @Override public void doApply(GeneratorContext generatorContext) { - GcnGeneratorContext context = (GcnGeneratorContext) generatorContext; - GcnCloud cloud = context.getCloud(); + GdkGeneratorContext context = (GdkGeneratorContext) generatorContext; + GdkCloud cloud = context.getCloud(); if (cloud != NONE || context.isPlatformIndependent()) { // Configure Kotest for everything but the LIB_MODULE - // Note: GcnCloud.NONE here would be if a user selected a feature or a service but no cloud + // Note: GdkCloud.NONE here would be if a user selected a feature or a service but no cloud context.addUrlTemplate(cloud.getModuleName(), "koTestConfig" + cloud.getEnvironmentNameSuffix() + cloud.getModuleName(), "src/test/kotlin/io/kotest/provided/ProjectConfig.kt", diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKubernetes.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKubernetes.java similarity index 50% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKubernetes.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKubernetes.java index 2913a42..204be24 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnKubernetes.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkKubernetes.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.replaced.template.k8sYaml; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.replaced.template.k8sYaml; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.FeatureContext; @@ -30,33 +30,37 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AWS; -import static cloud.graal.gcn.model.GcnCloud.GCP; -import static cloud.graal.gcn.model.GcnCloud.NONE; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** - * GcnKubernetes replaces {@link Kubernetes} bean and add different kubernetes config file depending on the selected clouds. + * Replaces {@link Kubernetes} and adds different Kubernetes config file depending on the selected clouds. */ @Singleton @Replaces(Kubernetes.class) -public class GcnKubernetes extends Kubernetes { +public class GdkKubernetes extends Kubernetes { - private static final Map IMAGES = Map.of( - AWS, ".dkr.ecr..amazonaws.com/%s:latest", - GCP, "gcr.io//%s:latest", - OCI, ".ocir.io//gcn-k8s/%s-oci:latest", + private static final Map IMAGES = Map.of( + AWS, ".dkr.ecr..amazonaws.com/%s:latest", + AZURE, "TODO", + GCP, "gcr.io//%s:latest", + OCI, ".ocir.io//gdk-k8s/%s:latest", NONE, "%s" ); - public GcnKubernetes(Jib jib, Management management) { + public GdkKubernetes(Jib jib, Management management) { super(jib, management); } @Override - public void apply(GeneratorContext generatorContext) { - GcnGeneratorContext gcnGeneratorContext = (GcnGeneratorContext) generatorContext; - gcnGeneratorContext.getClouds().forEach(gcnCloud -> addYamlTemplate(gcnGeneratorContext, gcnCloud)); + public void apply(GeneratorContext gc) { + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; + for (GdkCloud cloud : generatorContext.getClouds()) { + addYamlTemplate(generatorContext, cloud); + } } @Override @@ -64,22 +68,21 @@ public void processSelectedFeatures(FeatureContext featureContext) { super.processSelectedFeatures(featureContext); } - protected void addYamlTemplate(GcnGeneratorContext generatorContext, - GcnCloud gcnCloud) { + protected void addYamlTemplate(GdkGeneratorContext generatorContext, + GdkCloud cloud) { - if (gcnCloud.equals(GcnCloud.NONE) && generatorContext.getClouds().size() > 1) { + if (cloud.equals(NONE) && generatorContext.getClouds().size() > 1) { return; } - String moduleName = gcnCloud.equals(GcnCloud.NONE) ? "" : "-" + gcnCloud.getModuleName(); + String moduleName = cloud.equals(NONE) ? "" : "-" + cloud.getModuleName(); - generatorContext.addTemplate(gcnCloud.name() + "k8sYaml", + generatorContext.addTemplate(cloud.name() + "k8sYaml", new RockerTemplate( Template.ROOT, "k8s" + moduleName + ".yml", k8sYaml.template( generatorContext.getProject(), - IMAGES.get(gcnCloud).formatted(generatorContext.getProject().getName()), gcnCloud))); + IMAGES.get(cloud).formatted(generatorContext.getProject().getName()), cloud))); } - } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnLogback.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkLogback.java similarity index 85% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnLogback.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkLogback.java index 727d442..cd7f9f5 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnLogback.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkLogback.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.logging.Logback; @@ -24,7 +24,7 @@ import io.micronaut.starter.template.RockerTemplate; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.feature.FeaturePhase.DEFAULT; /** @@ -34,13 +34,13 @@ */ @Replaces(Logback.class) @Singleton -public class GcnLogback extends Logback { +public class GdkLogback extends Logback { @Override protected void addConfig(GeneratorContext generatorContext, boolean useJul) { String key = "loggingConfig"; - GcnCloud cloud = ((GcnGeneratorContext) generatorContext).getCloud(); + GdkCloud cloud = ((GdkGeneratorContext) generatorContext).getCloud(); if (cloud != NONE) { key += '-' + cloud.getModuleName(); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMaven.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMaven.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMaven.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMaven.java index 69162a4..d3b25b4 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMaven.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMaven.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.create.GcnMavenBuildCreator; -import cloud.graal.gcn.feature.create.gatewayfunction.AbstractGcnCloudGatewayFunction; -import cloud.graal.gcn.feature.replaced.template.LibPom; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.template.MavenPlatformPostProcessor; -import cloud.graal.gcn.template.MavenPomPostProcessor; +package cloud.graal.gdk.feature.replaced; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.create.GdkMavenBuildCreator; +import cloud.graal.gdk.feature.create.gatewayfunction.AbstractGdkCloudGatewayFunction; +import cloud.graal.gdk.feature.replaced.template.LibPom; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.template.MavenPlatformPostProcessor; +import cloud.graal.gdk.template.MavenPomPostProcessor; import com.fizzed.rocker.RockerModel; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; @@ -39,7 +39,7 @@ import java.util.ListIterator; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; +import static cloud.graal.gdk.GdkUtils.LIB_MODULE; import static io.micronaut.starter.template.Template.ROOT; /** @@ -49,15 +49,15 @@ */ @Replaces(Maven.class) @Singleton -public class GcnMaven extends Maven { +public class GdkMaven extends Maven { private static final String PROPERTY_MAINCLASS = "exec.mainClass"; private static final String PROPERTY_RUNTIME = "micronaut.runtime"; private static final String PROPERTY_TEST_RESOURCES = "micronaut.test.resources.enabled"; - private final GcnMavenBuildCreator mavenBuildCreator; + private final GdkMavenBuildCreator mavenBuildCreator; - public GcnMaven(GcnMavenBuildCreator mavenBuildCreator, RepositoryResolver repositoryResolver) { + public GdkMaven(GdkMavenBuildCreator mavenBuildCreator, RepositoryResolver repositoryResolver) { super(mavenBuildCreator, repositoryResolver); this.mavenBuildCreator = mavenBuildCreator; } @@ -65,7 +65,7 @@ public GcnMaven(GcnMavenBuildCreator mavenBuildCreator, RepositoryResolver repos @Override protected MavenBuild createBuild(GeneratorContext generatorContext) { - if (((GcnGeneratorContext) generatorContext).isPlatformIndependent()) { + if (((GdkGeneratorContext) generatorContext).isPlatformIndependent()) { return super.createBuild(generatorContext); } @@ -83,7 +83,7 @@ protected MavenBuild createBuild(GeneratorContext generatorContext) { @Override protected RockerModel pom(GeneratorContext generatorContext, MavenBuild mavenBuild) { - if (((GcnGeneratorContext) generatorContext).isPlatformIndependent()) { + if (((GdkGeneratorContext) generatorContext).isPlatformIndependent()) { return super.pom(generatorContext, mavenBuild); } @@ -96,14 +96,14 @@ protected RockerModel pom(GeneratorContext generatorContext, MavenBuild mavenBui @Override public void apply(GeneratorContext generatorContext) { super.apply(generatorContext); - addMavenBuild((GcnGeneratorContext) generatorContext); + addMavenBuild((GdkGeneratorContext) generatorContext); } - private void addMavenBuild(GcnGeneratorContext generatorContext) { + private void addMavenBuild(GdkGeneratorContext generatorContext) { - GcnCloud currentCloud = generatorContext.getCloud(); + GdkCloud currentCloud = generatorContext.getCloud(); - for (GcnCloud cloud : generatorContext.getClouds()) { + for (GdkCloud cloud : generatorContext.getClouds()) { cloudPom(generatorContext, cloud); } @@ -126,14 +126,14 @@ private void addMavenBuild(GcnGeneratorContext generatorContext) { generatorContext.getLibProject().getName(), generatorContext.getLibProject().getPackageName(), generatorContext.getApplicationType(), - generatorContext.getFeature(AbstractGcnCloudGatewayFunction.class).orElse(null) != null, + generatorContext.getFeature(AbstractGdkCloudGatewayFunction.class).orElse(null) != null, generatorContext.getCloud(), true)); } } - private void cloudPom(GcnGeneratorContext generatorContext, GcnCloud gcnCloud) { - generatorContext.setCloud(gcnCloud); + private void cloudPom(GdkGeneratorContext generatorContext, GdkCloud cloud) { + generatorContext.setCloud(cloud); generatorContext.addDependency(Dependency.builder() .groupId(generatorContext.getProject().getPackageName()) @@ -144,12 +144,12 @@ private void cloudPom(GcnGeneratorContext generatorContext, GcnCloud gcnCloud) { MavenBuild mavenBuild = mavenBuildCreator.create(generatorContext, repositoryResolver.resolveRepositories(generatorContext)); - String templateKey = "mavenPom-" + gcnCloud.getModuleName(); + String templateKey = "mavenPom-" + cloud.getModuleName(); if (templateKey.equals("mavenPom-")) { templateKey = "mavenPom"; } - generatorContext.addTemplate(templateKey, new RockerTemplate(gcnCloud.getModuleName(), "pom.xml", + generatorContext.addTemplate(templateKey, new RockerTemplate(cloud.getModuleName(), "pom.xml", pom.template( generatorContext.getApplicationType(), generatorContext.getProject(), @@ -161,7 +161,7 @@ private void cloudPom(GcnGeneratorContext generatorContext, GcnCloud gcnCloud) { generatorContext.getLibProject().getName(), generatorContext.getLibProject().getPackageName(), generatorContext.getApplicationType(), - generatorContext.getFeature(AbstractGcnCloudGatewayFunction.class).orElse(null) != null, + generatorContext.getFeature(AbstractGdkCloudGatewayFunction.class).orElse(null) != null, generatorContext.getCloud(), false)); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMicronautAot.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMicronautAot.java similarity index 92% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMicronautAot.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMicronautAot.java index e26bea5..426b556 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnMicronautAot.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkMicronautAot.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.ApplicationType; @@ -29,7 +29,7 @@ */ @Singleton @Replaces(MicronautAot.class) -public class GcnMicronautAot extends MicronautAot { +public class GdkMicronautAot extends MicronautAot { @Override public boolean supports(ApplicationType applicationType) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudMicrometer.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudMicrometer.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudMicrometer.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudMicrometer.java index 826fd00..8bf3aa9 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudMicrometer.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudMicrometer.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.OracleCloudNettyClientDependencies; +import cloud.graal.gdk.OracleCloudNettyClientDependencies; import io.micronaut.context.annotation.Replaces; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.generator.GeneratorContext; @@ -31,13 +31,13 @@ */ @Replaces(OracleCloud.class) @Singleton -public class GcnOracleCloudMicrometer extends OracleCloud implements OracleCloudNettyClientDependencies { +public class GdkOracleCloudMicrometer extends OracleCloud implements OracleCloudNettyClientDependencies { /** * @param core Core feature * @param management Management feature */ - public GcnOracleCloudMicrometer(Core core, Management management) { + public GdkOracleCloudMicrometer(Core core, Management management) { super(core, management); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudSdk.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudSdk.java index ea0bd24..7f5e68e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudSdk.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.OracleCloudNettyClientDependencies; +import cloud.graal.gdk.OracleCloudNettyClientDependencies; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.oraclecloud.OracleCloudSdk; @@ -28,7 +28,7 @@ */ @Replaces(OracleCloudSdk.class) @Singleton -public class GcnOracleCloudSdk extends OracleCloudSdk implements OracleCloudNettyClientDependencies { +public class GdkOracleCloudSdk extends OracleCloudSdk implements OracleCloudNettyClientDependencies { @Override public void apply(GeneratorContext generatorContext) { diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudVault.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudVault.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudVault.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudVault.java index ac05edd..8c29f1e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnOracleCloudVault.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleCloudVault.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.OracleCloudNettyClientDependencies; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.OracleCloudNettyClientDependencies; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.build.dependencies.Dependency; @@ -27,7 +27,7 @@ import java.util.List; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Replaces the default feature to add Oracle Cloud Netty dependencies @@ -38,7 +38,7 @@ */ @Replaces(OracleCloudVault.class) @Singleton -public class GcnOracleCloudVault +public class GdkOracleCloudVault extends OracleCloudVault implements OracleCloudNettyClientDependencies { @@ -50,7 +50,7 @@ public class GcnOracleCloudVault @Override public void apply(GeneratorContext gc) { - GcnGeneratorContext generatorContext = (GcnGeneratorContext) gc; + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; generatorContext.addDependency(ORACLECLOUD_VAULT); addNettyDependencies(generatorContext); diff --git a/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleRawFunction.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleRawFunction.java new file mode 100644 index 0000000..cb710d8 --- /dev/null +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkOracleRawFunction.java @@ -0,0 +1,79 @@ +/* + * Copyright 2024 Oracle and/or its affiliates + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License 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 cloud.graal.gdk.feature.replaced; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; +import io.micronaut.context.annotation.Replaces; +import io.micronaut.starter.application.ApplicationType; +import io.micronaut.starter.application.Project; +import io.micronaut.starter.application.generator.GeneratorContext; +import io.micronaut.starter.feature.function.oraclefunction.OracleFunction; +import io.micronaut.starter.feature.function.oraclefunction.OracleRawFunction; +import io.micronaut.starter.feature.function.oraclefunction.template.raw.oracleRawFunctionGroovy; +import io.micronaut.starter.feature.function.oraclefunction.template.raw.oracleRawFunctionJava; +import io.micronaut.starter.feature.function.oraclefunction.template.raw.oracleRawFunctionKotlin; +import io.micronaut.starter.feature.json.JacksonDatabindFeature; +import io.micronaut.starter.feature.logging.SimpleLogging; +import io.micronaut.starter.options.BuildTool; +import io.micronaut.starter.options.Language; +import io.micronaut.starter.template.RockerTemplate; +import jakarta.inject.Singleton; + +@Singleton +@Replaces(OracleRawFunction.class) +public class GdkOracleRawFunction extends OracleRawFunction { + + public GdkOracleRawFunction(SimpleLogging simpleLogging, OracleFunction httpFunction, JacksonDatabindFeature jacksonDatabindFeature) { + super(simpleLogging, httpFunction, jacksonDatabindFeature); + } + + @Override + public void apply(GeneratorContext generatorContext) { + ApplicationType type = generatorContext.getApplicationType(); + GdkGeneratorContext gdkGeneratorContext = (GdkGeneratorContext) generatorContext; + + if (type == ApplicationType.FUNCTION && (gdkGeneratorContext.isPlatformIndependent() || gdkGeneratorContext.getCloud().equals(GdkCloud.OCI))) { + this.applyFunction(generatorContext, type); + Language language = generatorContext.getLanguage(); + Project project = generatorContext.getProject(); + String sourceFile = generatorContext.getSourcePath("/{packagePath}/Function"); + switch (language) { + case GROOVY: + generatorContext.addTemplate("function", new RockerTemplate(sourceFile, oracleRawFunctionGroovy.template(project))); + break; + case KOTLIN: + generatorContext.addTemplate("function", new RockerTemplate(sourceFile, oracleRawFunctionKotlin.template(project))); + break; + case JAVA: + default: + generatorContext.addTemplate("function", new RockerTemplate(sourceFile, oracleRawFunctionJava.template(project))); + } + + if (generatorContext.getBuildTool() == BuildTool.MAVEN) { + this.addMicronautRuntimeBuildProperty(generatorContext); + generatorContext.getBuildProperties().put("jib.docker.tag", "${project.version}"); + generatorContext.getBuildProperties().put("exec.mainClass", "com.fnproject.fn.runtime.EntryPoint"); + generatorContext.getBuildProperties().put("jib.docker.image", "[REGION].ocir.io/[TENANCY]/[REPO]/${project.artifactId}"); + generatorContext.getBuildProperties().put("function.entrypoint", project.getPackageName() + ".Function::handleRequest"); + } + + this.applyTestTemplate(generatorContext, project, "Function"); + } + + this.addDependencies(generatorContext); + } +} diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnProperties.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkProperties.java similarity index 52% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnProperties.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkProperties.java index 16dc87c..cfc65e6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnProperties.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkProperties.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.template.GcnPropertiesTemplate; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.template.GdkPropertiesTemplate; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.config.Configuration; @@ -29,7 +29,7 @@ import java.util.Map; import java.util.function.Function; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Replaces the default feature to customize properties file writing. @@ -38,59 +38,59 @@ */ @Replaces(Properties.class) @Singleton -public class GcnProperties extends Properties { +public class GdkProperties extends Properties { @Override public Function createTemplate() { - return (config) -> new GcnPropertiesTemplate(config.getFullPath("properties"), config); + return (config) -> new GdkPropertiesTemplate(config.getFullPath("properties"), config); } @Override - public void apply(GeneratorContext generatorContext) { - super.apply(generatorContext); - GcnGeneratorContext gcnGeneratorContext = (GcnGeneratorContext) generatorContext; + public void apply(GeneratorContext gc) { + super.apply(gc); + GdkGeneratorContext generatorContext = (GdkGeneratorContext) gc; - createApplicationCloudProperties(gcnGeneratorContext, gcnGeneratorContext.getCloud()); + createApplicationCloudProperties(generatorContext, generatorContext.getCloud()); - createExtraCloudConfigProperties(gcnGeneratorContext); + createExtraCloudConfigProperties(generatorContext); } - private void createApplicationCloudProperties(GcnGeneratorContext generatorContext, GcnCloud gcnCloud) { - if (gcnCloud == NONE) { + private void createApplicationCloudProperties(GdkGeneratorContext generatorContext, GdkCloud cloud) { + if (cloud == NONE) { return; } - generatorContext.addTemplate("application-properties-" + gcnCloud.getModuleName(), - new GcnPropertiesTemplate( - gcnCloud.getModuleName(), + generatorContext.addTemplate("application-properties-" + cloud.getModuleName(), + new GdkPropertiesTemplate( + cloud.getModuleName(), "src/main/resources/application.properties", generatorContext.getConfiguration())); - generatorContext.addTemplate("application-properties-env-" + gcnCloud.getModuleName(), - new GcnPropertiesTemplate( - gcnCloud.getModuleName(), - "src/main/resources/application" + gcnCloud.getEnvironmentNameSuffix() + ".properties", - generatorContext.getConfiguration(gcnCloud))); + generatorContext.addTemplate("application-properties-env-" + cloud.getModuleName(), + new GdkPropertiesTemplate( + cloud.getModuleName(), + "src/main/resources/application" + cloud.getEnvironmentNameSuffix() + ".properties", + generatorContext.getConfiguration(cloud))); - generatorContext.addTemplate("bootstrap-properties-" + gcnCloud.getModuleName(), - new GcnPropertiesTemplate( - gcnCloud.getModuleName(), + generatorContext.addTemplate("bootstrap-properties-" + cloud.getModuleName(), + new GdkPropertiesTemplate( + cloud.getModuleName(), "src/main/resources/bootstrap.properties", generatorContext.getBootstrapConfiguration())); - generatorContext.addTemplate("bootstrap-properties-env-" + gcnCloud.getModuleName(), - new GcnPropertiesTemplate( - gcnCloud.getModuleName(), - "src/main/resources/bootstrap" + gcnCloud.getEnvironmentNameSuffix() + ".properties", - generatorContext.getBootstrapConfiguration(gcnCloud))); + generatorContext.addTemplate("bootstrap-properties-env-" + cloud.getModuleName(), + new GdkPropertiesTemplate( + cloud.getModuleName(), + "src/main/resources/bootstrap" + cloud.getEnvironmentNameSuffix() + ".properties", + generatorContext.getBootstrapConfiguration(cloud))); } - private void createExtraCloudConfigProperties(GcnGeneratorContext generatorContext) { - for (Map.Entry> e : generatorContext.getExtraConfigurations().entrySet()) { - GcnCloud cloud = e.getKey(); + private void createExtraCloudConfigProperties(GdkGeneratorContext generatorContext) { + for (Map.Entry> e : generatorContext.getExtraConfigurations().entrySet()) { + GdkCloud cloud = e.getKey(); for (Configuration c : e.getValue()) { generatorContext.addTemplate(c.getTemplateKey() + '-' + cloud.getModuleName(), - new GcnPropertiesTemplate(cloud.getModuleName(), c.getFullPath("properties"), c)); + new GdkPropertiesTemplate(cloud.getModuleName(), c.getFullPath("properties"), c)); } } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnReadme.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkReadme.java similarity index 94% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnReadme.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkReadme.java index a03c113..0751da8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnReadme.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkReadme.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.feature.replaced.template.maindocs; -import cloud.graal.gcn.feature.replaced.template.readme; +import cloud.graal.gdk.feature.replaced.template.maindocs; +import cloud.graal.gdk.feature.replaced.template.readme; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.Feature; @@ -45,7 +45,7 @@ */ @Replaces(Readme.class) @Singleton -public class GcnReadme extends Readme { +public class GdkReadme extends Readme { private static final byte[] LINE_SEPARATOR = System.lineSeparator().getBytes(Charset.defaultCharset()); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnSimpleLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkSimpleLogging.java similarity index 83% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnSimpleLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkSimpleLogging.java index 0594357..1bb277b 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnSimpleLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkSimpleLogging.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.application.generator.GeneratorContext; import io.micronaut.starter.feature.logging.SimpleLogging; @@ -24,7 +24,7 @@ import io.micronaut.starter.template.RockerTemplate; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Replaces the default feature to render simplelogger.properties to cloud modules. @@ -33,14 +33,14 @@ */ @Replaces(SimpleLogging.class) @Singleton -public class GcnSimpleLogging extends SimpleLogging { +public class GdkSimpleLogging extends SimpleLogging { @Override public void apply(GeneratorContext generatorContext) { super.apply(generatorContext); String key = "loggingConfig"; - GcnCloud cloud = ((GcnGeneratorContext) generatorContext).getCloud(); + GdkCloud cloud = ((GdkGeneratorContext) generatorContext).getCloud(); if (cloud != NONE) { key += '-' + cloud.getModuleName(); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnYaml.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkYaml.java similarity index 85% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnYaml.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkYaml.java index 6de0a5b..6869d5e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/GcnYaml.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/GdkYaml.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.replaced; +package cloud.graal.gdk.feature.replaced; -import cloud.graal.gcn.template.GcnYamlTemplate; +import cloud.graal.gdk.template.GdkYamlTemplate; import io.micronaut.context.annotation.Replaces; import io.micronaut.starter.feature.config.Configuration; import io.micronaut.starter.feature.config.Yaml; @@ -31,10 +31,10 @@ */ @Replaces(Yaml.class) @Singleton -public class GcnYaml extends Yaml { +public class GdkYaml extends Yaml { @Override public Function createTemplate() { - return (config) -> new GcnYamlTemplate(config.getFullPath("yml"), config); + return (config) -> new GdkYamlTemplate(config.getFullPath("yml"), config); } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibBuildGradle.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibBuildGradle.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibBuildGradle.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibBuildGradle.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibMicronautGradle.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibMicronautGradle.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibMicronautGradle.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibMicronautGradle.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibPom.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibPom.rocker.raw similarity index 99% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibPom.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibPom.rocker.raw index 6b88ccc..076d634 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/LibPom.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/LibPom.rocker.raw @@ -7,7 +7,7 @@ @import io.micronaut.starter.feature.database.JpaFeature @import io.micronaut.starter.feature.Features @import io.micronaut.starter.util.VersionInfo -@import cloud.graal.gcn.GcnUtils +@import cloud.graal.gdk.GdkUtils @args (Project project, Features features, MavenBuild mavenBuild) @@ -23,7 +23,7 @@ io.micronaut micronaut-parent - @GcnUtils.getMicronautVersion() + @GdkUtils.getMicronautVersion() diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnGradlePluginJTE.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkGradlePluginJTE.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnGradlePluginJTE.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkGradlePluginJTE.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnMvnPluginJTE.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkMvnPluginJTE.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/gcnMvnPluginJTE.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/gdkMvnPluginJTE.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/k8sYaml.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/k8sYaml.rocker.raw similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/k8sYaml.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/k8sYaml.rocker.raw index 7576f90..557ddcd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/k8sYaml.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/k8sYaml.rocker.raw @@ -1,10 +1,10 @@ @import io.micronaut.starter.application.Project -@import cloud.graal.gcn.model.GcnCloud -@import static cloud.graal.gcn.model.GcnCloud.OCI -@import static cloud.graal.gcn.model.GcnCloud.NONE +@import cloud.graal.gdk.model.GdkCloud +@import static cloud.graal.gdk.model.GdkCloud.OCI +@import static cloud.graal.gdk.model.GdkCloud.NONE @args ( -Project project, String image, GcnCloud cloud +Project project, String image, GdkCloud cloud ) apiVersion: apps/v1 diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/maindocs.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/maindocs.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/maindocs.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/maindocs.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/readme.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/readme.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/replaced/template/readme.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/replaced/template/readme.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/AbstractGcnServiceFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/AbstractGdkServiceFeature.java similarity index 73% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/AbstractGcnServiceFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/AbstractGdkServiceFeature.java index 80edd37..4d9ef5d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/AbstractGcnServiceFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/AbstractGdkServiceFeature.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service; +package cloud.graal.gdk.feature.service; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.AbstractGcnFeature; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.AbstractGdkFeature; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import static io.micronaut.starter.feature.FeaturePhase.DEFAULT; @@ -28,7 +28,7 @@ * * @since 1.0.0 */ -public abstract class AbstractGcnServiceFeature extends AbstractGcnFeature { +public abstract class AbstractGdkServiceFeature extends AbstractGdkFeature { @Override public boolean isVisible() { @@ -44,20 +44,20 @@ public int getOrder() { * @return the service enum */ @NonNull - public abstract GcnService getService(); + public abstract GdkService getService(); /** - * Set the cloud to NONE in GcnGeneratorContext to apply changes to the + * Set the cloud to NONE in GdkGeneratorContext to apply changes to the * "lib" module instead of the feature's cloud module, and switch back * after running the runnable. * * @param generatorContext the generator context * @param runnable the code to run */ - protected void applyForLib(GcnGeneratorContext generatorContext, + protected void applyForLib(GdkGeneratorContext generatorContext, Runnable runnable) { - GcnCloud cloud = generatorContext.getCloud(); + GdkCloud cloud = generatorContext.getCloud(); generatorContext.resetCloud(); @@ -69,17 +69,17 @@ protected void applyForLib(GcnGeneratorContext generatorContext, } /** - * Set the cloud to the feature's cloud in GcnGeneratorContext to apply + * Set the cloud to the feature's cloud in GdkGeneratorContext to apply * changes to the cloud module instead of the "lib" module, and switch back * after running the runnable. * * @param generatorContext the generator context * @param runnable the code to run */ - protected void applyForCloud(GcnGeneratorContext generatorContext, + protected void applyForCloud(GdkGeneratorContext generatorContext, Runnable runnable) { - GcnCloud cloud = generatorContext.getCloud(); + GdkCloud cloud = generatorContext.getCloud(); generatorContext.setCloud(getCloud()); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AbstractDatabaseFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AbstractDatabaseFeature.java similarity index 84% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AbstractDatabaseFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AbstractDatabaseFeature.java index ca1a462..448e767 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AbstractDatabaseFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AbstractDatabaseFeature.java @@ -13,35 +13,35 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.feature.service.database.template.FlywayResourcesConfigJson; -import cloud.graal.gcn.feature.service.database.template.GenreControllerGroovy; -import cloud.graal.gcn.feature.service.database.template.GenreControllerJava; -import cloud.graal.gcn.feature.service.database.template.GenreControllerKotlin; -import cloud.graal.gcn.feature.service.database.template.GenreControllerSpec; -import cloud.graal.gcn.feature.service.database.template.GenreControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.database.template.GenreControllerTestJava; -import cloud.graal.gcn.feature.service.database.template.GenreControllerTestKotest; -import cloud.graal.gcn.feature.service.database.template.GenreControllerTestKotlinJUnit; -import cloud.graal.gcn.feature.service.database.template.GenreFlywayMigrationH2; -import cloud.graal.gcn.feature.service.database.template.GenreFlywayMigrationMySQL; -import cloud.graal.gcn.feature.service.database.template.GenreFlywayMigrationOracle; -import cloud.graal.gcn.feature.service.database.template.GenreFlywayMigrationPostgreSQL; -import cloud.graal.gcn.feature.service.database.template.GenreFlywayMigrationSQLServer; -import cloud.graal.gcn.feature.service.database.template.GenreGroovy; -import cloud.graal.gcn.feature.service.database.template.GenreJava; -import cloud.graal.gcn.feature.service.database.template.GenreKotlin; -import cloud.graal.gcn.feature.service.database.template.GenreRepositoryGroovy; -import cloud.graal.gcn.feature.service.database.template.GenreRepositoryJava; -import cloud.graal.gcn.feature.service.database.template.GenreRepositoryKotlin; -import cloud.graal.gcn.feature.service.database.template.GenreServiceGroovy; -import cloud.graal.gcn.feature.service.database.template.GenreServiceJava; -import cloud.graal.gcn.feature.service.database.template.GenreServiceKotlin; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk.feature.service.database; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.feature.service.database.template.FlywayResourcesConfigJson; +import cloud.graal.gdk.feature.service.database.template.GenreControllerGroovy; +import cloud.graal.gdk.feature.service.database.template.GenreControllerJava; +import cloud.graal.gdk.feature.service.database.template.GenreControllerKotlin; +import cloud.graal.gdk.feature.service.database.template.GenreControllerSpec; +import cloud.graal.gdk.feature.service.database.template.GenreControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.database.template.GenreControllerTestJava; +import cloud.graal.gdk.feature.service.database.template.GenreControllerTestKotest; +import cloud.graal.gdk.feature.service.database.template.GenreControllerTestKotlinJUnit; +import cloud.graal.gdk.feature.service.database.template.GenreFlywayMigrationH2; +import cloud.graal.gdk.feature.service.database.template.GenreFlywayMigrationMySQL; +import cloud.graal.gdk.feature.service.database.template.GenreFlywayMigrationOracle; +import cloud.graal.gdk.feature.service.database.template.GenreFlywayMigrationPostgreSQL; +import cloud.graal.gdk.feature.service.database.template.GenreFlywayMigrationSQLServer; +import cloud.graal.gdk.feature.service.database.template.GenreGroovy; +import cloud.graal.gdk.feature.service.database.template.GenreJava; +import cloud.graal.gdk.feature.service.database.template.GenreKotlin; +import cloud.graal.gdk.feature.service.database.template.GenreRepositoryGroovy; +import cloud.graal.gdk.feature.service.database.template.GenreRepositoryJava; +import cloud.graal.gdk.feature.service.database.template.GenreRepositoryKotlin; +import cloud.graal.gdk.feature.service.database.template.GenreServiceGroovy; +import cloud.graal.gdk.feature.service.database.template.GenreServiceJava; +import cloud.graal.gdk.feature.service.database.template.GenreServiceKotlin; +import cloud.graal.gdk.model.GdkService; import com.fizzed.rocker.RockerModel; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; @@ -60,14 +60,14 @@ import java.util.LinkedHashMap; import java.util.Map; -import static cloud.graal.gcn.model.GcnService.DATABASE; +import static cloud.graal.gdk.model.GdkService.DATABASE; /** * Base class for database service features. * * @since 1.0.0 */ -public abstract class AbstractDatabaseFeature extends AbstractGcnServiceFeature { +public abstract class AbstractDatabaseFeature extends AbstractGdkServiceFeature { private static final Dependency TESTCONTAINERS_ORACLE_XE = Dependency.builder() .groupId("org.testcontainers") @@ -106,7 +106,7 @@ protected AbstractDatabaseFeature(Data data, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { // H2 is @Primary, so it will be auto-selected if no other driver was explicitly requested boolean h2WasSelected = featureContext.getSelectedNames().contains("h2"); @@ -135,7 +135,7 @@ public void processSelectedFeatures(GcnFeatureContext featureContext) { } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { // Enable flyway //flyway: @@ -248,7 +248,7 @@ public final void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return DATABASE; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AwsDatabase.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AwsDatabase.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AwsDatabase.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AwsDatabase.java index 5b1f038..7562942 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AwsDatabase.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AwsDatabase.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; +package cloud.graal.gdk.feature.service.database; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.database.Data; import io.micronaut.starter.feature.database.DataJdbc; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS database service feature. @@ -53,13 +53,13 @@ public AwsDatabase(Data data, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-database"; + return "gdk-aws-database"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AzureDatabase.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AzureDatabase.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AzureDatabase.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AzureDatabase.java index 82bf303..1680c4f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/AzureDatabase.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/AzureDatabase.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; +package cloud.graal.gdk.feature.service.database; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.database.Data; import io.micronaut.starter.feature.database.DataJdbc; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure database service feature. @@ -53,13 +53,13 @@ public AzureDatabase(Data data, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-database"; + return "gdk-azure-database"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/GcpDatabase.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/GcpDatabase.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/GcpDatabase.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/GcpDatabase.java index 3228b48..f7a2250 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/GcpDatabase.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/GcpDatabase.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; +package cloud.graal.gdk.feature.service.database; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.database.Data; import io.micronaut.starter.feature.database.DataJdbc; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP database service feature. @@ -53,13 +53,13 @@ public GcpDatabase(Data data, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-database"; + return "gdk-gcp-database"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/NonCloudDatabase.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/NonCloudDatabase.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/NonCloudDatabase.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/NonCloudDatabase.java index 90763d2..17252d1 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/NonCloudDatabase.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/NonCloudDatabase.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; +package cloud.graal.gdk.feature.service.database; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.database.Data; import io.micronaut.starter.feature.database.DataJdbc; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud database service feature. @@ -53,13 +53,13 @@ public NonCloudDatabase(Data data, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-database"; + return "gdk-database"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/OciDatabase.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/OciDatabase.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/OciDatabase.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/OciDatabase.java index d1b3b55..74bfc39 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/OciDatabase.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/OciDatabase.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.database; +package cloud.graal.gdk.feature.service.database; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.database.Data; import io.micronaut.starter.feature.database.DataJdbc; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI database service feature. @@ -53,13 +53,13 @@ public OciDatabase(Data data, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-database"; + return "gdk-oci-database"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/FlywayResourcesConfigJson.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/FlywayResourcesConfigJson.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/FlywayResourcesConfigJson.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/FlywayResourcesConfigJson.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreControllerTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationH2.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationH2.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationH2.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationH2.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationMySQL.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationMySQL.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationMySQL.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationMySQL.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationOracle.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationOracle.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationOracle.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationOracle.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationPostgreSQL.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationPostgreSQL.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationPostgreSQL.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationPostgreSQL.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationSQLServer.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationSQLServer.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreFlywayMigrationSQLServer.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreFlywayMigrationSQLServer.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreRepositoryKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreRepositoryKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/database/template/GenreServiceKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/database/template/GenreServiceKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AbstractEmailFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AbstractEmailFeature.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AbstractEmailFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AbstractEmailFeature.java index 59fa261..cc3fe82 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AbstractEmailFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AbstractEmailFeature.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; +package cloud.graal.gdk.feature.service.email; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.validator.MicronautValidationFeature; -import static cloud.graal.gcn.model.GcnService.EMAIL; +import static cloud.graal.gdk.model.GdkService.EMAIL; import static io.micronaut.starter.application.ApplicationType.FUNCTION; /** @@ -30,7 +30,7 @@ * * @since 1.0.0 */ -public abstract class AbstractEmailFeature extends AbstractGcnServiceFeature { +public abstract class AbstractEmailFeature extends AbstractGdkServiceFeature { private static final Dependency HTTP_SERVER_NETTY = Dependency.builder() .groupId("io.micronaut") @@ -45,7 +45,7 @@ protected AbstractEmailFeature(MicronautValidationFeature micronautValidationFea } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { applyForLib(generatorContext, () -> { micronautValidationFeature.apply(generatorContext); @@ -62,11 +62,11 @@ public final void apply(GcnGeneratorContext generatorContext) { * * @param generatorContext the generator context */ - protected abstract void doApply(GcnGeneratorContext generatorContext); + protected abstract void doApply(GdkGeneratorContext generatorContext); @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return EMAIL; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AwsEmail.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AwsEmail.java similarity index 78% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AwsEmail.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AwsEmail.java index c89fcdf..cea138a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AwsEmail.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AwsEmail.java @@ -13,22 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.email.template.AwsEmailSenderReplacementGroovy; -import cloud.graal.gcn.feature.service.email.template.AwsEmailSenderReplacementJava; -import cloud.graal.gcn.feature.service.email.template.AwsEmailSenderReplacementKotlin; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerGroovy; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerJava; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerKotlin; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerSpec; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerTestJava; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerTestKotest; -import cloud.graal.gcn.feature.service.email.template.AwsMailControllerTestKotlinJUnit; -import cloud.graal.gcn.model.GcnCloud; +package cloud.graal.gdk.feature.service.email; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.email.template.AwsEmailSenderReplacementGroovy; +import cloud.graal.gdk.feature.service.email.template.AwsEmailSenderReplacementJava; +import cloud.graal.gdk.feature.service.email.template.AwsEmailSenderReplacementKotlin; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerGroovy; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerJava; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerKotlin; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerSpec; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerTestJava; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerTestKotest; +import cloud.graal.gdk.feature.service.email.template.AwsMailControllerTestKotlinJUnit; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.aws.AwsV2Sdk; @@ -37,7 +37,7 @@ import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; import static io.micronaut.starter.options.TestFramework.SPOCK; /** @@ -68,7 +68,7 @@ public AwsEmail(AmazonSesEmailFeature amazonSesEmailFeature, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(awsV2Sdk, AwsV2Sdk.class); featureContext.addFeature(amazonSesEmailFeature, AmazonSesEmailFeature.class); @@ -79,7 +79,7 @@ public void processSelectedFeatures(GcnFeatureContext featureContext) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { @@ -110,13 +110,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-email"; + return "gdk-aws-email"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AzureEmail.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AzureEmail.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AzureEmail.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AzureEmail.java index 335541c..23818d7 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/AzureEmail.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/AzureEmail.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; +package cloud.graal.gdk.feature.service.email; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure email service feature. @@ -36,19 +36,19 @@ public AzureEmail(MicronautValidationFeature micronautValidationFeature) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-email"; + return "gdk-azure-email"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/GcpEmail.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/GcpEmail.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/GcpEmail.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/GcpEmail.java index 907f50a..5c288dd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/GcpEmail.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/GcpEmail.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; +package cloud.graal.gdk.feature.service.email; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.validator.MicronautValidationFeature; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP email service feature. @@ -36,19 +36,19 @@ public GcpEmail(MicronautValidationFeature micronautValidationFeature) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-email"; + return "gdk-gcp-email"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/NonCloudEmail.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/NonCloudEmail.java similarity index 83% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/NonCloudEmail.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/NonCloudEmail.java index b8124ec..2cb9d63 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/NonCloudEmail.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/NonCloudEmail.java @@ -13,19 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerGroovy; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerJava; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerKotlin; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerSpec; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerTestJava; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerTestKotest; -import cloud.graal.gcn.feature.service.email.template.NonCloudMailControllerTestKotlinJUnit; -import cloud.graal.gcn.model.GcnCloud; +package cloud.graal.gdk.feature.service.email; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerGroovy; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerJava; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerKotlin; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerSpec; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerTestJava; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerTestKotest; +import cloud.graal.gdk.feature.service.email.template.NonCloudMailControllerTestKotlinJUnit; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.email.JavamailFeature; @@ -34,7 +34,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud email service feature. @@ -56,12 +56,12 @@ public NonCloudEmail(JavamailFeature javamailFeature, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(javamailFeature, JavamailFeature.class); } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // micronaut: // email: @@ -129,13 +129,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-email"; + return "gdk-email"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/OciEmail.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/OciEmail.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/OciEmail.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/OciEmail.java index 6c58a96..00adbd1 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/OciEmail.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/OciEmail.java @@ -13,23 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.email; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.email.template.EmailHtml; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerGroovy; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerJava; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerKotlin; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerSpec; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerTestJava; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerTestKotest; -import cloud.graal.gcn.feature.service.email.template.OciEmailControllerTestKotlinJUnit; -import cloud.graal.gcn.feature.service.email.template.OciSessionProviderGroovy; -import cloud.graal.gcn.feature.service.email.template.OciSessionProviderJava; -import cloud.graal.gcn.feature.service.email.template.OciSessionProviderKotlin; -import cloud.graal.gcn.model.GcnCloud; +package cloud.graal.gdk.feature.service.email; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.email.template.EmailHtml; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerGroovy; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerJava; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerKotlin; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerSpec; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerTestJava; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerTestKotest; +import cloud.graal.gdk.feature.service.email.template.OciEmailControllerTestKotlinJUnit; +import cloud.graal.gdk.feature.service.email.template.OciSessionProviderGroovy; +import cloud.graal.gdk.feature.service.email.template.OciSessionProviderJava; +import cloud.graal.gdk.feature.service.email.template.OciSessionProviderKotlin; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.email.JavamailFeature; @@ -41,7 +41,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI email service feature. @@ -71,7 +71,7 @@ public OciEmail(JavamailFeature javamailFeature, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(javamailFeature, JavamailFeature.class); @@ -82,7 +82,7 @@ public void processSelectedFeatures(GcnFeatureContext featureContext) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //micronaut: // email: @@ -117,21 +117,21 @@ protected void doApply(GcnGeneratorContext generatorContext) { // micronaut: // email: // from: -// email: xyz@gcn.example +// email: xyz@gdk.example // name: Email Test // smtp: // password: example-password -// user: gcndemo +// user: gdkdemo // javamail: // properties: // mail: // smtp: // host: smtp.com generatorContext.getTestConfiguration().addNested(Map.of( - "micronaut.email.from.email", "xyz@gcn.example", + "micronaut.email.from.email", "xyz@gdk.example", "micronaut.email.from.name", "Email Test", "smtp.password", "example-password", - "smtp.user", "gcndemo", + "smtp.user", "gdkdemo", "javamail.properties.mail.smtp.host", "smtp.com" )); @@ -165,13 +165,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-email"; + return "gdk-oci-email"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsEmailSenderReplacementKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsEmailSenderReplacementKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerSpec.rocker.raw similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerSpec.rocker.raw index 077116c..8df115f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerSpec.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerSpec.rocker.raw @@ -21,7 +21,7 @@ import static io.micronaut.email.BodyType.HTML import static io.micronaut.http.HttpStatus.ACCEPTED @@Property(name = 'spec.name', value = 'MailControllerSpec') -@@Property(name = "micronaut.email.from.email", value = "mo@@gcn.example") +@@Property(name = "micronaut.email.from.email", value = "mo@@gdk.example") @@MicronautTest class MailControllerSpec extends Specification { @@ -36,7 +36,7 @@ class MailControllerSpec extends Specification { when: HttpResponse response = httpClient.toBlocking().exchange( - HttpRequest.POST('/mail/send', [to: 'jo@@gcn.example'])) + HttpRequest.POST('/mail/send', [to: 'jo@@gdk.example'])) then: ACCEPTED == response.status() @@ -58,10 +58,10 @@ class MailControllerSpec extends Specification { Email email = sendgridSender.emails[0] then: - email.from.email == 'mo@@gcn.example' + email.from.email == 'mo@@gdk.example' null != email.to email.to.first() - email.to.first().email == 'jo@@gcn.example' + email.to.first().email == 'jo@@gdk.example' email.subject == 'Sending email with Amazon SES is Fun' email.body email.body.get(HTML).present diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw index 169bc96..5b221f7 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestGroovyJUnit.rocker.raw @@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull import static org.junit.jupiter.api.Assertions.assertTrue @@Property(name = 'spec.name', value = 'MailControllerTest') -@@Property(name = 'micronaut.email.from.email', value = 'mo@@gcn.example') +@@Property(name = 'micronaut.email.from.email', value = 'mo@@gdk.example') @@MicronautTest class MailControllerTest { @@ -40,7 +40,7 @@ class MailControllerTest { void getMailSendEndpointSendsAnEmail() { HttpResponse response = httpClient.toBlocking().exchange( - HttpRequest.POST('/mail/send', [to: 'jo@@gcn.example'])) + HttpRequest.POST('/mail/send', [to: 'jo@@gdk.example'])) assertEquals(ACCEPTED, response.status()) AsyncTransactionalEmailSender sender = beanContext.getBean(AsyncTransactionalEmailSender) @@ -51,10 +51,10 @@ class MailControllerTest { assertEquals(1, sendgridSender.emails.size()) Email email = sendgridSender.emails[0] - assertEquals('mo@@gcn.example', email.from.email) + assertEquals('mo@@gdk.example', email.from.email) assertNotNull(email.to) assertTrue(email.to.stream().findFirst().isPresent()) - assertEquals('jo@@gcn.example', email.to.stream().findFirst().get().email) + assertEquals('jo@@gdk.example', email.to.stream().findFirst().get().email) assertEquals('Sending email with Amazon SES is Fun', email.subject) assertNotNull(email.body) assertTrue(email.body.get(HTML).isPresent()) diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestJava.rocker.raw similarity index 91% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestJava.rocker.raw index 70f98a1..99e41b5 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestJava.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestJava.rocker.raw @@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@Property(name = "spec.name", value = "MailControllerTest") -@@Property(name = "micronaut.email.from.email", value = "mo@@gcn.example") +@@Property(name = "micronaut.email.from.email", value = "mo@@gdk.example") @@MicronautTest class MailControllerTest { @@ -42,7 +42,7 @@ class MailControllerTest { void getMailSendEndpointSendsAnEmail() { HttpResponse response = httpClient.toBlocking().exchange( - HttpRequest.POST("/mail/send", Map.of("to", "jo@@gcn.example"))); + HttpRequest.POST("/mail/send", Map.of("to", "jo@@gdk.example"))); assertEquals(ACCEPTED, response.status()); AsyncTransactionalEmailSender sender = beanContext.getBean(AsyncTransactionalEmailSender.class); @@ -53,10 +53,10 @@ class MailControllerTest { assertEquals(1, sendgridSender.getEmails().size()); Email email = sendgridSender.getEmails().get(0); - assertEquals("mo@@gcn.example", email.getFrom().getEmail()); + assertEquals("mo@@gdk.example", email.getFrom().getEmail()); assertNotNull(email.getTo()); assertTrue(email.getTo().stream().findFirst().isPresent()); - assertEquals("jo@@gcn.example", email.getTo().stream().findFirst().get().getEmail()); + assertEquals("jo@@gdk.example", email.getTo().stream().findFirst().get().getEmail()); assertEquals("Sending email with Amazon SES is Fun", email.getSubject()); assertNotNull(email.getBody()); assertTrue(email.getBody().get(HTML).isPresent()); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw index 98c70d0..e797d66 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/AwsMailControllerTestKotlinJUnit.rocker.raw @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test @@Property(name = "spec.name", value = "MailControllerTest") -@@Property(name = "micronaut.email.from.email", value = "mo@@gcn.example") +@@Property(name = "micronaut.email.from.email", value = "mo@@gdk.example") @@MicronautTest class MailControllerTest { @@ -38,7 +38,7 @@ class MailControllerTest { fun mailSendEndpointSendsAnEmail() { val response: HttpResponse<*> = httpClient.toBlocking().exchange, Any>( - HttpRequest.POST("/mail/send", mapOf("to" to "jo@@gcn.example"))) + HttpRequest.POST("/mail/send", mapOf("to" to "jo@@gdk.example"))) assertEquals(ACCEPTED, response.status()) val sender = beanContext.getBean(AsyncTransactionalEmailSender::class.java) @@ -49,10 +49,10 @@ class MailControllerTest { assertEquals(1, sendgridSender.emails.size) val email = sendgridSender.emails[0] - assertEquals("mo@@gcn.example", email.from.email) + assertEquals("mo@@gdk.example", email.from.email) assertNotNull(email.to) assertTrue(email.to.stream().findFirst().isPresent) - assertEquals("jo@@gcn.example", email.to.stream().findFirst().get().email) + assertEquals("jo@@gdk.example", email.to.stream().findFirst().get().email) assertEquals("Sending email with Amazon SES is Fun", email.subject) assertNotNull(email.body) assertTrue(email.body[HTML].isPresent) diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/EmailHtml.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/EmailHtml.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/EmailHtml.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/EmailHtml.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw index 62055af..e996dcb 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerSpec.rocker.raw @@ -22,7 +22,7 @@ import java.util.function.Consumer import static io.micronaut.email.BodyType.HTML import static io.micronaut.http.HttpStatus.ACCEPTED -@@Property(name = 'FROM_EMAIL', value = 'bob@@gcn.example') +@@Property(name = 'FROM_EMAIL', value = 'bob@@gdk.example') @@Property(name = 'FROM_PASSWORD', value = 'password') @@MicronautTest class EmailControllerSpec extends Specification { @@ -37,15 +37,15 @@ class EmailControllerSpec extends Specification { when: def response = client.toBlocking().exchange( HttpRequest.POST('/email/send', - [to: 'alice@@gcn.example'])) + [to: 'alice@@gdk.example'])) then: response.status() == ACCEPTED sentEmail - sentEmail.from.email == 'bob@@gcn.example' + sentEmail.from.email == 'bob@@gdk.example' sentEmail.to.size() == 1 - sentEmail.to.first().email == 'alice@@gcn.example' + sentEmail.to.first().email == 'alice@@gdk.example' sentEmail.subject == 'Sending email with JavaMail is Fun' sentEmail.body sentEmail.body.get(HTML).get() == 'and easy to do anywhere with Micronaut Email' diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw index eea2bed..49e6ce2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestGroovyJUnit.rocker.raw @@ -24,7 +24,7 @@ import static io.micronaut.http.HttpStatus.ACCEPTED import static org.junit.jupiter.api.Assertions.assertEquals import static org.junit.jupiter.api.Assertions.assertNotNull -@@Property(name = 'FROM_EMAIL', value = 'bob@@gcn.example') +@@Property(name = 'FROM_EMAIL', value = 'bob@@gdk.example') @@Property(name = 'FROM_PASSWORD', value = 'example-password') @@MicronautTest class EmailControllerTest { @@ -39,14 +39,14 @@ class EmailControllerTest { void testSend() { def response = client.toBlocking().exchange( HttpRequest.POST('/email/send', - [to: 'alice@@gcn.example'])) + [to: 'alice@@gdk.example'])) assertEquals(ACCEPTED, response.status()) assertNotNull(sentEmail) - assertEquals('bob@@gcn.example', sentEmail.from.email) + assertEquals('bob@@gdk.example', sentEmail.from.email) assertEquals(1, sentEmail.to.size()) - assertEquals('alice@@gcn.example', sentEmail.to.first().email) + assertEquals('alice@@gdk.example', sentEmail.to.first().email) assertEquals('Sending email with JavaMail is Fun', sentEmail.subject) assertNotNull(sentEmail.body) assertEquals('and easy to do anywhere with Micronaut Email', diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw index 574ca4e..8a93404 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestJava.rocker.raw @@ -27,7 +27,7 @@ import static io.micronaut.http.HttpStatus.ACCEPTED; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -@@Property(name = "FROM_EMAIL", value = "bob@@gcn.example") +@@Property(name = "FROM_EMAIL", value = "bob@@gdk.example") @@Property(name = "FROM_PASSWORD", value = "example-password") @@MicronautTest public class EmailControllerTest { @@ -42,14 +42,14 @@ public class EmailControllerTest { void testSend() { var response = client.toBlocking().exchange( HttpRequest.POST("/email/send", - Map.of("to", "alice@@gcn.example"))); + Map.of("to", "alice@@gdk.example"))); assertEquals(ACCEPTED, response.status()); assertNotNull(sentEmail); - assertEquals("bob@@gcn.example", sentEmail.getFrom().getEmail()); + assertEquals("bob@@gdk.example", sentEmail.getFrom().getEmail()); assertEquals(1, sentEmail.getTo().size()); - assertEquals("alice@@gcn.example", sentEmail.getTo().stream().findFirst().get().getEmail()); + assertEquals("alice@@gdk.example", sentEmail.getTo().stream().findFirst().get().getEmail()); assertEquals("Sending email with JavaMail is Fun", sentEmail.getSubject()); assertNotNull(sentEmail.getBody()); assertEquals("and easy to do anywhere with Micronaut Email", diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw index abc4f76..13b4149 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotest.rocker.raw @@ -27,7 +27,7 @@ import org.junit.jupiter.api.Assertions.assertNotNull lateinit var sentEmail: Email -@@Property(name = "FROM_EMAIL", value = "bob@@gcn.example") +@@Property(name = "FROM_EMAIL", value = "bob@@gdk.example") @@Property(name = "FROM_PASSWORD", value = "example-password") @@MicronautTest class EmailControllerTest(@@Client("/") private val client: HttpClient) : StringSpec({ @@ -36,15 +36,15 @@ class EmailControllerTest(@@Client("/") private val client: HttpClient) : String val response: HttpResponse<*> = client.toBlocking().exchange, Any>( HttpRequest.POST( "/email/send", - mapOf("to" to "alice@@gcn.example") + mapOf("to" to "alice@@gdk.example") ) ) assertEquals(ACCEPTED, response.status()) assertNotNull(sentEmail) - assertEquals("bob@@gcn.example", sentEmail.from.email) + assertEquals("bob@@gdk.example", sentEmail.from.email) assertEquals(1, sentEmail.to?.size) - assertEquals("alice@@gcn.example", sentEmail.to?.stream()?.findFirst()?.get()?.email) + assertEquals("alice@@gdk.example", sentEmail.to?.stream()?.findFirst()?.get()?.email) assertEquals("Sending email with JavaMail is Fun", sentEmail.subject) assertNotNull(sentEmail.body) assertEquals( diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw index c643745..c89c17e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/NonCloudMailControllerTestKotlinJUnit.rocker.raw @@ -26,7 +26,7 @@ import io.micronaut.email.BodyType.HTML import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertNotNull -@@Property(name = "FROM_EMAIL", value = "bob@@gcn.example") +@@Property(name = "FROM_EMAIL", value = "bob@@gdk.example") @@Property(name = "FROM_PASSWORD", value = "example-password") @@MicronautTest(rebuildContext = true) class EmailControllerTest(@@Client("/") val client: HttpClient) { @@ -38,15 +38,15 @@ class EmailControllerTest(@@Client("/") val client: HttpClient) { val response: HttpResponse<*> = client.toBlocking().exchange, Any>( HttpRequest.POST( "/email/send", - mapOf("to" to "alice@@gcn.example") + mapOf("to" to "alice@@gdk.example") ) ) assertEquals(ACCEPTED, response.status()) assertNotNull(sentEmail) - assertEquals("bob@@gcn.example", sentEmail.from.email) + assertEquals("bob@@gdk.example", sentEmail.from.email) assertEquals(1, sentEmail.to?.size) - assertEquals("alice@@gcn.example", sentEmail.to?.stream()?.findFirst()?.get()?.email) + assertEquals("alice@@gdk.example", sentEmail.to?.stream()?.findFirst()?.get()?.email) assertEquals("Sending email with JavaMail is Fun", sentEmail.subject) assertNotNull(sentEmail.body) assertEquals( diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerGroovy.rocker.raw similarity index 94% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerGroovy.rocker.raw index 4063372..8b4ed93 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerGroovy.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerGroovy.rocker.raw @@ -38,7 +38,7 @@ class OciEmailController { @@Post(uri = '/basic', produces = TEXT_PLAIN) String index() { emailSender.send(Email.builder() - .to('basic@@gcn.example') + .to('basic@@gdk.example') .subject('Micronaut Email Basic Test: ' + LocalDateTime.now()) .body('Basic email')) return 'Email sent.' @@ -47,7 +47,7 @@ class OciEmailController { @@Post(uri = '/template/{name}', produces = TEXT_PLAIN) String template(String name) { emailSender.send(Email.builder() - .to('template@@gcn.example') + .to('template@@gdk.example') .subject('Micronaut Email Template Test: ' + LocalDateTime.now()) .body(new TemplateBody<>(HTML, new ModelAndView<>('email', [name: name])))) @@ -60,7 +60,7 @@ class OciEmailController { String contentType = file.contentType.orElse(APPLICATION_OCTET_STREAM_TYPE) emailSender.send(Email.builder() - .to('attachment@@gcn.example') + .to('attachment@@gdk.example') .subject('Micronaut Email Attachment Test: ' + LocalDateTime.now()) .body('Attachment email') .attachment(Attachment.builder() diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerJava.rocker.raw similarity index 94% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerJava.rocker.raw index c04c5bb..c9be09d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerJava.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerJava.rocker.raw @@ -38,7 +38,7 @@ class OciEmailController { @@Post(uri = "/basic", produces = TEXT_PLAIN) String index() { emailSender.send(Email.builder() - .to("basic@@gcn.example") + .to("basic@@gdk.example") .subject("Micronaut Email Basic Test: " + LocalDateTime.now()) .body("Basic email")); return "Email sent."; @@ -47,7 +47,7 @@ class OciEmailController { @@Post(uri = "/template/{name}", produces = TEXT_PLAIN) String template(String name) { emailSender.send(Email.builder() - .to("template@@gcn.example") + .to("template@@gdk.example") .subject("Micronaut Email Template Test: " + LocalDateTime.now()) .body(new TemplateBody<>(HTML, new ModelAndView<>("email", singletonMap("name", name))))); @@ -57,7 +57,7 @@ class OciEmailController { @@Post(uri = "/attachment", produces = TEXT_PLAIN, consumes = MULTIPART_FORM_DATA) String attachment(CompletedFileUpload file) throws IOException { emailSender.send(Email.builder() - .to("attachment@@gcn.example") + .to("attachment@@gdk.example") .subject("Micronaut Email Attachment Test: " + LocalDateTime.now()) .body("Attachment email") .attachment(Attachment.builder() diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerKotlin.rocker.raw similarity index 94% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerKotlin.rocker.raw index 4a2b6b8..c809504 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerKotlin.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerKotlin.rocker.raw @@ -30,7 +30,7 @@ class OciEmailController(private val emailSender: EmailSender<*, *>) { fun index(): String { emailSender.send( Email.builder() - .to("basic@@gcn.example") + .to("basic@@gdk.example") .subject("Micronaut Email Basic Test: " + LocalDateTime.now()) .body("Basic email") ) @@ -41,7 +41,7 @@ class OciEmailController(private val emailSender: EmailSender<*, *>) { fun template(name: String): String { emailSender.send( Email.builder() - .to("template@@gcn.example") + .to("template@@gdk.example") .subject("Micronaut Email Template Test: " + LocalDateTime.now()) .body(TemplateBody(HTML, ModelAndView("email", mapOf("name" to name)))) ) @@ -53,7 +53,7 @@ class OciEmailController(private val emailSender: EmailSender<*, *>) { fun attachment(file: CompletedFileUpload): String { emailSender.send( Email.builder() - .to("attachment@@gcn.example") + .to("attachment@@gdk.example") .subject("Micronaut Email Attachment Test: " + LocalDateTime.now()) .body("Attachment email") .attachment( diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestJava.rocker.raw similarity index 93% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestJava.rocker.raw index 208cd15..08de4cc 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestJava.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestJava.rocker.raw @@ -65,13 +65,13 @@ class EmailControllerTest { assertEquals(1, emails.size()); Email email = emails.get(0); - assertEquals("xyz@@gcn.example", email.getFrom().getEmail()); + assertEquals("xyz@@gdk.example", email.getFrom().getEmail()); assertNull(email.getReplyTo()); assertNotNull(email.getTo()); assertEquals(1, email.getTo().size()); - assertEquals("basic@@gcn.example", email.getTo().iterator().next().getEmail()); + assertEquals("basic@@gdk.example", email.getTo().iterator().next().getEmail()); assertNull(email.getTo().iterator().next().getName()); assertNull(email.getCc()); @@ -97,13 +97,13 @@ class EmailControllerTest { assertEquals(1, emails.size()); Email email = emails.get(0); - assertEquals("xyz@@gcn.example", email.getFrom().getEmail()); + assertEquals("xyz@@gdk.example", email.getFrom().getEmail()); assertNull(email.getReplyTo()); assertNotNull(email.getTo()); assertEquals(1, email.getTo().size()); - assertEquals("template@@gcn.example", email.getTo().iterator().next().getEmail()); + assertEquals("template@@gdk.example", email.getTo().iterator().next().getEmail()); assertNull(email.getTo().iterator().next().getName()); assertNull(email.getCc()); @@ -134,13 +134,13 @@ class EmailControllerTest { assertEquals(1, emails.size()); Email email = emails.get(0); - assertEquals("xyz@@gcn.example", email.getFrom().getEmail()); + assertEquals("xyz@@gdk.example", email.getFrom().getEmail()); assertNull(email.getReplyTo()); assertNotNull(email.getTo()); assertEquals(1, email.getTo().size()); - assertEquals("attachment@@gcn.example", email.getTo().iterator().next().getEmail()); + assertEquals("attachment@@gdk.example", email.getTo().iterator().next().getEmail()); assertNull(email.getTo().iterator().next().getName()); assertNull(email.getCc()); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciEmailControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciEmailControllerTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/email/template/OciSessionProviderKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/email/template/OciSessionProviderKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AbstractK8sFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AbstractK8sFeature.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AbstractK8sFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AbstractK8sFeature.java index 8b6474f..f283b5a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AbstractK8sFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AbstractK8sFeature.java @@ -13,19 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; -import static cloud.graal.gcn.model.GcnService.K8S; +import static cloud.graal.gdk.model.GdkService.K8S; import static io.micronaut.starter.feature.k8s.KubernetesClient.MICRONAUT_KUBERNETES_GROUP_ID; /** @@ -33,7 +33,7 @@ * * @since 1.0.0 */ -public abstract class AbstractK8sFeature extends AbstractGcnServiceFeature { +public abstract class AbstractK8sFeature extends AbstractGdkServiceFeature { private static final Dependency DISCOVERY_CLIENT = Dependency.builder() .groupId(MICRONAUT_KUBERNETES_GROUP_ID) @@ -57,14 +57,14 @@ protected AbstractK8sFeature(KubernetesClient kubernetesClient, } @Override - public final void processSelectedFeatures(GcnFeatureContext featureContext) { + public final void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(kubernetesClient, KubernetesClient.class); featureContext.addFeature(management, Management.class); featureContext.addFeature(kubernetes, Kubernetes.class); } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(DISCOVERY_CLIENT); @@ -76,7 +76,7 @@ public final void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return K8S; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AwsK8s.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AwsK8s.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AwsK8s.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AwsK8s.java index 879af7a..9b5e7fe 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AwsK8s.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AwsK8s.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS Kubernetes service feature. @@ -43,13 +43,13 @@ public AwsK8s(KubernetesClient kubernetesClient, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-k8s"; + return "gdk-aws-k8s"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AzureK8s.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AzureK8s.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AzureK8s.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AzureK8s.java index 25f4471..2bfed8e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/AzureK8s.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/AzureK8s.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure Kubernetes service feature. @@ -43,13 +43,13 @@ public AzureK8s(KubernetesClient kubernetesClient, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-k8s"; + return "gdk-azure-k8s"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/GcpK8s.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/GcpK8s.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/GcpK8s.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/GcpK8s.java index 10b6b65..3ec7827 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/GcpK8s.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/GcpK8s.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP Kubernetes service feature. @@ -43,13 +43,13 @@ public GcpK8s(KubernetesClient kubernetesClient, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-k8s"; + return "gdk-gcp-k8s"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/NonCloudK8s.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/NonCloudK8s.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/NonCloudK8s.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/NonCloudK8s.java index 3fb3134..c623a2a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/NonCloudK8s.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/NonCloudK8s.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud Kubernetes service feature. @@ -43,13 +43,13 @@ public NonCloudK8s(KubernetesClient kubernetesClient, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-k8s"; + return "gdk-k8s"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/OciK8s.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/OciK8s.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/OciK8s.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/OciK8s.java index 96fa522..7e035a6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/k8s/OciK8s.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/k8s/OciK8s.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.k8s; +package cloud.graal.gdk.feature.service.k8s; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.k8s.Kubernetes; import io.micronaut.starter.feature.k8s.KubernetesClient; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI Kubernetes service feature. @@ -43,13 +43,13 @@ public OciK8s(KubernetesClient kubernetesClient, @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-k8s"; + return "gdk-oci-k8s"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AbstractLoggingFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AbstractLoggingFeature.java similarity index 71% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AbstractLoggingFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AbstractLoggingFeature.java index fe41579..f78dba6 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AbstractLoggingFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AbstractLoggingFeature.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; -import static cloud.graal.gcn.model.GcnService.LOGGING; +import static cloud.graal.gdk.model.GdkService.LOGGING; /** * Base class for logging service features. * * @since 1.0.0 */ -public abstract class AbstractLoggingFeature extends AbstractGcnServiceFeature { +public abstract class AbstractLoggingFeature extends AbstractGdkServiceFeature { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return LOGGING; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AwsLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AwsLogging.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AwsLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AwsLogging.java index 78cca16..35d017a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AwsLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AwsLogging.java @@ -13,21 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.logging.template.LogControllerGroovy; -import cloud.graal.gcn.feature.service.logging.template.LogControllerJava; -import cloud.graal.gcn.feature.service.logging.template.LogControllerKotlin; -import cloud.graal.gcn.feature.service.logging.template.LogbackXml; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.logging.template.LogControllerGroovy; +import cloud.graal.gdk.feature.service.logging.template.LogControllerJava; +import cloud.graal.gdk.feature.service.logging.template.LogControllerKotlin; +import cloud.graal.gdk.feature.service.logging.template.LogbackXml; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.template.RockerTemplate; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS logging service feature. @@ -44,7 +44,7 @@ public class AwsLogging extends AbstractLoggingFeature { .build(); @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(CLOUDWATCH_LOGGING); @@ -69,13 +69,13 @@ public void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-logging"; + return "gdk-aws-logging"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AzureLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AzureLogging.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AzureLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AzureLogging.java index 46a6b8b..6046d36 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/AzureLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/AzureLogging.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure logging service feature. @@ -31,19 +31,19 @@ public class AzureLogging extends AbstractLoggingFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-logging"; + return "gdk-azure-logging"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/GcpLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/GcpLogging.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/GcpLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/GcpLogging.java index 01aada9..f4499f2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/GcpLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/GcpLogging.java @@ -13,21 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.logging.template.LogControllerGroovy; -import cloud.graal.gcn.feature.service.logging.template.LogControllerJava; -import cloud.graal.gcn.feature.service.logging.template.LogControllerKotlin; -import cloud.graal.gcn.feature.service.logging.template.LogbackXml; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.logging.template.LogControllerGroovy; +import cloud.graal.gdk.feature.service.logging.template.LogControllerJava; +import cloud.graal.gdk.feature.service.logging.template.LogControllerKotlin; +import cloud.graal.gdk.feature.service.logging.template.LogbackXml; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.template.RockerTemplate; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP logging service feature. @@ -44,7 +44,7 @@ public class GcpLogging extends AbstractLoggingFeature { .build(); @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(LOGGING_LOGBACK); @@ -69,13 +69,13 @@ public void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-logging"; + return "gdk-gcp-logging"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/NonCloudLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/NonCloudLogging.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/NonCloudLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/NonCloudLogging.java index 9a7e491..b9ae5d3 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/NonCloudLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/NonCloudLogging.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud logging service feature. @@ -31,19 +31,19 @@ public class NonCloudLogging extends AbstractLoggingFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-logging"; + return "gdk-logging"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/OciLogging.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/OciLogging.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/OciLogging.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/OciLogging.java index 2b23256..611c46e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/OciLogging.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/OciLogging.java @@ -13,22 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.logging; +package cloud.graal.gdk.feature.service.logging; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.OracleCloudNettyClientDependencies; -import cloud.graal.gcn.feature.service.logging.template.LogControllerGroovy; -import cloud.graal.gcn.feature.service.logging.template.LogControllerJava; -import cloud.graal.gcn.feature.service.logging.template.LogControllerKotlin; -import cloud.graal.gcn.feature.service.logging.template.LogbackXml; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.OracleCloudNettyClientDependencies; +import cloud.graal.gdk.feature.service.logging.template.LogControllerGroovy; +import cloud.graal.gdk.feature.service.logging.template.LogControllerJava; +import cloud.graal.gdk.feature.service.logging.template.LogControllerKotlin; +import cloud.graal.gdk.feature.service.logging.template.LogbackXml; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.template.RockerTemplate; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI logging service feature. @@ -45,7 +45,7 @@ public class OciLogging extends AbstractLoggingFeature implements OracleCloudNet .build(); @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(ORACLECLOUD_LOGGING); @@ -72,13 +72,13 @@ public void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-logging"; + return "gdk-oci-logging"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogbackXml.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogbackXml.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/logging/template/LogbackXml.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/logging/template/LogbackXml.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AbstractMetricsFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AbstractMetricsFeature.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AbstractMetricsFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AbstractMetricsFeature.java index 023c115..0150419 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AbstractMetricsFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AbstractMetricsFeature.java @@ -13,20 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceGroovy; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceJava; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceKotlin; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceSpec; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceTestGroovyJUnit; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceTestJavaJUnit; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceTestKotest; -import cloud.graal.gcn.feature.service.metrics.template.MetricsServiceTestKotlinJUnit; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk.feature.service.metrics; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceGroovy; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceJava; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceKotlin; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceSpec; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceTestGroovyJUnit; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceTestJavaJUnit; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceTestKotest; +import cloud.graal.gdk.feature.service.metrics.template.MetricsServiceTestKotlinJUnit; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.micrometer.Core; @@ -35,7 +35,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnService.METRICS; +import static cloud.graal.gdk.model.GdkService.METRICS; import static io.micronaut.starter.application.ApplicationType.DEFAULT; /** @@ -43,7 +43,7 @@ * * @since 1.0.0 */ -public abstract class AbstractMetricsFeature extends AbstractGcnServiceFeature { +public abstract class AbstractMetricsFeature extends AbstractGdkServiceFeature { private final Core core; private final Management management; @@ -63,14 +63,14 @@ protected AbstractMetricsFeature(Core core, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(core, Core.class); featureContext.addFeature(management, Management.class); featureContext.addFeature(micrometerAnnotations, MicrometerAnnotations.class); } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { doApply(generatorContext); @@ -120,7 +120,7 @@ public final void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return METRICS; } @@ -129,5 +129,5 @@ public final GcnService getService() { * * @param generatorContext the generator context */ - protected abstract void doApply(GcnGeneratorContext generatorContext); + protected abstract void doApply(GdkGeneratorContext generatorContext); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AwsMetrics.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AwsMetrics.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AwsMetrics.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AwsMetrics.java index 840566a..3b6908d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AwsMetrics.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AwsMetrics.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; +package cloud.graal.gdk.feature.service.metrics; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.micrometer.CloudWatch; import io.micronaut.starter.feature.micrometer.Core; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS metrics service feature. @@ -51,14 +51,14 @@ public AwsMetrics(CloudWatch cloudWatch, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(cloudWatch, CloudWatch.class); } @NonNull @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { generatorContext.getTestConfiguration().addNested("micronaut.metrics.export.cloudwatch.enabled", false); } @@ -66,13 +66,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-metrics"; + return "gdk-aws-metrics"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AzureMetrics.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AzureMetrics.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AzureMetrics.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AzureMetrics.java index fddc2de..6d73398 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/AzureMetrics.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/AzureMetrics.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; +package cloud.graal.gdk.feature.service.metrics; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.micrometer.Core; import io.micronaut.starter.feature.micrometer.MicrometerAnnotations; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure metrics service feature. @@ -44,19 +44,19 @@ public AzureMetrics(Core core, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-metrics"; + return "gdk-azure-metrics"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/GcpMetrics.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/GcpMetrics.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/GcpMetrics.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/GcpMetrics.java index 5b73587..9bc95f8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/GcpMetrics.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/GcpMetrics.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; +package cloud.graal.gdk.feature.service.metrics; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.micrometer.Core; import io.micronaut.starter.feature.micrometer.MicrometerAnnotations; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP metrics service feature. @@ -51,14 +51,14 @@ public GcpMetrics(Core core, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(stackDriver, Stackdriver.class); } @NonNull @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { generatorContext.getTestConfiguration().addNested("micronaut.metrics.export.stackdriver.enabled", false); } @@ -66,13 +66,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-metrics"; + return "gdk-gcp-metrics"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/NonCloudMetrics.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/NonCloudMetrics.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/NonCloudMetrics.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/NonCloudMetrics.java index 5371afe..6b589c8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/NonCloudMetrics.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/NonCloudMetrics.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; +package cloud.graal.gdk.feature.service.metrics; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.micrometer.Core; import io.micronaut.starter.feature.micrometer.MicrometerAnnotations; import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud metrics service feature. @@ -44,19 +44,19 @@ public NonCloudMetrics(Core core, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-metrics"; + return "gdk-metrics"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/OciMetrics.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/OciMetrics.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/OciMetrics.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/OciMetrics.java index 846431a..0b71756 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/OciMetrics.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/OciMetrics.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.metrics; +package cloud.graal.gdk.feature.service.metrics; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.micrometer.Core; import io.micronaut.starter.feature.micrometer.MicrometerAnnotations; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.other.Management; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI metrics service feature. @@ -51,14 +51,14 @@ public OciMetrics(OracleCloud oracleCloud, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(oracleCloud, OracleCloud.class); } @NonNull @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { generatorContext.getTestConfiguration().addNested("micronaut.metrics.export.oraclecloud.enabled", false); } @@ -66,13 +66,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-metrics"; + return "gdk-oci-metrics"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestJavaJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestJavaJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestJavaJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestJavaJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/metrics/template/MetricsServiceTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/metrics/template/MetricsServiceTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AbstractObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AbstractObjectStore.java similarity index 78% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AbstractObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AbstractObjectStore.java index 218e157..ecdb608 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AbstractObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AbstractObjectStore.java @@ -13,35 +13,35 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesApiGroovy; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesApiJava; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesApiKotlin; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerGroovy; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerJava; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerKotlin; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerSpec; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerTestJava; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerTestKotest; -import cloud.graal.gcn.feature.service.objectstore.template.ProfilePicturesControllerTestKotlinJUnit; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk.feature.service.objectstore; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesApiGroovy; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesApiJava; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesApiKotlin; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerGroovy; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerJava; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerKotlin; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerSpec; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerTestJava; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerTestKotest; +import cloud.graal.gdk.feature.service.objectstore.template.ProfilePicturesControllerTestKotlinJUnit; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.build.dependencies.Dependency; -import static cloud.graal.gcn.model.GcnService.OBJECTSTORE; +import static cloud.graal.gdk.model.GdkService.OBJECTSTORE; /** * Base class for object storage service features. * * @since 1.0.0 */ -public abstract class AbstractObjectStore extends AbstractGcnServiceFeature { +public abstract class AbstractObjectStore extends AbstractGdkServiceFeature { private static final Dependency OBJECT_STORAGE_CORE = Dependency.builder() .groupId("io.micronaut.objectstorage") @@ -62,7 +62,7 @@ public abstract class AbstractObjectStore extends AbstractGcnServiceFeature { .build(); @Override - public final void processSelectedFeatures(GcnFeatureContext featureContext) { + public final void processSelectedFeatures(GdkFeatureContext featureContext) { addFeature(featureContext); } @@ -71,10 +71,10 @@ public final void processSelectedFeatures(GcnFeatureContext featureContext) { * * @param featureContext the context */ - protected abstract void addFeature(GcnFeatureContext featureContext); + protected abstract void addFeature(GdkFeatureContext featureContext); @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { addConfig(generatorContext); @@ -134,11 +134,11 @@ public final void apply(GcnGeneratorContext generatorContext) { * * @param generatorContext the context */ - protected abstract void addConfig(GcnGeneratorContext generatorContext); + protected abstract void addConfig(GdkGeneratorContext generatorContext); @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return OBJECTSTORE; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AwsObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AwsObjectStore.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AwsObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AwsObjectStore.java index d47fb7e..2e08661 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AwsObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AwsObjectStore.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; +package cloud.graal.gdk.feature.service.objectstore; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.objectstorage.ObjectStorageAws; import jakarta.inject.Singleton; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS objectstore service feature. @@ -44,12 +44,12 @@ public AwsObjectStore(ObjectStorageAws objectStorageAws) { } @Override - protected void addFeature(GcnFeatureContext featureContext) { + protected void addFeature(GdkFeatureContext featureContext) { featureContext.addFeature(objectStorageAws, ObjectStorageAws.class); } @Override - protected void addConfig(GcnGeneratorContext generatorContext) { + protected void addConfig(GdkGeneratorContext generatorContext) { //micronaut: // object-storage: // aws: @@ -65,13 +65,13 @@ protected void addConfig(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-objectstore"; + return "gdk-aws-objectstore"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AzureObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AzureObjectStore.java similarity index 80% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AzureObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AzureObjectStore.java index a312d00..b97fccd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/AzureObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/AzureObjectStore.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; +package cloud.graal.gdk.feature.service.objectstore; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.objectstorage.ObjectStorageAzure; import jakarta.inject.Singleton; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure objectstore service feature. @@ -44,12 +44,12 @@ public AzureObjectStore(ObjectStorageAzure objectStorageAzure) { } @Override - protected void addFeature(GcnFeatureContext featureContext) { + protected void addFeature(GdkFeatureContext featureContext) { featureContext.addFeature(objectStorageAzure, ObjectStorageAzure.class); } @Override - protected void addConfig(GcnGeneratorContext generatorContext) { + protected void addConfig(GdkGeneratorContext generatorContext) { generatorContext.getCloudConfiguration().addNested(Map.of( "micronaut.object-storage.azure.default.bucket", "true", @@ -61,13 +61,13 @@ protected void addConfig(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-objectstore"; + return "gdk-azure-objectstore"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/GcpObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/GcpObjectStore.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/GcpObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/GcpObjectStore.java index 1203edc..d1746f8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/GcpObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/GcpObjectStore.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; +package cloud.graal.gdk.feature.service.objectstore; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.objectstorage.ObjectStorageGcp; import jakarta.inject.Singleton; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP objectstore service feature. @@ -44,12 +44,12 @@ public GcpObjectStore(ObjectStorageGcp objectStorageGcp) { } @Override - protected void addFeature(GcnFeatureContext featureContext) { + protected void addFeature(GdkFeatureContext featureContext) { featureContext.addFeature(objectStorageGcp, ObjectStorageGcp.class); } @Override - protected void addConfig(GcnGeneratorContext generatorContext) { + protected void addConfig(GdkGeneratorContext generatorContext) { //micronaut: // object-storage: // gcp: @@ -64,13 +64,13 @@ protected void addConfig(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-objectstore"; + return "gdk-gcp-objectstore"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/NonCloudObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/NonCloudObjectStore.java similarity index 62% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/NonCloudObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/NonCloudObjectStore.java index 5c19ea9..3c0c8ab 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/NonCloudObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/NonCloudObjectStore.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; +package cloud.graal.gdk.feature.service.objectstore; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; -import static cloud.graal.gcn.model.GcnService.OBJECTSTORE; +import static cloud.graal.gdk.model.GdkCloud.NONE; +import static cloud.graal.gdk.model.GdkService.OBJECTSTORE; /** * Non-cloud objectstore service feature. @@ -31,28 +31,28 @@ * @since 1.0.0 */ @Singleton -public class NonCloudObjectStore extends AbstractGcnServiceFeature { +public class NonCloudObjectStore extends AbstractGdkServiceFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return OBJECTSTORE; } @NonNull @Override public String getName() { - return "gcn-objectstore"; + return "gdk-objectstore"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/OciObjectStore.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/OciObjectStore.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/OciObjectStore.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/OciObjectStore.java index 8e744a3..97508d2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/OciObjectStore.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/OciObjectStore.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.objectstore; +package cloud.graal.gdk.feature.service.objectstore; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.objectstorage.ObjectStorageOracleCloud; import jakarta.inject.Singleton; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI objectstore service feature. @@ -44,12 +44,12 @@ public OciObjectStore(ObjectStorageOracleCloud objectStorageOracleCloud) { } @Override - protected void addFeature(GcnFeatureContext featureContext) { + protected void addFeature(GdkFeatureContext featureContext) { featureContext.addFeature(objectStorageOracleCloud, ObjectStorageOracleCloud.class); } @Override - protected void addConfig(GcnGeneratorContext generatorContext) { + protected void addConfig(GdkGeneratorContext generatorContext) { //micronaut: // object-storage: // oracle-cloud: @@ -66,13 +66,13 @@ protected void addConfig(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-objectstore"; + return "gdk-oci-objectstore"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesApiKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesApiKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/objectstore/template/ProfilePicturesControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/objectstore/template/ProfilePicturesControllerTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AbstractSdkFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AbstractSdkFeature.java similarity index 72% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AbstractSdkFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AbstractSdkFeature.java index 89d9083..160da6e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AbstractSdkFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AbstractSdkFeature.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; -import static cloud.graal.gcn.model.GcnService.SDK; +import static cloud.graal.gdk.model.GdkService.SDK; /** * Base class for SDK service features. * * @since 1.0.0 */ -public abstract class AbstractSdkFeature extends AbstractGcnServiceFeature { +public abstract class AbstractSdkFeature extends AbstractGdkServiceFeature { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return SDK; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AwsSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AwsSdk.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AwsSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AwsSdk.java index 0e7bc1d..8ccb495 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AwsSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AwsSdk.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.aws.AwsV2Sdk; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS sdk service feature. @@ -42,24 +42,24 @@ public AwsSdk(AwsV2Sdk awsV2Sdk) { } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(awsV2Sdk, AwsV2Sdk.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO code gen } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-sdk"; + return "gdk-aws-sdk"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AzureSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AzureSdk.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AzureSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AzureSdk.java index f66fe59..73f8a16 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/AzureSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/AzureSdk.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure sdk service feature. @@ -31,19 +31,19 @@ public class AzureSdk extends AbstractSdkFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-sdk"; + return "gdk-azure-sdk"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/GcpSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/GcpSdk.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/GcpSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/GcpSdk.java index 0efd116..4447609 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/GcpSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/GcpSdk.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP sdk service feature. @@ -31,19 +31,19 @@ public class GcpSdk extends AbstractSdkFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-sdk"; + return "gdk-gcp-sdk"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/NonCloudSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/NonCloudSdk.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/NonCloudSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/NonCloudSdk.java index db42f02..72415e3 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/NonCloudSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/NonCloudSdk.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud sdk service feature. @@ -31,19 +31,19 @@ public class NonCloudSdk extends AbstractSdkFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-sdk"; + return "gdk-sdk"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/OciSdk.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/OciSdk.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/OciSdk.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/OciSdk.java index 26be1eb..022e67e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/OciSdk.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/OciSdk.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.sdk; +package cloud.graal.gdk.feature.service.sdk; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceControllerGroovy; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceControllerJava; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceControllerKotlin; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceDataGroovy; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceDataJava; -import cloud.graal.gcn.feature.service.sdk.template.OciInstanceDataKotlin; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceControllerGroovy; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceControllerJava; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceControllerKotlin; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceDataGroovy; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceDataJava; +import cloud.graal.gdk.feature.service.sdk.template.OciInstanceDataKotlin; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.oraclecloud.OracleCloudSdk; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI sdk service feature. @@ -56,12 +56,12 @@ public OciSdk(OracleCloudSdk oracleCloudSdk) { } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(oracleCloudSdk, OracleCloudSdk.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { @@ -85,13 +85,13 @@ public void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-sdk"; + return "gdk-oci-sdk"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/sdk/template/OciInstanceDataKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/sdk/template/OciInstanceDataKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AbstractSecretManagementFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AbstractSecretManagementFeature.java similarity index 74% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AbstractSecretManagementFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AbstractSecretManagementFeature.java index 877807c..9fad751 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AbstractSecretManagementFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AbstractSecretManagementFeature.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; +package cloud.graal.gdk.feature.service.secretmanagement; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; -import static cloud.graal.gcn.model.GcnService.SECRETMANAGEMENT; +import static cloud.graal.gdk.model.GdkService.SECRETMANAGEMENT; /** * Base class for secret management service features. * * @since 1.0.0 */ -public abstract class AbstractSecretManagementFeature extends AbstractGcnServiceFeature { +public abstract class AbstractSecretManagementFeature extends AbstractGdkServiceFeature { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return SECRETMANAGEMENT; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AwsSecretManagement.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AwsSecretManagement.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AwsSecretManagement.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AwsSecretManagement.java index 250b99e..2b65e48 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AwsSecretManagement.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AwsSecretManagement.java @@ -13,24 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.secretmanagement.template.ClientIdControllerGroovy; -import cloud.graal.gcn.feature.service.secretmanagement.template.ClientIdControllerJava; -import cloud.graal.gcn.feature.service.secretmanagement.template.ClientIdControllerKotlin; -import cloud.graal.gcn.feature.service.secretmanagement.template.SdkHttpClientSpec; -import cloud.graal.gcn.feature.service.secretmanagement.template.SdkHttpClientTestGroovyJUnit; -import cloud.graal.gcn.feature.service.secretmanagement.template.SdkHttpClientTestJava; -import cloud.graal.gcn.feature.service.secretmanagement.template.SdkHttpClientTestKotest; -import cloud.graal.gcn.feature.service.secretmanagement.template.SdkHttpClientTestKotlinJUnit; -import cloud.graal.gcn.feature.service.secretmanagement.template.SecretsManagerClientSpec; -import cloud.graal.gcn.feature.service.secretmanagement.template.SecretsManagerClientTestGroovyJUnit; -import cloud.graal.gcn.feature.service.secretmanagement.template.SecretsManagerClientTestJava; -import cloud.graal.gcn.feature.service.secretmanagement.template.SecretsManagerClientTestKotest; -import cloud.graal.gcn.feature.service.secretmanagement.template.SecretsManagerClientTestKotlinJUnit; -import cloud.graal.gcn.model.GcnCloud; +package cloud.graal.gdk.feature.service.secretmanagement; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.secretmanagement.template.ClientIdControllerGroovy; +import cloud.graal.gdk.feature.service.secretmanagement.template.ClientIdControllerJava; +import cloud.graal.gdk.feature.service.secretmanagement.template.ClientIdControllerKotlin; +import cloud.graal.gdk.feature.service.secretmanagement.template.SdkHttpClientSpec; +import cloud.graal.gdk.feature.service.secretmanagement.template.SdkHttpClientTestGroovyJUnit; +import cloud.graal.gdk.feature.service.secretmanagement.template.SdkHttpClientTestJava; +import cloud.graal.gdk.feature.service.secretmanagement.template.SdkHttpClientTestKotest; +import cloud.graal.gdk.feature.service.secretmanagement.template.SdkHttpClientTestKotlinJUnit; +import cloud.graal.gdk.feature.service.secretmanagement.template.SecretsManagerClientSpec; +import cloud.graal.gdk.feature.service.secretmanagement.template.SecretsManagerClientTestGroovyJUnit; +import cloud.graal.gdk.feature.service.secretmanagement.template.SecretsManagerClientTestJava; +import cloud.graal.gdk.feature.service.secretmanagement.template.SecretsManagerClientTestKotest; +import cloud.graal.gdk.feature.service.secretmanagement.template.SecretsManagerClientTestKotlinJUnit; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.aws.AwsV2Sdk; @@ -42,7 +42,7 @@ import java.util.List; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS secret management service feature. @@ -70,14 +70,14 @@ public AwsSecretManagement(AwsSecretsManager awsSecretsManager, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(awsV2Sdk, AwsV2Sdk.class); featureContext.addFeature(awsSecretsManager, AwsSecretsManager.class); featureContext.addFeature(securityOAuth2, SecurityOAuth2.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { @@ -122,13 +122,13 @@ public void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-secretmanagement"; + return "gdk-aws-secretmanagement"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AzureSecretManagement.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AzureSecretManagement.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AzureSecretManagement.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AzureSecretManagement.java index d61fa73..bbcf553 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/AzureSecretManagement.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/AzureSecretManagement.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; +package cloud.graal.gdk.feature.service.secretmanagement; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure secret management service feature. @@ -31,19 +31,19 @@ public class AzureSecretManagement extends AbstractSecretManagementFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-secret-management"; + return "gdk-azure-secret-management"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/GcpSecretManagement.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/GcpSecretManagement.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/GcpSecretManagement.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/GcpSecretManagement.java index 0b9beed..e0bb15b 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/GcpSecretManagement.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/GcpSecretManagement.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; +package cloud.graal.gdk.feature.service.secretmanagement; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.gcp.secretsmanager.GoogleSecretManager; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP secret management service feature. @@ -42,25 +42,25 @@ public GcpSecretManagement(GoogleSecretManager googleSecretManager) { } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(googleSecretManager, GoogleSecretManager.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO move this to base class so it's applied for all clouds - will need to update AWS and OCI guides generatorContext.getTestBootstrapConfiguration().addNested("micronaut.config-client.enabled", false); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-secretmanagement"; + return "gdk-gcp-secretmanagement"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/NonCloudSecretManagement.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/NonCloudSecretManagement.java similarity index 75% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/NonCloudSecretManagement.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/NonCloudSecretManagement.java index 94679d5..75a6243 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/NonCloudSecretManagement.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/NonCloudSecretManagement.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; +package cloud.graal.gdk.feature.service.secretmanagement; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud secret management service feature. @@ -31,19 +31,19 @@ public class NonCloudSecretManagement extends AbstractSecretManagementFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-secretmanagement"; + return "gdk-secretmanagement"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/OciSecretManagement.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/OciSecretManagement.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/OciSecretManagement.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/OciSecretManagement.java index 2cac797..69e5316 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/OciSecretManagement.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/OciSecretManagement.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.secretmanagement; +package cloud.graal.gdk.feature.service.secretmanagement; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.oraclecloud.OracleCloudVault; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI secret management service feature. @@ -42,24 +42,24 @@ public OciSecretManagement(OracleCloudVault oracleCloudVault) { } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(oracleCloudVault, OracleCloudVault.class); } @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-secretmanagement"; + return "gdk-oci-secretmanagement"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/ClientIdControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/ClientIdControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SdkHttpClientTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SdkHttpClientTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/secretmanagement/template/SecretsManagerClientTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/secretmanagement/template/SecretsManagerClientTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AbstractSecurityFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AbstractSecurityFeature.java similarity index 78% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AbstractSecurityFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AbstractSecurityFeature.java index 6da5df3..235b2a9 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AbstractSecurityFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AbstractSecurityFeature.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.feature.service.security.template.AuthControllerGroovy; -import cloud.graal.gcn.feature.service.security.template.AuthControllerJava; -import cloud.graal.gcn.feature.service.security.template.AuthControllerKotlin; -import cloud.graal.gcn.feature.service.security.template.AuthHtml; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk.feature.service.security; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.feature.service.security.template.AuthControllerGroovy; +import cloud.graal.gdk.feature.service.security.template.AuthControllerJava; +import cloud.graal.gdk.feature.service.security.template.AuthControllerKotlin; +import cloud.graal.gdk.feature.service.security.template.AuthHtml; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.security.SecurityJWT; @@ -30,14 +30,14 @@ import io.micronaut.starter.feature.view.JTE; import io.micronaut.starter.template.RockerTemplate; -import static cloud.graal.gcn.model.GcnService.SECURITY; +import static cloud.graal.gdk.model.GdkService.SECURITY; /** * Base class for security service features. * * @since 1.0.0 */ -public abstract class AbstractSecurityFeature extends AbstractGcnServiceFeature { +public abstract class AbstractSecurityFeature extends AbstractGdkServiceFeature { private final SecurityOAuth2 securityOAuth2; private final SecurityJWT securityJWT; @@ -57,7 +57,7 @@ protected AbstractSecurityFeature(SecurityOAuth2 securityOAuth2, } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { if (generatorContext.generateExampleCode()) { @@ -92,14 +92,14 @@ protected String getAuthHtmlTitle() { } /** - * @return the OpenID app name for the login URI, e.g. "gcn" or "cognito" + * @return the OpenID app name for the login URI, e.g. "gdk" or "cognito" */ protected String getAuthHtmlLogin() { - return "gcn"; + return "gdk"; } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(securityOAuth2, SecurityOAuth2.class); featureContext.addFeature(securityJWT, SecurityJWT.class); @@ -114,11 +114,11 @@ public void processSelectedFeatures(GcnFeatureContext featureContext) { * * @param generatorContext the generator context */ - protected abstract void doApply(GcnGeneratorContext generatorContext); + protected abstract void doApply(GdkGeneratorContext generatorContext); @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return SECURITY; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AwsSecurity.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AwsSecurity.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AwsSecurity.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AwsSecurity.java index 159adeb..e52b3c8 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AwsSecurity.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AwsSecurity.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; +package cloud.graal.gdk.feature.service.security; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.security.SecurityJWT; import io.micronaut.starter.feature.security.SecurityOAuth2; @@ -25,7 +25,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS security service feature. @@ -47,7 +47,7 @@ public AwsSecurity(SecurityOAuth2 securityOAuth2, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //micronaut: // security: // authentication: idtoken @@ -82,13 +82,13 @@ protected String getAuthHtmlLogin() { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-security"; + return "gdk-aws-security"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AzureSecurity.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AzureSecurity.java similarity index 82% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AzureSecurity.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AzureSecurity.java index 6c4cb8d..779f969 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/AzureSecurity.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/AzureSecurity.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; +package cloud.graal.gdk.feature.service.security; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.security.SecurityJWT; import io.micronaut.starter.feature.security.SecurityOAuth2; import io.micronaut.starter.feature.view.JTE; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure security service feature. @@ -45,19 +45,19 @@ public AzureSecurity(SecurityOAuth2 securityOAuth2, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-security"; + return "gdk-azure-security"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/GcpSecurity.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/GcpSecurity.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/GcpSecurity.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/GcpSecurity.java index 03985e7..539140e 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/GcpSecurity.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/GcpSecurity.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; +package cloud.graal.gdk.feature.service.security; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.security.SecurityJWT; import io.micronaut.starter.feature.security.SecurityOAuth2; @@ -25,7 +25,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP security service feature. @@ -47,14 +47,14 @@ public GcpSecurity(SecurityJWT securityJWT, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //micronaut: // security: // authentication: idtoken // oauth2: // clients: - // gcn: + // gdk: // client-id: ${OAUTH_CLIENT_ID:xxx} // client-secret: ${OAUTH_CLIENT_SECRET:yyy} // openid: @@ -65,9 +65,9 @@ protected void doApply(GcnGeneratorContext generatorContext) { // get-allowed: true generatorContext.getConfiguration().addNested(Map.of( "micronaut.security.authentication", "idtoken", - "micronaut.security.oauth2.clients.gcn.client-id", "${OAUTH_CLIENT_ID:xxx}", - "micronaut.security.oauth2.clients.gcn.client-secret", "${OAUTH_CLIENT_SECRET:yyy}", - "micronaut.security.oauth2.clients.gcn.openid.issuer", "https://accounts.google.com", + "micronaut.security.oauth2.clients.gdk.client-id", "${OAUTH_CLIENT_ID:xxx}", + "micronaut.security.oauth2.clients.gdk.client-secret", "${OAUTH_CLIENT_SECRET:yyy}", + "micronaut.security.oauth2.clients.gdk.openid.issuer", "https://accounts.google.com", "micronaut.security.endpoints.logout.enabled", true, "micronaut.security.endpoints.logout.get-allowed", true )); @@ -75,13 +75,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-security"; + return "gdk-gcp-security"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/NonCloudSecurity.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/NonCloudSecurity.java similarity index 90% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/NonCloudSecurity.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/NonCloudSecurity.java index f636248..0b7e462 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/NonCloudSecurity.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/NonCloudSecurity.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; +package cloud.graal.gdk.feature.service.security; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.security.SecurityJWT; import io.micronaut.starter.feature.security.SecurityOAuth2; @@ -25,7 +25,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud security service feature. @@ -47,7 +47,7 @@ public NonCloudSecurity(SecurityOAuth2 securityOAuth2, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //micronaut: // security: @@ -90,13 +90,13 @@ protected String getAuthHtmlLogin() { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-security"; + return "gdk-security"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/OciSecurity.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/OciSecurity.java similarity index 81% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/OciSecurity.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/OciSecurity.java index 4a4bb8a..189fd44 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/OciSecurity.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/OciSecurity.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.security; +package cloud.graal.gdk.feature.service.security; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.security.SecurityJWT; import io.micronaut.starter.feature.security.SecurityOAuth2; @@ -25,7 +25,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI security service feature. @@ -47,14 +47,14 @@ public OciSecurity(SecurityOAuth2 securityOAuth2, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //micronaut: // security: // authentication: idtoken // oauth2: // clients: - // gcn: + // gdk: // client-id: ${OAUTH_CLIENT_ID:xxx} // client-secret: ${OAUTH_CLIENT_SECRET:yyy} // openid: @@ -65,9 +65,9 @@ protected void doApply(GcnGeneratorContext generatorContext) { // get-allowed: true generatorContext.getConfiguration().addNested(Map.of( "micronaut.security.authentication", "idtoken", - "micronaut.security.oauth2.clients.gcn.client-id", "${OAUTH_CLIENT_ID:xxx}", - "micronaut.security.oauth2.clients.gcn.client-secret", "${OAUTH_CLIENT_SECRET:yyy}", - "micronaut.security.oauth2.clients.gcn.openid.issuer", "${OAUTH_ISSUER:zzz}", + "micronaut.security.oauth2.clients.gdk.client-id", "${OAUTH_CLIENT_ID:xxx}", + "micronaut.security.oauth2.clients.gdk.client-secret", "${OAUTH_CLIENT_SECRET:yyy}", + "micronaut.security.oauth2.clients.gdk.openid.issuer", "${OAUTH_ISSUER:zzz}", "micronaut.security.endpoints.logout.enabled", true, "micronaut.security.endpoints.logout.get-allowed", true )); @@ -80,13 +80,13 @@ protected String getAuthControllerNameAttr() { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-security"; + return "gdk-oci-security"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthHtml.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthHtml.rocker.raw similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthHtml.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthHtml.rocker.raw index 6030321..2a79ced 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/security/template/AuthHtml.rocker.raw +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/security/template/AuthHtml.rocker.raw @@ -6,10 +6,10 @@ - GCN - @title + GDK - @title -

GCN - @title

+

GDK - @title

username: ${username}

diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AbstractStreamingFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AbstractStreamingFeature.java similarity index 72% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AbstractStreamingFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AbstractStreamingFeature.java index 72ff959..4c50d30 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AbstractStreamingFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AbstractStreamingFeature.java @@ -13,23 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.messaging.kafka.Kafka; -import static cloud.graal.gcn.model.GcnService.STREAMING; +import static cloud.graal.gdk.model.GdkService.STREAMING; /** * Base class for streaming service features. * * @since 1.0.0 */ -public abstract class AbstractStreamingFeature extends AbstractGcnServiceFeature { +public abstract class AbstractStreamingFeature extends AbstractGdkServiceFeature { private final Kafka kafka; @@ -41,12 +41,12 @@ protected AbstractStreamingFeature(Kafka kafka) { } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { featureContext.addFeature(kafka, Kafka.class); } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { applyForLib(generatorContext, () -> { kafka.apply(generatorContext); @@ -60,11 +60,11 @@ public final void apply(GcnGeneratorContext generatorContext) { * * @param generatorContext the generator context */ - protected abstract void doApply(GcnGeneratorContext generatorContext); + protected abstract void doApply(GdkGeneratorContext generatorContext); @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return STREAMING; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AwsStreaming.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AwsStreaming.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AwsStreaming.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AwsStreaming.java index 44b3e54..096b3cf 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AwsStreaming.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AwsStreaming.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.aws.AwsV2Sdk; @@ -26,7 +26,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS streaming service feature. @@ -55,13 +55,13 @@ public AwsStreaming(Kafka kafka, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(awsV2Sdk, AwsV2Sdk.class); } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(AWS_IAM_AUTH_LIB); @@ -98,13 +98,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-streaming"; + return "gdk-aws-streaming"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AzureStreaming.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AzureStreaming.java similarity index 78% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AzureStreaming.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AzureStreaming.java index 046ae5c..74441f2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/AzureStreaming.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/AzureStreaming.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.messaging.kafka.Kafka; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; +import static cloud.graal.gdk.model.GdkCloud.AZURE; /** * Azure streaming service feature. @@ -39,19 +39,19 @@ public AzureStreaming(Kafka kafka) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override public String getName() { - return "gcn-azure-streaming"; + return "gdk-azure-streaming"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/GcpStreaming.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/GcpStreaming.java similarity index 83% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/GcpStreaming.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/GcpStreaming.java index 8f61e5e..fb7f9bc 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/GcpStreaming.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/GcpStreaming.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.messaging.kafka.Kafka; import jakarta.inject.Singleton; import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP streaming service feature. @@ -41,7 +41,7 @@ public GcpStreaming(Kafka kafka) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //kafka: // retries: 3 @@ -60,13 +60,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-streaming"; + return "gdk-gcp-streaming"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/NonCloudStreaming.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/NonCloudStreaming.java similarity index 79% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/NonCloudStreaming.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/NonCloudStreaming.java index 4766f1c..be45556 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/NonCloudStreaming.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/NonCloudStreaming.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.messaging.kafka.Kafka; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud streaming service feature. @@ -39,19 +39,19 @@ public NonCloudStreaming(Kafka kafka) { } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { generatorContext.getConfiguration().addNested("kafka.enabled", "true"); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-streaming"; + return "gdk-streaming"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/OciStreaming.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/OciStreaming.java similarity index 87% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/OciStreaming.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/OciStreaming.java index bd767c0..920688f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/streaming/OciStreaming.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/streaming/OciStreaming.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.streaming; +package cloud.graal.gdk.feature.service.streaming; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.messaging.kafka.Kafka; import io.micronaut.starter.feature.oraclecloud.OracleCloudSdk; @@ -25,7 +25,7 @@ import java.util.Map; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI streaming service feature. @@ -48,13 +48,13 @@ public OciStreaming(Kafka kafka, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(oracleCloudSdk, OracleCloudSdk.class); } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { //kafka: // bootstrap: @@ -88,13 +88,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-streaming"; + return "gdk-oci-streaming"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AbstractTracingFeature.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AbstractTracingFeature.java similarity index 76% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AbstractTracingFeature.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AbstractTracingFeature.java index 8988860..9f1eb8c 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AbstractTracingFeature.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AbstractTracingFeature.java @@ -13,28 +13,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; - -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.feature.service.tracing.template.InventoryServiceGroovy; -import cloud.graal.gcn.feature.service.tracing.template.InventoryServiceJava; -import cloud.graal.gcn.feature.service.tracing.template.InventoryServiceKotlin; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerGroovy; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerJava; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerKotlin; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerSpec; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerTestGroovyJUnit; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerTestJava; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerTestKotest; -import cloud.graal.gcn.feature.service.tracing.template.StoreControllerTestKotlinJUnit; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseClientGroovy; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseClientJava; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseClientKotlin; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseControllerGroovy; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseControllerJava; -import cloud.graal.gcn.feature.service.tracing.template.WarehouseControllerKotlin; -import cloud.graal.gcn.model.GcnService; +package cloud.graal.gdk.feature.service.tracing; + +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.feature.service.tracing.template.InventoryServiceGroovy; +import cloud.graal.gdk.feature.service.tracing.template.InventoryServiceJava; +import cloud.graal.gdk.feature.service.tracing.template.InventoryServiceKotlin; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerGroovy; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerJava; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerKotlin; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerSpec; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerTestGroovyJUnit; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerTestJava; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerTestKotest; +import cloud.graal.gdk.feature.service.tracing.template.StoreControllerTestKotlinJUnit; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseClientGroovy; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseClientJava; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseClientKotlin; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseControllerGroovy; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseControllerJava; +import cloud.graal.gdk.feature.service.tracing.template.WarehouseControllerKotlin; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.Project; import io.micronaut.starter.feature.opentelemetry.OpenTelemetry; @@ -42,7 +42,7 @@ import io.micronaut.starter.feature.opentelemetry.OpenTelemetryHttp; import io.micronaut.starter.feature.other.HttpClient; -import static cloud.graal.gcn.model.GcnService.TRACING; +import static cloud.graal.gdk.model.GdkService.TRACING; import static io.micronaut.starter.application.ApplicationType.DEFAULT; /** @@ -50,7 +50,7 @@ * * @since 1.0.0 */ -public abstract class AbstractTracingFeature extends AbstractGcnServiceFeature { +public abstract class AbstractTracingFeature extends AbstractGdkServiceFeature { private final OpenTelemetryHttp openTelemetryHttp; private final OpenTelemetry openTelemetry; @@ -73,7 +73,7 @@ protected AbstractTracingFeature(OpenTelemetry openTelemetry, } @Override - public final void apply(GcnGeneratorContext generatorContext) { + public final void apply(GdkGeneratorContext generatorContext) { doApply(generatorContext); @@ -126,7 +126,7 @@ public final void apply(GcnGeneratorContext generatorContext) { @NonNull @Override - public final GcnService getService() { + public final GdkService getService() { return TRACING; } @@ -135,5 +135,5 @@ public final GcnService getService() { * * @param generatorContext the generator context */ - protected abstract void doApply(GcnGeneratorContext generatorContext); + protected abstract void doApply(GdkGeneratorContext generatorContext); } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AwsTracing.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AwsTracing.java similarity index 86% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AwsTracing.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AwsTracing.java index d8fdd43..cffda6d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AwsTracing.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AwsTracing.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; +package cloud.graal.gdk.feature.service.tracing; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.opentelemetry.OpenTelemetry; import io.micronaut.starter.feature.opentelemetry.OpenTelemetryAnnotations; @@ -27,7 +27,7 @@ import io.micronaut.starter.feature.other.HttpClient; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AWS; +import static cloud.graal.gdk.model.GdkCloud.AWS; /** * AWS tracing service feature. @@ -59,26 +59,26 @@ public AwsTracing(OpenTelemetry openTelemetry, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(openTelemetryXray, OpenTelemetryXray.class); featureContext.addFeature(openTelemetryExporterOtlp, OpenTelemetryExporterOtlp.class); } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AWS; } @NonNull @Override public String getName() { - return "gcn-aws-tracing"; + return "gdk-aws-tracing"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AzureTracing.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AzureTracing.java similarity index 63% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AzureTracing.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AzureTracing.java index 046bb2e..cf51830 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/AzureTracing.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/AzureTracing.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; +package cloud.graal.gdk.feature.service.tracing; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.service.AbstractGcnServiceFeature; -import cloud.graal.gcn.model.GcnCloud; -import cloud.graal.gcn.model.GcnService; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.service.AbstractGdkServiceFeature; +import cloud.graal.gdk.model.GdkCloud; +import cloud.graal.gdk.model.GdkService; import io.micronaut.core.annotation.NonNull; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.AZURE; -import static cloud.graal.gcn.model.GcnService.TRACING; +import static cloud.graal.gdk.model.GdkCloud.AZURE; +import static cloud.graal.gdk.model.GdkService.TRACING; /** * Azure tracing service feature. @@ -31,28 +31,28 @@ * @since 1.0.0 */ @Singleton -public class AzureTracing extends AbstractGcnServiceFeature { +public class AzureTracing extends AbstractGdkServiceFeature { @Override - public void apply(GcnGeneratorContext generatorContext) { + public void apply(GdkGeneratorContext generatorContext) { // TODO } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return AZURE; } @NonNull @Override - public GcnService getService() { + public GdkService getService() { return TRACING; } @NonNull @Override public String getName() { - return "gcn-azure-tracing"; + return "gdk-azure-tracing"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/GcpTracing.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/GcpTracing.java similarity index 86% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/GcpTracing.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/GcpTracing.java index feee472..ee9555f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/GcpTracing.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/GcpTracing.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; +package cloud.graal.gdk.feature.service.tracing; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.feature.GcnFeatureContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.feature.GdkFeatureContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.opentelemetry.OpenTelemetry; @@ -27,7 +27,7 @@ import io.micronaut.starter.feature.other.HttpClient; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.GCP; +import static cloud.graal.gdk.model.GdkCloud.GCP; /** * GCP tracing service feature. @@ -61,25 +61,25 @@ public GcpTracing(OpenTelemetry openTelemetry, } @Override - public void processSelectedFeatures(GcnFeatureContext featureContext) { + public void processSelectedFeatures(GdkFeatureContext featureContext) { super.processSelectedFeatures(featureContext); featureContext.addFeature(openTelemetryGoogleCloudTrace, OpenTelemetryGoogleCloudTrace.class); } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(OPENTELEMETRY_SEMCONV); } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return GCP; } @NonNull @Override public String getName() { - return "gcn-gcp-tracing"; + return "gdk-gcp-tracing"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/NonCloudTracing.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/NonCloudTracing.java similarity index 85% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/NonCloudTracing.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/NonCloudTracing.java index e254a25..91189e7 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/NonCloudTracing.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/NonCloudTracing.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; +package cloud.graal.gdk.feature.service.tracing; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.feature.opentelemetry.OpenTelemetry; import io.micronaut.starter.feature.opentelemetry.OpenTelemetryAnnotations; @@ -24,7 +24,7 @@ import io.micronaut.starter.feature.other.HttpClient; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.model.GdkCloud.NONE; /** * Non-cloud tracing service feature. @@ -47,19 +47,19 @@ public NonCloudTracing(OpenTelemetry openTelemetry, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { // no-op } @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return NONE; } @NonNull @Override public String getName() { - return "gcn-tracing"; + return "gdk-tracing"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/OciTracing.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/OciTracing.java similarity index 88% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/OciTracing.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/OciTracing.java index bd93620..6254de0 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/OciTracing.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/OciTracing.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.feature.service.tracing; +package cloud.graal.gdk.feature.service.tracing; -import cloud.graal.gcn.GcnGeneratorContext; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.GdkGeneratorContext; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.build.dependencies.Dependency; import io.micronaut.starter.feature.opentelemetry.OpenTelemetry; @@ -25,7 +25,7 @@ import io.micronaut.starter.feature.other.HttpClient; import jakarta.inject.Singleton; -import static cloud.graal.gcn.model.GcnCloud.OCI; +import static cloud.graal.gdk.model.GdkCloud.OCI; /** * OCI tracing service feature. @@ -54,7 +54,7 @@ public OciTracing(OpenTelemetry openTelemetry, } @Override - protected void doApply(GcnGeneratorContext generatorContext) { + protected void doApply(GdkGeneratorContext generatorContext) { generatorContext.addDependency(ZIPKIN_EXPORTER); @@ -70,13 +70,13 @@ protected void doApply(GcnGeneratorContext generatorContext) { @NonNull @Override - public GcnCloud getCloud() { + public GdkCloud getCloud() { return OCI; } @NonNull @Override public String getName() { - return "gcn-oci-tracing"; + return "gdk-oci-tracing"; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/InventoryServiceKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/InventoryServiceKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerSpec.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerSpec.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerSpec.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerSpec.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestGroovyJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestGroovyJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestGroovyJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestGroovyJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestKotest.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestKotest.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestKotest.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestKotest.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestKotlinJUnit.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestKotlinJUnit.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/StoreControllerTestKotlinJUnit.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/StoreControllerTestKotlinJUnit.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseClientKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseClientKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerGroovy.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerGroovy.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerGroovy.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerGroovy.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerJava.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerJava.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerJava.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerJava.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerKotlin.rocker.raw b/gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerKotlin.rocker.raw similarity index 100% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/feature/service/tracing/template/WarehouseControllerKotlin.rocker.raw rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/feature/service/tracing/template/WarehouseControllerKotlin.rocker.raw diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnCloud.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkCloud.java similarity index 86% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnCloud.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkCloud.java index 7a24da7..899d35a 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnCloud.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkCloud.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.model; +package cloud.graal.gdk.model; import io.micronaut.context.env.Environment; @@ -25,17 +25,17 @@ /** * Represents a cloud vendor. */ -public enum GcnCloud { +public enum GdkCloud { /** - * Amazon. + * Oracle. */ - AWS(Environment.AMAZON_EC2, "-" + Environment.AMAZON_EC2, "AWS", "aws", "AMAZON_EC2"), + OCI(Environment.ORACLE_CLOUD, "-" + Environment.ORACLE_CLOUD, "OCI", "oci", "ORACLE_CLOUD"), /** - * Azure. + * Amazon. */ - AZURE(Environment.AZURE, "-" + Environment.AZURE, "Azure", "azure", "AZURE"), + AWS(Environment.AMAZON_EC2, "-" + Environment.AMAZON_EC2, "AWS", "aws", "AMAZON_EC2"), /** * Google. @@ -43,9 +43,9 @@ public enum GcnCloud { GCP(Environment.GOOGLE_COMPUTE, "-" + Environment.GOOGLE_COMPUTE, "GCP", "gcp", "GOOGLE_COMPUTE"), /** - * Oracle. + * Azure. */ - OCI(Environment.ORACLE_CLOUD, "-" + Environment.ORACLE_CLOUD, "OCI", "oci", "ORACLE_CLOUD"), + AZURE(Environment.AZURE, "-" + Environment.AZURE, "Azure", "azure", "AZURE"), /** * Used when no cloud is selected. @@ -57,9 +57,9 @@ public enum GcnCloud { */ TESTING("testing", "-testing", "TESTING", "testing", ""); - private static final GcnCloud[] SUPPORTED = Arrays.stream(values()) - .filter(c -> c != GcnCloud.TESTING && c != GcnCloud.NONE) - .toArray(GcnCloud[]::new); + private static final GdkCloud[] SUPPORTED = Arrays.stream(values()) + .filter(c -> c != GdkCloud.TESTING && c != GdkCloud.NONE) + .toArray(GdkCloud[]::new); private final String environmentName; private final String environmentNameSuffix; @@ -67,7 +67,7 @@ public enum GcnCloud { private final String moduleName; private final String environmentConstantName; - GcnCloud(String environmentName, + GdkCloud(String environmentName, String environmentNameSuffix, String title, String moduleName, @@ -117,11 +117,11 @@ public String getModuleName() { } /** - * @return the subset of GcnCloud enum values that are currently supported + * @return the subset of GdkCloud enum values that are currently supported */ - public static GcnCloud[] supportedValues() { + public static GdkCloud[] supportedValues() { // return SUPPORTED; // TODO only supporting AWS, GCP, and OCI for now - return new GcnCloud[]{GcnCloud.AWS, GcnCloud.GCP, GcnCloud.OCI}; + return new GdkCloud[]{GdkCloud.AWS, GdkCloud.GCP, GdkCloud.OCI}; } /** @@ -131,7 +131,7 @@ public static class AvailableClouds implements Iterable { @Override public Iterator iterator() { - return Arrays.stream(GcnCloud.supportedValues()).map(GcnCloud::getModuleName).iterator(); + return Arrays.stream(GdkCloud.supportedValues()).map(GdkCloud::getModuleName).iterator(); } } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnProjectType.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkProjectType.java similarity index 84% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnProjectType.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkProjectType.java index 00a611a..7a03a26 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnProjectType.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkProjectType.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.model; +package cloud.graal.gdk.model; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; @@ -21,7 +21,7 @@ /** * Represents a project type. */ -public enum GcnProjectType { +public enum GdkProjectType { /** * An application project. @@ -36,23 +36,18 @@ public enum GcnProjectType { /** * A gateway function project. */ - GATEWAY_FUNCTION(ApplicationType.DEFAULT, "Gateway Function", "create-gateway-function"), - - /** - * A Spring boot application project. - */ - SPRING_BOOT_APPLICATION(ApplicationType.DEFAULT, "Spring Boot Application", "create-spring-boot-app"); + GATEWAY_FUNCTION(ApplicationType.DEFAULT, "Gateway Function", "create-gateway-function"); /** * The default type. */ - public static final GcnProjectType DEFAULT_OPTION = APPLICATION; + public static final GdkProjectType DEFAULT_OPTION = APPLICATION; private final ApplicationType applicationType; private final String title; private final String command; - GcnProjectType(ApplicationType applicationType, + GdkProjectType(ApplicationType applicationType, String title, String command) { this.applicationType = applicationType; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnService.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkService.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnService.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkService.java index af09810..253108f 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/model/GcnService.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/model/GdkService.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.model; +package cloud.graal.gdk.model; import java.util.Arrays; import java.util.Iterator; @@ -21,7 +21,7 @@ /** * Represents a service. */ -public enum GcnService { +public enum GdkService { /** * Database service. @@ -129,25 +129,25 @@ public enum GcnService { "A service used only for testing" ); - private static final GcnService[] SUPPORTED; + private static final GdkService[] SUPPORTED; static { SUPPORTED = Arrays.stream(values()) - .filter(c -> c != GcnService.TESTING) - .toArray(GcnService[]::new); + .filter(c -> c != GdkService.TESTING) + .toArray(GdkService[]::new); } private final String title; private final String description; private final String documentationModuleName; - GcnService(String title, String description) { + GdkService(String title, String description) { this.title = title; this.description = description; this.documentationModuleName = null; } - GcnService(String title, String description, String documentationModuleName) { + GdkService(String title, String description, String documentationModuleName) { this.title = title; this.description = description; this.documentationModuleName = documentationModuleName; @@ -175,9 +175,9 @@ public String getDocumentationModuleName() { } /** - * @return the subset of GcnService enum values that are currently supported + * @return the subset of GdkService enum values that are currently supported */ - public static GcnService[] supportedValues() { + public static GdkService[] supportedValues() { return SUPPORTED; } @@ -188,7 +188,7 @@ public static class AvailableServices implements Iterable { @Override public Iterator iterator() { - return Arrays.stream(GcnService.supportedValues()) + return Arrays.stream(GdkService.supportedValues()) .map(Enum::name) .map(String::toLowerCase) .iterator(); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/BuildGradlePostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/BuildGradlePostProcessor.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/BuildGradlePostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/BuildGradlePostProcessor.java index 19966be..c8e2c9c 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/BuildGradlePostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/BuildGradlePostProcessor.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; -import cloud.graal.gcn.GcnUtils; +import cloud.graal.gdk.GdkUtils; import io.micronaut.core.annotation.NonNull; import io.micronaut.core.util.StringUtils; import io.micronaut.starter.application.ApplicationType; @@ -24,7 +24,7 @@ import java.util.Objects; import java.util.regex.Pattern; -import static cloud.graal.gcn.GcnUtils.BOM_VERSION_SUFFIX; +import static cloud.graal.gdk.GdkUtils.BOM_VERSION_SUFFIX; import static io.micronaut.starter.build.gradle.GradleDsl.GROOVY; /** @@ -33,7 +33,7 @@ * - adds configuration to set the Docker image name to be related to the project, e.g. "demo-oci" * - removes versions from plugin declarations (versions are declared in buildSrc/build.gradle) * as a workaround for this Gradle bug - * - changes "implementation platform(...)" to "micronautBoms(platform(...))" for the GCN BOM + * - changes "implementation platform(...)" to "micronautBoms(platform(...))" for the GDK BOM * - append "-oracle-00001" to version when resolutionStrategy.dependencySubstitution * is added (currently for serde feature dependencies, e.g. serialization-jackson) * - fixes the rendered lib project dependency (`implementation(":lib-reference")` -> `implementation(project(":lib"))`) @@ -95,7 +95,7 @@ public class BuildGradlePostProcessor implements TemplatePostProcessor { private static final Pattern VERSION = Pattern.compile(" version \".+\""); private static final Pattern BOM_PLATFORM_REGEX = Pattern.compile( - "implementation[ (](platform\\(\"cloud\\.graal\\.gcn:gcn-bom:[0-9.\\-]+(-SNAPSHOT)?\"\\))\\)?"); + "implementation[ (](platform\\(\"cloud\\.graal\\.gdk:gdk-bom:[0-9.\\-]+(-SNAPSHOT)?\"\\))\\)?"); private static final String BOM_ENFORCED_PLATFORM_REPLACEMENT = "micronautBoms($1)"; @@ -149,8 +149,8 @@ private String updateVersion(@NonNull String buildGradle) { } private String replaceMavenCentral(@NonNull String buildGradle) { - if (!StringUtils.isEmpty(GcnUtils.getenv("MIRROR_URL"))) { - buildGradle = buildGradle.replace("mavenCentral()", "maven { url \"%s\" }".formatted(GcnUtils.getenv("MIRROR_URL"))); + if (!StringUtils.isEmpty(GdkUtils.getenv("MIRROR_URL"))) { + buildGradle = buildGradle.replace("mavenCentral()", "maven { url \"%s\" }".formatted(GdkUtils.getenv("MIRROR_URL"))); } return buildGradle; } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnPropertiesTemplate.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkPropertiesTemplate.java similarity index 93% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnPropertiesTemplate.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkPropertiesTemplate.java index bba9417..0a297e2 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnPropertiesTemplate.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkPropertiesTemplate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; import io.micronaut.starter.template.DefaultTemplate; @@ -24,17 +24,17 @@ import java.util.Properties; import java.util.stream.Stream; -public class GcnPropertiesTemplate extends DefaultTemplate { +public class GdkPropertiesTemplate extends DefaultTemplate { private final Properties properties; private final Map originalConfig; - public GcnPropertiesTemplate(String path, Map config) { + public GdkPropertiesTemplate(String path, Map config) { this(DEFAULT_MODULE, path, config); } - public GcnPropertiesTemplate(String module, String path, Map config) { + public GdkPropertiesTemplate(String module, String path, Map config) { super(module, path); originalConfig = config; this.properties = transform(new Properties(), "", config); diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnTemplateRenderer.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkTemplateRenderer.java similarity index 91% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnTemplateRenderer.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkTemplateRenderer.java index a96e11a..1fa5006 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnTemplateRenderer.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkTemplateRenderer.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.starter.application.Project; import io.micronaut.starter.io.OutputHandler; import io.micronaut.starter.template.DefaultTemplateRenderer; @@ -32,8 +32,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; -import static cloud.graal.gcn.model.GcnCloud.NONE; +import static cloud.graal.gdk.GdkUtils.LIB_MODULE; +import static cloud.graal.gdk.model.GdkCloud.NONE; import static io.micronaut.starter.template.Template.ROOT; import static java.nio.charset.StandardCharsets.UTF_8; @@ -42,22 +42,22 @@ * * @since 1.0.0 */ -public class GcnTemplateRenderer extends DefaultTemplateRenderer { +public class GdkTemplateRenderer extends DefaultTemplateRenderer { private final Map> postProcessors; private final Map> regexPostProcessors; private final Map> replacementsByModule = new HashMap<>(); - public GcnTemplateRenderer(Project libProject, + public GdkTemplateRenderer(Project libProject, OutputHandler outputHandler, Map> postProcessors, Map> regexPostProcessors, - Set clouds) { + Set clouds) { super(Collections.emptyMap(), outputHandler); this.postProcessors = postProcessors; this.regexPostProcessors = regexPostProcessors; - for (GcnCloud cloud : clouds) { + for (GdkCloud cloud : clouds) { if (cloud == NONE) { continue; } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnYamlTemplate.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkYamlTemplate.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnYamlTemplate.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkYamlTemplate.java index 6a8ce8d..fc8be17 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/GcnYamlTemplate.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/GdkYamlTemplate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; import io.micronaut.starter.template.DefaultTemplate; @@ -26,7 +26,7 @@ import java.util.Map; import java.util.regex.Pattern; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; +import static cloud.graal.gdk.GdkUtils.LIB_MODULE; /** * Replaces io.micronaut.starter.template.YamlTemplate to avoid using SnakeYAML @@ -34,7 +34,7 @@ * * @since 1.0.0 */ -public class GcnYamlTemplate extends DefaultTemplate { +public class GdkYamlTemplate extends DefaultTemplate { private static final Pattern DOT_PATTERN = Pattern.compile("\\."); private static final String INDENT = " "; @@ -43,11 +43,11 @@ public class GcnYamlTemplate extends DefaultTemplate { private final Map config; private final Map originalConfig; - public GcnYamlTemplate(String path, Map config) { + public GdkYamlTemplate(String path, Map config) { this(LIB_MODULE, path, config); } - public GcnYamlTemplate(String module, String path, Map config) { + public GdkYamlTemplate(String module, String path, Map config) { super(module, path); this.originalConfig = config; this.config = transform(config); @@ -229,7 +229,7 @@ private String unindent(String s) { @Override public String toString() { - return "GcnYamlTemplate{" + + return "GdkYamlTemplate{" + "config=" + getConfig() + "originalConfig=" + originalConfig + ", path='" + path + '\'' + diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/LogbackXmlPostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/LogbackXmlPostProcessor.java similarity index 97% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/LogbackXmlPostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/LogbackXmlPostProcessor.java index be7faf6..c221830 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/LogbackXmlPostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/LogbackXmlPostProcessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; import io.micronaut.core.annotation.NonNull; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPlatformPostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPlatformPostProcessor.java similarity index 89% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPlatformPostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPlatformPostProcessor.java index f1d50fa..c11465d 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPlatformPostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPlatformPostProcessor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; -import cloud.graal.gcn.GcnUtils; +import cloud.graal.gdk.GdkUtils; import io.micronaut.core.annotation.NonNull; import java.util.regex.Pattern; -import static cloud.graal.gcn.GcnUtils.BOM_VERSION_SUFFIX; +import static cloud.graal.gdk.GdkUtils.BOM_VERSION_SUFFIX; /** * Fixes parent element in platform independent pom.xml and multi-module root pom.xml. @@ -39,7 +39,7 @@ public String process(@NonNull String pom) { String top = pom.substring(0, start); String bottom = pom.substring(end); String parent = pom.substring(start, end); - parent = VERSION_PATTERN.matcher(parent).replaceAll(String.format("%s", GcnUtils.getMicronautVersion() + BOM_VERSION_SUFFIX)); + parent = VERSION_PATTERN.matcher(parent).replaceAll(String.format("%s", GdkUtils.getMicronautVersion() + BOM_VERSION_SUFFIX)); return top + parent + bottom; } } diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPomPostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPomPostProcessor.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPomPostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPomPostProcessor.java index 9e489ad..d5ea674 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/MavenPomPostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/MavenPomPostProcessor.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; -import cloud.graal.gcn.model.GcnCloud; +import cloud.graal.gdk.model.GdkCloud; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.application.ApplicationType; @@ -23,8 +23,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static cloud.graal.gcn.GcnUtils.BOM_VERSION_SUFFIX; -import static cloud.graal.gcn.GcnUtils.LIB_MODULE; +import static cloud.graal.gdk.GdkUtils.BOM_VERSION_SUFFIX; +import static cloud.graal.gdk.GdkUtils.LIB_MODULE; /** * Fixes a few issues in Maven pom.xml files: @@ -70,13 +70,13 @@ public class MavenPomPostProcessor implements TemplatePostProcessor { private final boolean libModule; private final boolean isGatewayFunction; private final ApplicationType applicationType; - private final GcnCloud cloud; + private final GdkCloud cloud; public MavenPomPostProcessor(String artifactId, String groupId, ApplicationType applicationType, boolean isGatewayFunction, - GcnCloud cloud, + GdkCloud cloud, boolean libModule) { this.artifactId = artifactId; this.groupId = groupId; @@ -89,7 +89,7 @@ public MavenPomPostProcessor(String artifactId, @NonNull @Override public String process(@NonNull String pom) { - if (libModule || cloud != GcnCloud.NONE) { + if (libModule || cloud != GdkCloud.NONE) { pom = fixParent(pom); pom = fixVersion(pom); } @@ -106,7 +106,7 @@ public String process(@NonNull String pom) { pom = addDefaultDockerImageName(pom); } } - if (libModule || cloud != GcnCloud.NONE) { + if (libModule || cloud != GdkCloud.NONE) { pom = fixName(pom); } @@ -116,7 +116,7 @@ public String process(@NonNull String pom) { private String fixSourceDirectory(@NonNull String pom) { if (libModule) { pom = pom.replaceFirst(" src/main/jte", " lib/src/main/jte"); - } else if (cloud != GcnCloud.NONE) { + } else if (cloud != GdkCloud.NONE) { pom = pom.replaceFirst(" src/main/jte", " %s/src/main/jte".formatted(this.cloud.getModuleName())); } return pom; diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/ProcessedTemplate.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/ProcessedTemplate.java similarity index 95% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/ProcessedTemplate.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/ProcessedTemplate.java index 3c23e06..9c095fd 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/ProcessedTemplate.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/ProcessedTemplate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; import io.micronaut.core.annotation.NonNull; import io.micronaut.starter.template.Template; @@ -24,7 +24,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; /** - * Used in GcnTemplateRenderer; replaces the original template to write the + * Used in GdkTemplateRenderer; replaces the original template to write the * processed output from one or more TemplatePostProcessors. * * @since 1.0.0 diff --git a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/TemplatePostProcessor.java b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/TemplatePostProcessor.java similarity index 96% rename from gcn/gcn-core/src/main/java/cloud/graal/gcn/template/TemplatePostProcessor.java rename to gdk/gdk-core/src/main/java/cloud/graal/gdk/template/TemplatePostProcessor.java index afd9569..98080ce 100644 --- a/gcn/gcn-core/src/main/java/cloud/graal/gcn/template/TemplatePostProcessor.java +++ b/gdk/gdk-core/src/main/java/cloud/graal/gdk/template/TemplatePostProcessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package cloud.graal.gcn.template; +package cloud.graal.gdk.template; import io.micronaut.core.annotation.NonNull; diff --git a/gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-1.0.pom b/gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-1.0.pom similarity index 100% rename from gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-1.0.pom rename to gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-1.0.pom diff --git a/gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-2.0.pom b/gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-2.0.pom similarity index 100% rename from gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-2.0.pom rename to gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-2.0.pom diff --git a/gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-2.1.pom b/gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-2.1.pom similarity index 100% rename from gcn/gcn-core/src/main/resources/gcn_bom/gcn-bom-2.1.pom rename to gdk/gdk-core/src/main/resources/gcn_bom/gcn-bom-2.1.pom diff --git a/gcn/gradle.properties b/gdk/gradle.properties similarity index 66% rename from gcn/gradle.properties rename to gdk/gradle.properties index 51771d9..d16940b 100644 --- a/gcn/gradle.properties +++ b/gdk/gradle.properties @@ -1,3 +1,3 @@ org.gradle.parallel=true org.gradle.caching=true -version=4.3.7.2 +version=4.5.0.1-SNAPSHOT diff --git a/gcn/gradle/libs.versions.toml b/gdk/gradle/libs.versions.toml similarity index 92% rename from gcn/gradle/libs.versions.toml rename to gdk/gradle/libs.versions.toml index f95e143..69c576b 100644 --- a/gcn/gradle/libs.versions.toml +++ b/gdk/gradle/libs.versions.toml @@ -15,22 +15,22 @@ # [versions] -bouncycastle = '1.77' +bouncycastle = '1.78.1' docker = '3.3.6' -groovy = '4.0.20' # TODO keep in sync when changing Micronaut version +groovy = '4.0.21' # TODO keep in sync when changing Micronaut version jansi = '2.4.1' -jline = '3.25.1' -logback = "1.5.3" -micronaut-plugins = '4.3.6' -micronaut-starter = '4.3.7' +jline = '3.26.2' +logback = "1.5.6" +micronaut-plugins = '4.4.0' +micronaut-starter = '4.5.0' reflections = '0.10.2' rocker = '1.4.0' shadow = '8.1.1' -slf4j = '2.0.12' +slf4j = '2.0.13' spotless = '6.25.0' test-logger = '4.0.0' tomlj = "1.1.1" -micronaut-internal-build = "6.7.0" +micronaut-internal-build = "6.7.1" [libraries] bouncycastle-bcpkix = { module = 'org.bouncycastle:bcpkix-jdk18on', version.ref = 'bouncycastle' } diff --git a/gcn/gradle/templates.versions.toml b/gdk/gradle/templates.versions.toml similarity index 85% rename from gcn/gradle/templates.versions.toml rename to gdk/gradle/templates.versions.toml index 6a6c63c..ed142c1 100644 --- a/gcn/gradle/templates.versions.toml +++ b/gdk/gradle/templates.versions.toml @@ -15,49 +15,49 @@ # [versions] -micronaut-platform = "4.3.7" -micronaut-micrometer = "5.4.0-oracle-00001" -micronaut-tracing = "6.4.1-oracle-00001" -micronaut-serialization = "2.8.2-oracle-00001" -micronaut-kafka = "5.3.0-oracle-00001" -micronaut-flyway = "7.1.0-oracle-00001" -micronaut-discovery = "4.2.0-oracle-00001" -micronaut-oraclecloud = "3.7.2-oracle-00001" -micronaut-openapi = "6.6.3-oracle-00001" -micronaut-cache = "4.2.2-oracle-00001" -micronaut-mongo = "5.2.0-oracle-00001" -micronaut-security = "4.6.10-oracle-00001" -micronaut-data = "4.6.0-oracle-00001" -micronaut-liquibase = "6.2.0-oracle-00001" -micronaut-object-storage = "2.3.0-oracle-00001" -micronaut-email = "2.4.0-oracle-00001" -micronaut-sql = "5.5.1-oracle-00001" -micronaut-core = "4.3.13-oracle-00001" -micronaut-reactor = "3.2.1-oracle-00001" -micronaut-jaxrs = "4.3.0-oracle-00001" -micronaut-picocli = "5.2.0-oracle-00001" -micronaut-kubernetes = "6.0.0-oracle-00001" -micronaut-validation = "4.4.4-oracle-00001" -micronaut-views = "5.1.0-oracle-00001" -micronaut-gradle-plugin = "4.3.6" -apache-commons-compress = "1.26.1" -bouncycastle = "1.77" +micronaut-platform = "4.5.0" +micronaut-micrometer = "5.7.0-oracle-00001" +micronaut-tracing = "6.6.0-oracle-00001" +micronaut-serialization = "2.10.1-oracle-00001" +micronaut-kafka = "5.5.0-oracle-00001" +micronaut-flyway = "7.3.0-oracle-00001" +micronaut-discovery = "4.3.0-oracle-00001" +micronaut-oraclecloud = "4.1.0-oracle-00001" +micronaut-openapi = "6.11.0-oracle-00001" +micronaut-cache = "4.3.0-oracle-00001" +micronaut-mongo = "5.3.0-oracle-00001" +micronaut-security = "4.9.0-oracle-00001" +micronaut-data = "4.8.1-oracle-00001" +micronaut-liquibase = "6.4.0-oracle-00001" +micronaut-object-storage = "2.5.0-oracle-00001" +micronaut-email = "2.5.0-oracle-00001" +micronaut-sql = "5.7.0-oracle-00001" +micronaut-core = "4.5.3-oracle-00001" +micronaut-reactor = "3.4.0-oracle-00001" +micronaut-jaxrs = "4.5.0-oracle-00001" +micronaut-picocli = "5.4.0-oracle-00001" +micronaut-kubernetes = "6.1.0-oracle-00001" +micronaut-validation = "4.6.0-oracle-00001" +micronaut-views = "5.4.0-oracle-00001" +micronaut-gradle-plugin = "4.4.0" +apache-commons-compress = "1.26.2" +bouncycastle = "1.78.1" kotlin = "1.8.22" -logback = "1.5.3" +logback = "1.5.6" guava = "32.1.3-jre" opentelemetry-semconv = "1.30.1-alpha" -google-cloud-logging = "0.131.4-alpha" -aws-msk-iam-auth = "2.0.3" -micronaut-session = "4.2.0-oracle-00001" -micronaut-maven-plugin = "4.5.2" -micronaut-maven-test-resources-plugin = "2.4.0" -test-containers-oracle-xe = "1.19.7" -spring-boot-gradle-plugin = "3.2.4" -io-spring-gradle-dependency-management-plugin = "1.1.4" -org-springframework-boot-spring-boot-starter-parent = "3.2.4" +google-cloud-logging = "0.131.8-alpha" +aws-msk-iam-auth = "2.1.1" +micronaut-session = "4.3.0-oracle-00001" +micronaut-maven-plugin = "4.6.1" +micronaut-maven-test-resources-plugin = "2.5.2" +test-containers-oracle-xe = "1.19.8" +spring-boot-gradle-plugin = "3.3.0" +io-spring-gradle-dependency-management-plugin = "1.1.5" +org-springframework-boot-spring-boot-starter-parent = "3.3.0" okhttp = "4.12.0" -gax-grpc = "2.41.0" -gax = "2.41.0" +gax-grpc = "2.49.0" +gax = "2.49.0" [libraries] io-micronaut-discovery-micronaut-discovery-client = { module = 'io.micronaut.discovery:micronaut-discovery-client', version.ref = 'micronaut-discovery'} @@ -99,11 +99,12 @@ io-micronaut-micronaut-session = { module = 'io.micronaut.session:micronaut-sess io-micronaut-micronaut-websocket = { module = 'io.micronaut:micronaut-websocket', version.ref = 'micronaut-core'} io-micronaut-cache-micronaut-cache-core = { module = 'io.micronaut.cache:micronaut-cache-core', version.ref = 'micronaut-cache'} io-micronaut-data-micronaut-data-bom = { module = 'io.micronaut.data:micronaut-data-bom', version.ref = 'micronaut-data'} +io-micronaut-email-micronaut-email = { module = 'io.micronaut.email:micronaut-email', version.ref = 'micronaut-email'} io-micronaut-email-micronaut-email-javamail = { module = 'io.micronaut.email:micronaut-email-javamail', version.ref = 'micronaut-email'} io-micronaut-email-micronaut-email-javamail-composer = { module = 'io.micronaut.email:micronaut-email-javamail-composer', version.ref = 'micronaut-email'} io-micronaut-flyway-micronaut-flyway-bom = { module = 'io.micronaut.flyway:micronaut-flyway-bom', version.ref = 'micronaut-flyway'} io-micronaut-jaxrs-micronaut-jaxrs-bom = { module = 'io.micronaut.jaxrs:micronaut-jaxrs-bom', version.ref = 'micronaut-jaxrs'} -io-micronaut-kafka-micronaut-kafka = { module = 'io.micronaut.kafka:micronaut-kafka', version.ref = 'micronaut-kafka'} +io-micronaut-kafka-micronaut-kafka-bom = { module = 'io.micronaut.kafka:micronaut-kafka-bom', version.ref = 'micronaut-kafka'} io-micronaut-kubernetes-micronaut-kubernetes-bom = { module = 'io.micronaut.kubernetes:micronaut-kubernetes-bom', version.ref = 'micronaut-kubernetes'} io-micronaut-liquibase-micronaut-liquibase-bom = { module = 'io.micronaut.liquibase:micronaut-liquibase-bom', version.ref = 'micronaut-liquibase'} io-micronaut-micrometer-micronaut-micrometer-core = { module = 'io.micronaut.micrometer:micronaut-micrometer-core', version.ref = 'micronaut-micrometer'} @@ -128,6 +129,10 @@ io-micronaut-views-micronaut-views-jte = { module = 'io.micronaut.views:micronau org-apache-commons-commons-compress = { module = 'org.apache.commons:commons-compress', version.ref = 'apache-commons-compress'} org-bouncycastle-bcprov-jdk18on = { module = 'org.bouncycastle:bcprov-jdk18on', version.ref = 'bouncycastle'} org-bouncycastle-bcpkix-jdk18on = { module = 'org.bouncycastle:bcpkix-jdk18on', version.ref = 'bouncycastle'} +org-bouncycastle-bcutil-jdk18on = { module = 'org.bouncycastle:bcutil-jdk18on', version.ref = 'bouncycastle'} +org-bouncycastle-bcpkix-jdk15to18 = { module = 'org.bouncycastle:bcpkix-jdk15to18', version.ref = 'bouncycastle'} +org-bouncycastle-bcprov-jdk15to18 = { module = 'org.bouncycastle:bcprov-jdk15to18', version.ref = 'bouncycastle'} +org-bouncycastle-bcutil-jdk15to18 = { module = 'org.bouncycastle:bcutil-jdk15to18', version.ref = 'bouncycastle'} org-jetbrains-kotlin-kotlin-annotation-processing-embeddable = { module = 'org.jetbrains.kotlin:kotlin-annotation-processing-embeddable', version.ref = 'kotlin'} org-jetbrains-kotlin-kotlin-compiler-embeddable = { module = 'org.jetbrains.kotlin:kotlin-compiler-embeddable', version.ref = 'kotlin'} org-jetbrains-kotlin-kotlin-reflect = { module = 'org.jetbrains.kotlin:kotlin-reflect', version.ref = 'kotlin'} @@ -145,7 +150,7 @@ com-squareup-okhttp3-logging-interceptor = { module = 'com.squareup.okhttp3:logg com-google-api-gax-grpc = { module = 'com.google.api:gax-grpc', version.ref = 'gax-grpc'} com-google-api-gax = { module = 'com.google.api:gax', version.ref = 'gax'} -# plugins that will be exluded from bom file (exclude-) prefix means don't add it into gcn-bom +# plugins that will be exluded from bom file (exclude-) prefix means don't add it into gdk-bom exclude-micronaut-crac-plugin = { module = "io.micronaut.gradle:micronaut-crac-plugin", version.ref = "micronaut-gradle-plugin" } exclude-micronaut-gradle-plugin = { module = "io.micronaut.gradle:micronaut-gradle-plugin", version.ref = "micronaut-gradle-plugin" } exclude-micronaut-test-resources-plugin = { module = "io.micronaut.gradle:micronaut-test-resources-plugin", version.ref = "micronaut-gradle-plugin" } diff --git a/gdk/gradle/wrapper/gradle-wrapper.jar b/gdk/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/gcn/settings.gradle b/gdk/settings.gradle similarity index 95% rename from gcn/settings.gradle rename to gdk/settings.gradle index 63e5392..fd7406e 100644 --- a/gcn/settings.gradle +++ b/gdk/settings.gradle @@ -14,10 +14,10 @@ * limitations under the License. */ -rootProject.name = 'gcn' +rootProject.name = 'gdk' file('.').eachDir { - if (it.name.startsWith('gcn-')) { + if (it.name.startsWith('gdk-')) { include it.name } }