diff --git a/generators/kotlin/generator.js b/generators/kotlin/generator.js index 42b8411ff..98b75a3ee 100644 --- a/generators/kotlin/generator.js +++ b/generators/kotlin/generator.js @@ -122,6 +122,18 @@ export default class extends BaseApplicationGenerator { }); } } + + if (application.enableSwaggerCodegen) { + this.editFile( + 'build.gradle', + content => `${content} +tasks.withType(org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask.class).configureEach { + dependsOn 'openApiGenerate' +} +`, + ); + this.editFile('gradle/swagger.gradle', content => content.replace(', useSpringBoot3: "true"', '')); + } } }, async customizeMaven({ application, source }) { @@ -317,6 +329,10 @@ export default class extends BaseApplicationGenerator { }, ], }); + + if (application.enableSwaggerCodegen) { + this.editFile('pom.xml', content => content.replace('true', '')); + } } }, }); diff --git a/generators/ktlint/generator.js b/generators/ktlint/generator.js index f228ca59f..6cfb3c787 100644 --- a/generators/ktlint/generator.js +++ b/generators/ktlint/generator.js @@ -135,6 +135,17 @@ export default class extends BaseApplicationGenerator { addToBuild: true, }, ]); + + if (application.enableSwaggerCodegen) { + this.editFile( + 'build.gradle', + content => `${content} +tasks.named('runKtlintFormatOverMainSourceSet').configure { + dependsOn 'openApiGenerate' +} +`, + ); + } } else { source.addJavaDefinition({ versions: [{ name: 'ktlint-maven-plugin', version: application.javaDependencies['ktlint-maven'] }], diff --git a/generators/ktlint/templates/gradle/ktlint.gradle.ejs b/generators/ktlint/templates/gradle/ktlint.gradle.ejs index 617d78f5d..579e93a62 100644 --- a/generators/ktlint/templates/gradle/ktlint.gradle.ejs +++ b/generators/ktlint/templates/gradle/ktlint.gradle.ejs @@ -19,6 +19,10 @@ ktlint { //See more options: https://github.com/JLLeitschuh/ktlint-gradle#configuration ignoreFailures = true + filter { + include("src/main/kotlin/**") + include("src/test/kotlin/**") + } } // Reformat code before compilation diff --git a/generators/migration/generator.js b/generators/migration/generator.js index aac3b8180..ba432d475 100644 --- a/generators/migration/generator.js +++ b/generators/migration/generator.js @@ -4,18 +4,11 @@ import { passthrough } from '@yeoman/transform'; export default class extends BaseApplicationGenerator { get [BaseApplicationGenerator.PREPARING]() { return this.asPreparingTaskGroup({ - async source({ application, source }) { + async source({ source }) { this.delayTask(() => { - source.addAllowBlockingCallsInside = () => undefined; source.addApplicationPropertiesContent = () => undefined; source.addIntegrationTestAnnotation = () => undefined; source.addTestSpringFactory = () => undefined; - - if (application.buildToolGradle) { - // Add a noop needles for spring-gateway generator - source.addJavaDefinition = () => {}; - source.addJavaDependencies = () => {}; - } }); }, }); @@ -23,27 +16,57 @@ export default class extends BaseApplicationGenerator { get [BaseApplicationGenerator.DEFAULT]() { return this.asDefaultTaskGroup({ - async defaultTask({ application }) { - if (application.buildToolGradle) { - this.queueTransformStream( - { - name: 'updating gradle files', - filter: file => file.path.endsWith('.gradle'), - refresh: false, - }, - passthrough(file => { - file.contents = Buffer.from( - file.contents - .toString() - .replaceAll(/reportOn (.*)/g, 'testResults.from($1)') - .replaceAll('destinationDir =', 'destinationDirectory =') - .replaceAll('html.enabled =', 'html.required =') - .replaceAll('xml.enabled =', 'xml.required =') - .replaceAll('csv.enabled =', 'csv.required ='), - ); - }), - ); - } + async defaultTask() { + this.queueTransformStream( + { + name: 'updating build files', + filter: file => file.path.endsWith('.gradle') || file.path.endsWith('pom.xml'), + refresh: false, + }, + passthrough(file => { + file.contents = Buffer.from( + file.contents + .toString() + .replace('micrometer-registry-prometheus-simpleclient', 'micrometer-registry-prometheus') + .replaceAll('jakarta.', 'javax.') + .replaceAll('spring-cloud-stream-test-binder', 'spring-cloud-stream-test-support') + .replaceAll('org.hibernate.orm', 'org.hibernate') + .replaceAll('mongock-springboot-v3', 'mongock-springboot') + .replaceAll('mongodb-springdata-v4-driver', 'mongodb-springdata-v3-driver') + .replaceAll('jackson-datatype-hibernate6', 'jackson-datatype-hibernate5') + .replaceAll('org.apache.cassandra', 'com.datastax.oss') + // Gradle only + .replace( + 'importMappings = [Problem:"org.zalando.problem.Problem"]', + 'importMappings = [Problem:"org.springframework.http.ProblemDetail"]', + ) + .replace('hibernate-jcache"', 'hibernate-jcache:${hibernateVersion}"') + .replace( + "excludes = ['time']", + `properties { + time = null + }`, + ) + // Maven only + .replaceAll('jakarta', '') + .replace( + 'false', + 'Problem=org.zalando.problem.Problemfalse', + ), + ); + }), + ); + + this.queueTransformStream( + { + name: 'updating log files', + filter: file => file.path.endsWith('logback-spring.xml') || file.path.endsWith('logback.xml'), + refresh: false, + }, + passthrough(file => { + file.contents = Buffer.from(file.contents.toString().replaceAll('jakarta.', 'javax.')); + }), + ); }, }); } @@ -58,31 +81,6 @@ export default class extends BaseApplicationGenerator { scriptsStorage.delete('pree2e:headless'); } }, - async postWritingTemplateTask({ application }) { - this.editFile('src/main/resources/logback-spring.xml', contents => contents.replaceAll('jakarta.', 'javax.')); - this.editFile('src/test/resources/logback.xml', contents => contents.replaceAll('jakarta.', 'javax.')); - - if (application.buildToolGradle) { - // JHipster 8 have needles fixed - this.editFile('build.gradle', contents => contents.replaceAll('//jhipster', '// jhipster')); - if (application.databaseTypeSql) { - const { javaDependencies } = application; - this.editFile('build.gradle', contents => - contents.replace( - '\nconfigurations {', - '\nconfigurations {\n liquibaseRuntime.extendsFrom sourceSets.main.compileClasspath\n', - ), - ); - this.editFile('gradle.properties', contents => - contents - .replace(/liquibasePluginVersion=(.*)/, 'liquibasePluginVersion=2.2.2') - .replace(/(checkstyleVersion)=(.*)/, `$1=${javaDependencies.checkstyle}`) - .replace(/(noHttpCheckstyleVersion)=(.*)/, `$1=${javaDependencies['nohttp-checkstyle']}`), - ); - } - this.editFile('settings.gradle', contents => contents.replaceAll('//jhipster', '// jhipster')); - } - }, }); } diff --git a/generators/spring-boot/__snapshots__/files.spec.js.snap b/generators/spring-boot/__snapshots__/files.spec.js.snap deleted file mode 100644 index b4a669dae..000000000 --- a/generators/spring-boot/__snapshots__/files.spec.js.snap +++ /dev/null @@ -1,1846 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`JHipster spring-boot generator > exported files > should match snapshot 1`] = ` -{ - "docker": [ - { - "path": "src/main/docker/", - "templates": [ - "app.yml", - "jhipster-control-center.yml", - "sonar.yml", - "monitoring.yml", - "prometheus/prometheus.yml", - "grafana/provisioning/dashboards/dashboard.yml", - "grafana/provisioning/dashboards/JVM.json", - "grafana/provisioning/datasources/datasource.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "hazelcast-management-center.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "memcached.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "redis.yml", - "redis-cluster.yml", - "redis/Redis-Cluster.Dockerfile", - "redis/connectRedisCluster.sh", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "elasticsearch.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "kafka.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - { - "file": "config/README.md", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "consul.yml", - "config/git2consul.json", - { - "file": "config/consul-config/application.yml", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "jhipster-registry.yml", - { - "file": "config/docker-config/application.yml", - "renameTo": [Function], - }, - { - "file": "config/localhost-config/application.yml", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "swagger-editor.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "keycloak.yml", - { - "file": "config/realm-config/jhipster-realm.json", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "zipkin.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "mongodb.yml", - "mongodb-cluster.yml", - "mongodb/MongoDB.Dockerfile", - "mongodb/scripts/init_replicaset.js", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "neo4j.yml", - ], - }, - { - "condition": [Function], - "path": "src/main/docker/", - "templates": [ - "cassandra.yml", - "cassandra-cluster.yml", - "cassandra-migration.yml", - "cassandra/Cassandra-Migration.Dockerfile", - "cassandra/scripts/autoMigrate.sh", - "cassandra/scripts/execute-cql.sh", - ], - }, - ], - "jib": [ - { - "path": "src/main/docker/jib/", - "templates": [ - "entrypoint.sh", - ], - }, - ], - "packageJson": [ - { - "condition": [Function], - "path": undefined, - "templates": [ - "package.json", - ], - }, - ], - "serverBuild": [ - { - "path": undefined, - "templates": [ - { - "file": "checkstyle.xml", - }, - { - "file": "devcontainer/devcontainer.json", - "renameTo": [Function], - }, - { - "file": "devcontainer/Dockerfile", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": undefined, - "templates": [ - "build.gradle", - "settings.gradle", - "gradle.properties", - "gradle/sonar.gradle", - "gradle/docker.gradle", - { - "file": "gradle/profile_dev.gradle", - }, - { - "file": "gradle/profile_prod.gradle", - }, - "gradle/war.gradle", - "gradle/zipkin.gradle", - { - "file": "gradlew", - "method": "copy", - "noEjs": true, - }, - { - "file": "gradlew.bat", - "method": "copy", - "noEjs": true, - }, - { - "file": "gradle/wrapper/gradle-wrapper.jar", - "method": "copy", - "noEjs": true, - }, - "gradle/wrapper/gradle-wrapper.properties", - ], - }, - { - "condition": [Function], - "path": undefined, - "templates": [ - "gradle/swagger.gradle", - ], - }, - { - "condition": [Function], - "path": undefined, - "templates": [ - { - "file": "mvnw", - "method": "copy", - "noEjs": true, - }, - { - "file": "mvnw.cmd", - "method": "copy", - "noEjs": true, - }, - { - "file": ".mvn/jvm.config", - "method": "copy", - "noEjs": true, - }, - { - "file": ".mvn/wrapper/maven-wrapper.jar", - "method": "copy", - "noEjs": true, - }, - { - "file": ".mvn/wrapper/maven-wrapper.properties", - "method": "copy", - "noEjs": true, - }, - { - "file": "pom.xml", - }, - ], - }, - { - "condition": [Function], - "path": undefined, - "templates": [ - { - "file": "npmw", - "method": "copy", - "noEjs": true, - }, - { - "file": "npmw.cmd", - "method": "copy", - "noEjs": true, - }, - ], - }, - { - "condition": [Function], - "templates": [ - { - "file": "gradle/kotlin.gradle", - }, - ], - }, - { - "templates": [ - { - "file": "detekt-config.yml", - }, - ], - }, - ], - "serverJavaApp": [ - { - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/Application.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/EurekaWorkaroundConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/ApplicationWebXml.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/TechnicalStructureTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/AsyncSyncConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/IntegrationTest.kt", - "renameTo": [Function], - }, - { - "file": "package/config/SpringBootTestClassOrderer.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/GeneratedByJHipster.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaAuthConfig": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/SpringSecurityAuditorAware.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/SecurityUtils.kt", - "renameTo": [Function], - }, - { - "file": "package/security/AuthoritiesConstants.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/SecurityUtilsUnitTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/SecurityUtilsUnitTest_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/jwt/TokenProvider.kt", - "renameTo": [Function], - }, - { - "file": "package/security/jwt/JWTFilter.kt", - "renameTo": [Function], - }, - { - "file": "package/management/SecurityMetersService.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/jwt/JWTConfigurer.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/jwt/JWTRelayGatewayFilterFactory.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/SecurityConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/SecurityConfiguration_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/PersistentTokenRememberMeServices.kt", - "renameTo": [Function], - }, - { - "file": "package/domain/PersistentToken.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/repository/PersistentTokenRepository.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/AudienceValidator.kt", - "renameTo": [Function], - }, - { - "file": "package/security/oauth2/JwtGrantedAuthorityConverter.kt", - "renameTo": [Function], - }, - { - "file": "package/security/oauth2/OAuthIdpTokenResponseDTO.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/AudienceValidatorTest.kt", - "renameTo": [Function], - }, - { - "file": "package/config/TestSecurityConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/AuthorizationHeaderUtilTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/DomainUserDetailsService.kt", - "renameTo": [Function], - }, - { - "file": "package/security/UserNotActivatedException.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/vm/LoginVM.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/UserJWTController.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/OpenApiConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/CustomClaimConverter.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/CustomClaimConverterIT.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaConfig": [ - { - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/aop/logging/LoggingAspect.kt", - "renameTo": [Function], - }, - { - "file": "package/config/AsyncConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/CRLFLogConverter.kt", - "renameTo": [Function], - }, - { - "file": "package/config/DateTimeFormatConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/LoggingConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/ApplicationProperties.kt", - "renameTo": [Function], - }, - { - "file": "package/config/JacksonConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/LoggingAspectConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/WebConfigurer.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/StaticResourcesWebConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/Constants.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/LocaleConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/ReactorConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/LocaleConfiguration_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/CacheConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/CacheFactoryConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/EmbeddedRedis.kt", - "renameTo": [Function], - }, - { - "file": "package/config/RedisTestContainer.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": [Function], - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/WebsocketConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/config/WebsocketSecurityConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/ElasticsearchConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaDomain": [ - { - "path": "src/main/kotlin/", - "templates": [], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/domain/AbstractAuditingEntity.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaGateway": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/vm/RouteVM.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/GatewayResource.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/AuthInfoResource.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/LogoutResource.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/LogoutResource_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/filter/ModifyServersOpenApiFilter.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/filter/ModifyServersOpenApiFilterTest.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaPackageInfo": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [], - }, - { - "path": "src/main/kotlin/", - "templates": [], - }, - ], - "serverJavaService": [ - { - "path": "src/main/kotlin/", - "templates": [], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/KafkaSseConsumer.kt", - "renameTo": [Function], - }, - { - "file": "package/config/KafkaSseProducer.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaServiceError": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/service/EmailAlreadyUsedException.kt", - "renameTo": [Function], - }, - { - "file": "package/service/InvalidPasswordException.kt", - "renameTo": [Function], - }, - { - "file": "package/service/UsernameAlreadyUsedException.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaUserManagement": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/domain/User.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/domain/Authority.kt", - "renameTo": [Function], - }, - { - "file": "package/repository/AuthorityRepository.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "config/liquibase/data/user.csv", - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "config/liquibase/data/authority.csv", - "config/liquibase/data/user_authority.csv", - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/Constants.kt", - "renameTo": [Function], - }, - { - "file": "package/service/UserService.kt", - "renameTo": [Function], - }, - { - "file": "package/service/dto/AdminUserDTO.kt", - "renameTo": [Function], - }, - { - "file": "package/service/dto/UserDTO.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/service/mapper/UserMapper.kt", - "renameTo": [Function], - }, - { - "file": "package/repository/UserRepository.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/PublicUserResource.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/vm/ManagedUserVM.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/AccountResource.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/service/UserServiceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/service/mapper/UserMapperTest.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/PublicUserResourceIT.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/UserResourceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/AccountResourceIT_skipUserManagement.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/AccountResourceIT_oauth2.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/repository/search/UserSearchRepository.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "templates/mail/activationEmail.html", - "templates/mail/creationEmail.html", - "templates/mail/passwordResetEmail.html", - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "templates/mail/activationEmail.html", - "templates/mail/creationEmail.html", - "templates/mail/passwordResetEmail.html", - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/repository/UserRepository.kt", - "renameTo": [Function], - }, - { - "file": "package/service/UserService.kt", - "renameTo": [Function], - }, - { - "file": "package/service/MailService.kt", - "renameTo": [Function], - }, - { - "file": "package/service/dto/AdminUserDTO.kt", - "renameTo": [Function], - }, - { - "file": "package/service/dto/UserDTO.kt", - "renameTo": [Function], - }, - { - "file": "package/service/dto/PasswordChangeDTO.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/vm/ManagedUserVM.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/AccountResource.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/UserResource.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/PublicUserResource.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/vm/KeyAndPasswordVM.kt", - "renameTo": [Function], - }, - { - "file": "package/service/mapper/UserMapper.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/repository/search/UserSearchRepository.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "testcontainers.properties", - "META-INF/spring.factories", - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/TestContainersSpringContextCustomizerFactory.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/EmbeddedElasticsearch.kt", - "renameTo": [Function], - }, - { - "file": "package/config/ElasticsearchTestContainer.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/ElasticsearchTestConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/management/SecurityMetersServiceTests.kt", - "renameTo": [Function], - }, - { - "file": "package/security/jwt/TokenProviderTest.kt", - "renameTo": [Function], - }, - { - "file": "package/security/jwt/TokenProviderSecurityMetersTests.kt", - "renameTo": [Function], - }, - { - "file": "package/security/jwt/JWTFilterTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/UserJWTControllerIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/cucumber/stepdefs/UserStepDefs.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - { - "file": "package/features/user/user.feature", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "templates/mail/testEmail.html", - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "i18n/messages_en.properties", - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/service/MailServiceIT.kt", - "renameTo": [Function], - }, - { - "file": "package/service/UserServiceIT.kt", - "renameTo": [Function], - }, - { - "file": "package/service/mapper/UserMapperTest.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/PublicUserResourceIT.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/UserResourceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/AccountResourceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/AccountResourceIT_oauth2.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/WithUnauthenticatedMockUser.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaWeb": [ - { - "path": "src/main/kotlin/", - "templates": [], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/ClientForwardController.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/filter/SpaWebFilter.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/KafkaResource_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/KafkaResource.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaWebError": [ - { - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/errors/BadRequestAlertException.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/ErrorConstants.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/ExceptionTranslator.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/FieldErrorVM.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/rest/errors/EmailAlreadyUsedException.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/InvalidPasswordException.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/LoginAlreadyUsedException.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverJavaWebsocket": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/web/websocket/ActivityService.kt", - "renameTo": [Function], - }, - { - "file": "package/web/websocket/dto/ActivityDTO.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverMicroservice": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/FeignConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/client/JWT_UserFeignClientInterceptor.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/security/oauth2/AuthorizationHeaderUtil.kt", - "renameTo": [Function], - }, - { - "file": "package/config/FeignConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/client/AuthorizedFeignClient.kt", - "renameTo": [Function], - }, - { - "file": "package/client/OAuth2InterceptedFeignConfiguration.kt", - "renameTo": [Function], - }, - { - "file": "package/client/TokenRelayRequestInterceptor.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/RestTemplateConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "static/microservices_index.html", - "renameTo": [Function], - }, - ], - }, - ], - "serverMicroserviceAndGateway": [ - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "config/bootstrap.yml", - "config/bootstrap-prod.yml", - ], - }, - ], - "serverResource": [ - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "banner-react.txt", - "method": "copy", - "noEjs": true, - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "banner-vue.txt", - "method": "copy", - "noEjs": true, - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "banner.txt", - "method": "copy", - "noEjs": true, - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "swagger/api.yml", - ], - }, - { - "path": "src/main/resources/", - "templates": [ - "templates/error.html", - "logback-spring.xml", - "config/application.yml", - "config/application-dev.yml", - "config/application-tls.yml", - "config/application-prod.yml", - "i18n/messages.properties", - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "config/liquibase/changelog/initial_schema.xml", - "override": [Function], - "renameTo": [Function], - }, - { - "file": "config/liquibase/master.xml", - "override": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/dbmigrations/InitialSetupMigration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/MongoDbTestContainer.kt", - "renameTo": [Function], - }, - { - "file": "package/config/EmbeddedMongo.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/neo4j/Neo4jMigrations.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "config/neo4j/migrations/user__admin.json", - "config/neo4j/migrations/user__user.json", - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - "config/cql/create-keyspace-prod.cql", - "config/cql/create-keyspace.cql", - "config/cql/drop-keyspace.cql", - "config/cql/changelog/README.md", - ], - }, - { - "condition": [Function], - "path": "src/main/resources/", - "templates": [ - { - "file": "config/cql/changelog/create-tables.cql", - "renameTo": [Function], - }, - { - "file": "config/cql/changelog/insert_default_users.cql", - "renameTo": [Function], - }, - ], - }, - ], - "serverTestFw": [ - { - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/TestUtil.kt", - "renameTo": [Function], - }, - { - "file": "package/web/rest/errors/ExceptionTranslatorTestController.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/errors/ExceptionTranslatorIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/errors/ExceptionTranslatorIT_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/ClientForwardControllerTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "path": "src/test/resources/", - "templates": [ - "config/application.yml", - "logback.xml", - "junit-platform.properties", - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/WebConfigurerTest.kt", - "renameTo": [Function], - }, - { - "file": "package/config/WebConfigurerTestController.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/StaticResourcesWebConfigurerTest.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "config/bootstrap.yml", - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/LogoutResourceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/", - "templates": [ - "gatling/conf/gatling.conf", - "gatling/conf/logback.xml", - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/cucumber/CucumberIT.kt", - "renameTo": [Function], - }, - { - "file": "package/cucumber/stepdefs/StepDefs.kt", - "renameTo": [Function], - }, - { - "file": "package/cucumber/CucumberTestContextConfiguration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - { - "file": "package/features/gitkeep", - "noEjs": true, - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/security/DomainUserDetailsServiceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/KafkaTestContainer.kt", - "renameTo": [Function], - }, - { - "file": "package/config/EmbeddedKafka.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/KafkaResourceIT.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/web/rest/KafkaResourceIT_reactive.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/Neo4jTestContainer.kt", - "renameTo": [Function], - }, - { - "file": "package/config/EmbeddedNeo4j.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/CassandraKeyspaceIT.kt", - "renameTo": [Function], - }, - { - "file": "package/config/CassandraTestContainer.kt", - "renameTo": [Function], - }, - { - "file": "package/config/EmbeddedCassandra.kt", - "renameTo": [Function], - }, - ], - }, - ], - "serverTestReactive": [ - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/config/JHipsterBlockHoundIntegration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/resources/", - "templates": [ - "META-INF/services/reactor.blockhound.integration.BlockHoundIntegration", - ], - }, - ], - "springBootOauth2": [ - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": "package/config/OAuth2Configuration.kt", - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/main/kotlin/", - "templates": [ - { - "file": [Function], - "renameTo": [Function], - }, - ], - }, - { - "condition": [Function], - "path": "src/test/kotlin/", - "templates": [ - { - "file": "package/test/util/OAuth2TestUtil.kt", - "renameTo": [Function], - }, - ], - }, - ], -} -`; diff --git a/generators/spring-boot/__snapshots__/matrix.spec.js.snap b/generators/spring-boot/__snapshots__/matrix.spec.js.snap index f23f6d2a0..68120c4e8 100644 --- a/generators/spring-boot/__snapshots__/matrix.spec.js.snap +++ b/generators/spring-boot/__snapshots__/matrix.spec.js.snap @@ -59,13 +59,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -80,9 +86,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -1805,13 +1808,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -1826,9 +1835,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -2518,13 +2524,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -2533,13 +2548,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -3911,13 +3926,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -3932,9 +3956,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -4624,13 +4645,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -4645,9 +4675,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -7077,13 +7104,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -7098,9 +7128,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -8191,13 +8218,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -8212,9 +8242,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -9314,13 +9341,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -9335,9 +9368,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -10377,13 +10407,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -10398,9 +10434,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -11512,13 +11545,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -11527,13 +11566,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -12800,13 +12839,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -12821,9 +12863,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -14043,13 +14082,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -14064,9 +14109,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -15268,13 +15310,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -15289,9 +15334,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -16445,13 +16487,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -16466,9 +16514,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -17739,13 +17784,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -17754,13 +17805,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -19153,13 +19204,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -19174,9 +19234,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -20462,13 +20519,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -20483,9 +20549,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -21711,13 +21774,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -21732,9 +21804,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -22957,13 +23026,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -22978,9 +23056,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -24317,13 +24392,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -24332,13 +24413,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -25662,13 +25743,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -25683,9 +25773,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -27001,13 +27088,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -27022,9 +27118,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -28313,13 +28406,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -28334,9 +28436,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -29538,13 +29637,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -29559,9 +29664,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -30796,13 +30898,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -30811,13 +30922,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -32198,13 +32309,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -32219,9 +32339,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -33435,13 +33552,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -33456,9 +33582,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -34639,13 +34762,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -34660,9 +34789,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -35804,13 +35930,22 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -35825,9 +35960,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/profile_prod.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { - "stateCleared": "modified", - }, "gradle/war.gradle": { "stateCleared": "modified", }, @@ -37068,13 +37200,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, - "checkstyle.xml": { + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { "stateCleared": "modified", }, - "gradle.properties": { + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "checkstyle.xml": { + "stateCleared": "modified", + }, + "gradle.properties": { "stateCleared": "modified", }, "gradle/kotlin.gradle": { @@ -37083,13 +37221,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { diff --git a/generators/spring-boot/generator.js b/generators/spring-boot/generator.js index f0f716381..da76a2191 100644 --- a/generators/spring-boot/generator.js +++ b/generators/spring-boot/generator.js @@ -9,6 +9,7 @@ import { files as serverFiles } from 'jhipster-7-templates/esm/generators/server import { convertToKotlinFile } from '../kotlin/support/files.js'; import migration from './migration.cjs'; +import { KOTLIN_TEST_SRC_DIR } from './kotlin-constants.js'; const { jhipsterConstants, jhipster7DockerContainers } = migration; const { @@ -53,26 +54,11 @@ export default class extends BaseApplicationGenerator { } get [BaseApplicationGenerator.COMPOSING]() { - const mainComposing = super.composing; return this.asComposingTaskGroup({ async composeDetekt() { await this.composeWithJHipster('jhipster-kotlin:detekt'); }, - async composeWithPostWriting() { - await this.composeWithJHipster('docker'); - - if (this.jhipsterConfigWithDefaults.applicationType === 'gateway') { - // Use gateway package.json scripts. - await this.composeWithJHipster('jhipster:spring-cloud:gateway'); - } - }, - ...mainComposing, - async composing(...args) { - const { skipPriorities } = this.options; - this.options.skipPriorities = ['postWriting']; - await mainComposing.composing.call(this, ...args); - this.options.skipPriorities = skipPriorities; - }, + ...super.composing, }); } @@ -89,8 +75,6 @@ export default class extends BaseApplicationGenerator { // Remove package-info.java files file => (file.sourceFile.includes('package-info.java') ? undefined : file), file => { - // Don't use liquibase.gradle from liquibase generator - if (['gradle/liquibase.gradle'].includes(file.sourceFile)) return undefined; // Passthrough non liquibase files if (!file.sourceFile.includes('src/main/resources/config/liquibase')) return file; // Use master.xml from jhipster 7 templates @@ -98,16 +82,13 @@ export default class extends BaseApplicationGenerator { // Use liquibase templates from liquibase generator return file.namespace === 'jhipster:liquibase' ? file : undefined; }, - // Ignore gradle convention plugins - file => (file.sourceFile.includes('buildSrc/src/main/groovy/') ? undefined : file), // Ignore files from generators file => [ 'jhipster:spring-cloud:gateway', 'jhipster:spring-cloud-stream:kafka', 'jhipster:spring-cloud-stream:pulsar', - 'jhipster:gatling', - ].includes(file.namespace) && !file.sourceFile.includes('_entityPackage_') + ].includes(file.namespace) && !file.sourceFile.includes('buildSrc') ? undefined : file, // Kotling blueprint does not implements these files @@ -122,14 +103,22 @@ export default class extends BaseApplicationGenerator { 'ElasticsearchExceptionMapperTest.java', 'QuerySyntaxException.java', '_enumName_.java', - '_persistClass_.java.jhi.jackson_identity_info.ejs', + '_persistClass_.java.jhi.jackson_identity_info', + '_entityClass_GatlingTest.java', ].includes(sourceBasename) ? undefined : file; }, + // Updated templates from v8 file => { - // Use v8 files due to needles - if (file.sourceFile.includes('resources/logback')) { + if (!['jhipster-kotlin:spring-boot'].includes(file.namespace)) return file; + if ( + // Use v8 files due to needles + file.sourceFile.includes('resources/logback') || + // Updated gradle stack + file.sourceFile.endsWith('.gradle') || + ['gradle.properties'].includes(basename(file.sourceFile)) + ) { return { ...file, resolvedSourceFile: this.fetchFromInstalledJHipster('server/templates/', file.sourceFile), @@ -254,6 +243,19 @@ export default class extends BaseApplicationGenerator { get [BaseApplicationGenerator.PREPARING]() { return this.asPreparingTaskGroup({ ...super.preparing, + blockhound({ application, source }) { + source.addAllowBlockingCallsInside = ({ classPath, method }) => { + if (!application.reactive) throw new Error('Blockhound is only supported by reactive applications'); + + this.editFile( + `${KOTLIN_TEST_SRC_DIR}${application.packageFolder}config/JHipsterBlockHoundIntegration.kt`, + createNeedleCallback({ + needle: 'blockhound-integration', + contentToAdd: `builder.allowBlockingCallsInside("${classPath}", "${method}")`, + }), + ); + }; + }, async preparingTemplateTask({ applicationDefaults }) { applicationDefaults({ __override__: true, @@ -267,12 +269,23 @@ export default class extends BaseApplicationGenerator { applicationDefaults({ __override__: true, - gradleVersion: '7.6.4', + gradleVersion: '8.9', }); Object.assign(application.javaDependencies, { 'spring-boot': SPRING_BOOT_VERSION, 'spring-boot-dependencies': SPRING_BOOT_VERSION, + 'archunit-junit5': '0.22.0', + liquibase: '4.15.0', + hibernate: '5.6.10.Final', + 'feign-reactor-bom': '3.3.0', + 'spring-cloud-dependencies': '2021.0.3', + 'neo4j-migrations-spring-boot-starter': '1.10.1', + 'gradle-openapi-generator': '6.0.1', + 'openapi-generator-maven-plugin': '6.0.1', + }); + Object.assign(application.springBootDependencies, { + 'spring-boot-dependencies': SPRING_BOOT_VERSION, }); applicationDefaults({ @@ -444,6 +457,12 @@ export default class extends BaseApplicationGenerator { 'WebsocketSecurityConfiguration.java', 'ActivityService.java', 'ActivityDTO.java', + // jhipster:java:jib + 'docker.gradle', + // jhipster:java:code-quality + 'sonar.gradle', + // jhipster:java:openapi-generator v7.6.1 + // 'swagger.gradle', ].includes(sourceBasename) ? undefined : file; @@ -519,27 +538,128 @@ export default class extends BaseApplicationGenerator { get [BaseApplicationGenerator.POST_WRITING]() { return this.asPostWritingTaskGroup({ ...super.postWriting, - addJHipsterBomDependencies: undefined, - addSpringdoc: undefined, - addSpringBootPlugin: undefined, - addFeignReactor: undefined, + addJHipsterBomDependencies({ application, source }) { + const { applicationTypeGateway, applicationTypeMicroservice, serviceDiscoveryAny, messageBrokerAny, javaDependencies } = + application; + if (applicationTypeGateway || applicationTypeMicroservice || serviceDiscoveryAny || messageBrokerAny) { + source.addJavaDependencies?.([ + { + groupId: 'org.springframework.cloud', + artifactId: 'spring-cloud-dependencies', + type: 'pom', + scope: 'import', + version: javaDependencies['spring-cloud-dependencies'], + }, + ]); + } + }, + addSpringdoc({ application, source }) { + const springdocDependency = `springdoc-openapi-${application.reactive ? 'webflux' : 'webmvc'}-core`; + source.addJavaDependencies?.([{ groupId: 'org.springdoc', artifactId: springdocDependency, version: '1.6.11' }]); + }, + async customizeDependencies({ application, source }) { + source.addJavaDefinition({ + dependencies: [ + { groupId: 'io.dropwizard.metrics', artifactId: 'metrics-core' }, + { groupId: 'org.zalando', artifactId: `problem-spring-${application.reactive ? 'webflux' : 'web'}` }, + { + groupId: 'tech.jhipster', + artifactId: 'jhipster-dependencies', + version: application.jhipsterDependenciesVersion, + type: 'pom', + scope: 'import', + }, + ], + }); + + if (application.authenticationTypeJwt) { + source.addJavaDefinition({ + dependencies: [ + { groupId: 'io.jsonwebtoken', artifactId: 'jjwt-api' }, + { groupId: 'io.jsonwebtoken', artifactId: 'jjwt-impl', scope: 'runtime' }, + { groupId: 'io.jsonwebtoken', artifactId: 'jjwt-jackson', scope: 'compile' }, + ], + }); + } else if (application.authenticationTypeOauth2) { + source.addJavaDefinition({ + dependencies: [{ groupId: 'org.springframework.boot', artifactId: 'spring-boot-starter-oauth2-resource-server' }], + }); + } + + if (application.applicationTypeGateway || application.applicationTypeMicroservice) { + source.addJavaDefinition({ + dependencies: [{ groupId: 'org.springframework.cloud', artifactId: 'spring-cloud-starter-openfeign' }], + }); + } + if (application.databaseTypeMongodb) { + source.addJavaDefinition({ + dependencies: [ + { groupId: 'org.mongodb', artifactId: 'mongodb-driver-sync' }, + ...(application.reactive ? [{ groupId: 'org.mongodb', artifactId: 'mongodb-driver-reactivestreams' }] : []), + ], + }); + } + if (application.databaseTypeCassandra) { + source.addJavaDefinition({ + dependencies: [{ groupId: 'org.cassandraunit', artifactId: 'cassandra-unit-spring' }], + }); + } + if (application.databaseTypeSql && application.reactive) { + source.addJavaDefinition({ + dependencies: [{ groupId: 'org.apache.commons', artifactId: 'commons-collections4' }], + }); + } + }, + customizeGradle({ application, source }) { + if (application.buildToolGradle) { + source.addGradleProperty({ property: 'mapstructVersion', value: application.javaDependencies.mapstruct }); + source.addGradleProperty({ property: 'springBootVersion', value: application.javaDependencies['spring-boot'] }); + if (application.databaseTypeSql) { + source.addGradleProperty({ property: 'liquibase.version', value: application.javaDependencies.liquibase }); + source.addGradleProperty({ property: 'hibernateVersion', value: application.javaDependencies.hibernate }); + source.addGradleProperty({ property: 'jaxbRuntimeVersion', value: '4.0.0' }); + } + if (application.databaseTypeCassandra) { + source.addGradleProperty({ property: 'cassandraDriverVersion', value: '4.14.1' }); + } + source.addGradleDependencies([{ groupId: 'tech.jhipster', artifactId: 'jhipster-framework', scope: 'implementation' }]); + } + }, async customizeMaven({ application, source }) { if (application.buildToolMaven) { - if (application.reactive) { - this.editFile('pom.xml', contents => - contents.replace( - '', - '', - ), - ); - } - source.addMavenDefinition({ properties: [ { property: 'modernizer-maven-plugin.version', value: application.javaDependencies['modernizer-maven-plugin'] }, { property: 'modernizer.failOnViolations', value: 'false' }, + { property: 'spring-boot.version', value: application.javaDependencies['spring-boot'] }, + ], + dependencies: [ + { + groupId: 'tech.jhipster', + artifactId: 'jhipster-framework', + additionalContent: application.reactive + ? ` + + + org.springframework + spring-webmvc + + ` + : '', + }, ], }); + + if (application.databaseTypeSql) { + source.addMavenDefinition({ + properties: [ + { property: 'jaxb-runtime.version', value: '4.0.0' }, + { property: 'liquibase-hibernate5.version', value: application.javaDependencies.liquibase }, + { property: 'liquibase.version', value: application.javaDependencies.liquibase }, + { property: 'hibernate.version', value: application.javaDependencies.hibernate }, + ], + }); + } } }, }); diff --git a/generators/spring-boot/templates/pom.xml.ejs b/generators/spring-boot/templates/pom.xml.ejs new file mode 100644 index 000000000..97f44848f --- /dev/null +++ b/generators/spring-boot/templates/pom.xml.ejs @@ -0,0 +1,771 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + 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. +-%> + + + 4.0.0 + + <%= packageName %> + <%= dasherizedBaseName %> + <%= projectVersion %> + jar + <%= humanizedBaseName %> + <%= projectDescription %> + + + + 3.2.5 + <%= JAVA_VERSION %> + UTF-8 + UTF-8 + yyyyMMddHHmmss + ${java.version} + ${java.version} + <%= packageName %>.<%= mainClass %> + -Djava.security.egd=file:/dev/./urandom -Xmx1G + jdt_apt + false + + + + + +<%_ if (reactive) { _%> + <%- javaDependencies['blockhound-junit-platform'] %> +<%_ } _%> + <%- javaDependencies['archunit-junit5'] %> + <%- javaDependencies.mapstruct %> + <%- javaDependencies['git-commit-id-maven-plugin'] %> + <%- javaDependencies['lifecycle-mapping'] %> + <%- javaDependencies['maven-clean-plugin'] %> + <%- javaDependencies['maven-compiler-plugin'] %> + <%- javaDependencies['maven-enforcer-plugin'] %> + <%- javaDependencies['maven-failsafe-plugin'] %> + <%- javaDependencies['maven-javadoc-plugin'] %> + <%- javaDependencies['maven-jar-plugin'] %> + <%- javaDependencies['maven-resources-plugin'] %> + <%- javaDependencies['maven-site-plugin'] %> + <%- javaDependencies['maven-surefire-plugin'] %> + <%- javaDependencies['maven-war-plugin'] %> + + + + + com.fasterxml.jackson.datatype + jackson-datatype-hppc + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + +<%_ if (authenticationTypeOauth2) { _%> + + com.github.ben-manes.caffeine + caffeine + +<%_ } _%> + + com.tngtech.archunit + archunit-junit5-api + ${archunit-junit5.version} + test + + + + + com.tngtech.archunit + archunit-junit5-engine + ${archunit-junit5.version} + test + + + io.micrometer + micrometer-registry-prometheus-simpleclient + +<%_ if (reactive) { _%> + + io.netty + netty-tcnative-boringssl-static + runtime + + + io.projectreactor.tools + blockhound-junit-platform + ${blockhound-junit-platform.version} + test + +<%_ } _%> + + jakarta.annotation + jakarta.annotation-api + + + org.apache.commons + commons-lang3 + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + provided + + + org.springframework.boot + spring-boot-configuration-processor + provided + + + org.springframework.boot + spring-boot-loader-tools + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-logging + + + org.springframework.boot + spring-boot-starter-mail + +<%_ if (authenticationTypeOauth2) { _%> + + org.springframework.boot + spring-boot-starter-oauth2-client + +<%_ } _%> +<%_ if (authenticationTypeJwt || authenticationTypeSession) { _%> + + org.springframework.boot + spring-boot-starter-security + +<%_ } _%> + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-thymeleaf + +<%_ if (!reactive) { _%> + + org.springframework.boot + spring-boot-starter-undertow + +<%_ } _%> + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-web<% if (reactive) { %>flux<% } %> +<%_ if (!reactive) { _%> + + + org.springframework.boot + spring-boot-starter-tomcat + + +<%_ } _%> + + + org.springframework.boot + spring-boot-test + test + +<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> + + org.springframework.cloud + spring-cloud-starter + +<%_ } _%> +<%_ if (serviceDiscoveryAny) { _%> + + org.springframework.cloud + spring-cloud-starter-bootstrap + +<%_ } _%> +<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> + <%_ if (reactive) { _%> + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-reactor-resilience4j + + <%_ } else { _%> + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-resilience4j + + <%_ } _%> +<%_ } _%> +<%_ if (serviceDiscoveryAny && serviceDiscoveryEureka) { _%> + + org.springframework.cloud + spring-cloud-starter-config + +<%_ } _%> +<%_ if (applicationTypeGateway && !reactive) { _%> + + org.springframework.cloud + spring-cloud-starter-loadbalancer + +<%_ } _%> +<%_ if (serviceDiscoveryAny && serviceDiscoveryConsul) { _%> + + org.springframework.cloud + spring-cloud-starter-consul-config + + + org.springframework.cloud + spring-cloud-starter-consul-discovery + +<%_ } _%> +<%_ if (serviceDiscoveryAny && serviceDiscoveryEureka) { _%> + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + +<%_ } _%> +<%_ if (reactive) { _%> + + org.springframework.data + spring-data-commons + +<%_ } _%> +<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> + + org.springframework.retry + spring-retry + +<%_ } _%> + + org.springframework.security + spring-security-test + test + + + + + spring-boot:run + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + + org.apache.maven.plugins + maven-enforcer-plugin + + + org.apache.maven.plugins + maven-failsafe-plugin + + + org.apache.maven.plugins + maven-resources-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + true + + + org.springframework.boot + spring-boot-configuration-processor + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + ${maven.compiler.source} + + + + org.apache.maven.plugins + maven-war-plugin + ${maven-war-plugin.version} + + + default-war + + war + + package + + + + WEB-INF/**,META-INF/** + false +<%_ if (!skipClient) { _%> + <%= clientDistDir %> + + + <%= MAIN_DIR %>webapp + + WEB-INF/** + + + +<%_ } _%> + + + + io.github.git-commit-id + git-commit-id-maven-plugin + ${git-commit-id-maven-plugin.version} + + + + revision + + + + + false + false + true + + ^git.commit.id.abbrev$ + ^git.commit.id.describe$ + ^git.branch$ + + + + + org.apache.maven.plugins + maven-clean-plugin + ${maven-clean-plugin.version} + + + org.apache.maven.plugins + maven-site-plugin + ${maven-site-plugin.version} + + + org.apache.maven.plugins + maven-enforcer-plugin + ${maven-enforcer-plugin.version} + + + enforce-versions + + enforce + + + + enforce-dependencyConvergence + + + + + false + + + enforce + + + + + + + You are running an older version of Maven. JHipster requires at least Maven ${maven.version} + [${maven.version},) + + + You are running an incompatible version of Java. JHipster supports JDK <%= JAVA_COMPATIBLE_VERSIONS[0] %> to <%= JAVA_COMPATIBLE_VERSIONS[JAVA_COMPATIBLE_VERSIONS.length -1] %>. + <%= JAVA_COMPATIBLE_VERSIONS.map(version => parseInt(version)).map(version => `[${version},${version +1})`).join(',') %> + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + alphabetical + + **/*IT* + **/*IntTest* + +<%_ if (reactive) { _%> + + @{argLine} -XX:+AllowRedefinitionToAddDeleteMethods +<%_ } _%> + + src/test/resources/logback.xml + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + ${start-class} +<%_ if (embeddableLaunchScript) { _%> + true +<%_ } _%> + +<%_ if (cacheProviderInfinispan) { _%> + -Djgroups.tcp.address=NON_LOOPBACK -Djava.net.preferIPv4Stack=true +<%_ } _%> + + + + org.apache.maven.plugins + maven-failsafe-plugin + ${maven-failsafe-plugin.version} + + + ${project.build.outputDirectory} + + alphabetical + + **/*IT* + **/*IntTest* + +<%_ if (reactive) { _%> + + @{argLine} -XX:+AllowRedefinitionToAddDeleteMethods -Dspring.profiles.active=${profile.test} +<%_ } else { _%> + @{argLine} -Dspring.profiles.active=${profile.test} +<%_ } _%> + + + + integration-test + + integration-test + + + + verify + + verify + + + + + + + + + + api-docs + + ,api-docs + + + + tls + + ,tls + + +<%_ if (!skipClient) { _%> + + webapp + + true + + + + dev<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> + + +<%_ } _%> + + dev + + true + + + + dev${profile.tls}<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> + testdev + + + + org.springframework.boot + spring-boot-devtools + true + + + + + prod + + + prod${profile.api-docs}${profile.tls}${profile.e2e}<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> + testprod + + + + + org.apache.maven.plugins + maven-clean-plugin + + + + <%= clientDistDir %> + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + build-info + + + + + + io.github.git-commit-id + git-commit-id-maven-plugin + + + + + + war + + + + org.apache.maven.plugins + maven-war-plugin + + + + +<%_ if (serviceDiscoveryAny || applicationTypeGateway || applicationTypeMicroservice) { _%> + + + zipkin + + + io.micrometer + micrometer-tracing + + + io.micrometer + micrometer-tracing-bridge-brave + + + io.zipkin.reporter2 + zipkin-reporter-brave + + + +<%_ } _%> + + + IDE + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + eclipse + + + m2e.version + + + + + + org.springframework.boot + spring-boot-starter-undertow + + + + + + + + org.eclipse.m2e + lifecycle-mapping + ${lifecycle-mapping.version} + + + + + + org.jacoco + + jacoco-maven-plugin + + + ${jacoco-maven-plugin.version} + + + prepare-agent + + + + + + +<%_ if (!skipClient) { _%> + + + com.github.eirslett + frontend-maven-plugin + ${frontend-maven-plugin.version} + + install-node-and-npm + npm + + + + + + +<%_ } _%> +<%_ if (enableSwaggerCodegen) { _%> + + + org.openapitools + openapi-generator-maven-plugin + ${openapi-generator-maven-plugin.version} + + generate + + + + + + +<%_ } _%> + + + + + + + + +<%_ if (cypressTests) { _%> + + e2e + + ,e2e + + + e2e + + + + org.springframework.boot + spring-boot-maven-plugin + + + repackage + + repackage + + + + + + + + +<%_ } _%> + + diff --git a/generators/spring-boot/templates/src/main/kotlin/package/config/SecurityConfiguration_reactive.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/package/config/SecurityConfiguration_reactive.kt.ejs index 614c9bf23..f1bf44205 100644 --- a/generators/spring-boot/templates/src/main/kotlin/package/config/SecurityConfiguration_reactive.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/package/config/SecurityConfiguration_reactive.kt.ejs @@ -417,9 +417,10 @@ class SecurityConfiguration( if (jwt.hasClaim("given_name") && jwt.hasClaim("family_name")) { return Mono.just(jwt) } else { - return users.get(jwt.subject) { _ -> - val webClient = WebClient.create() - webClient + // TODO retreive and get from users cache + // users.get(jwt.subject) { _ -> + return WebClient + .create() .get() .uri(userInfoUri) .headers { it.setBearerAuth(token) } @@ -452,7 +453,6 @@ class SecurityConfiguration( } .build() } - } } } } diff --git a/generators/spring-boot/templates/src/test/kotlin/package/IntegrationTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/IntegrationTest.kt.ejs index a80d022a0..f21121e01 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/IntegrationTest.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/IntegrationTest.kt.ejs @@ -94,13 +94,8 @@ annotation class IntegrationTest { <%_ if (reactive) { _%> companion object { // 5s is the spring default https://github.com/spring-projects/spring-framework/blob/29185a3d28fa5e9c1b4821ffe519ef6f56b51962/spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClient.java#L106 - <%_ if (databaseTypeMongodb && reactive) { _%> - const val DEFAULT_TIMEOUT: String = "PT10S" - const val DEFAULT_ENTITY_TIMEOUT: String = "PT10S" - <%_ } else { _%> const val DEFAULT_TIMEOUT: String = "PT5S" const val DEFAULT_ENTITY_TIMEOUT: String = "PT5S" - <%_ } _%> } <%_ } _%> } diff --git a/generators/spring-boot/templates/src/test/kotlin/package/config/JHipsterBlockHoundIntegration.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/config/JHipsterBlockHoundIntegration.kt.ejs index 549d91d19..89be394a2 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/config/JHipsterBlockHoundIntegration.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/config/JHipsterBlockHoundIntegration.kt.ejs @@ -23,6 +23,8 @@ import reactor.blockhound.integration.BlockHoundIntegration class JHipsterBlockHoundIntegration: BlockHoundIntegration { override fun applyTo(builder: BlockHound.Builder) { + builder.allowBlockingCallsInside("org.springframework.test.web.reactive.server.DefaultWebTestClient\$DefaultRequestBodyUriSpec", "exchange"); + // Workaround until https://github.com/reactor/reactor-core/issues/2137 is fixed builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler\$BoundedState", "dispose") builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler", "schedule") @@ -44,6 +46,13 @@ class JHipsterBlockHoundIntegration: BlockHoundIntegration { <%_ if (searchEngineElasticsearch) { _%> builder.allowBlockingCallsInside("org.elasticsearch.client.indices.CreateIndexRequest", "settings") <%_} _%> + + // v8 entries + builder.allowBlockingCallsInside("org.springframework.web.reactive.result.method.InvocableHandlerMethod", "invoke"); + builder.allowBlockingCallsInside("org.springdoc.core.service.OpenAPIService", "build"); + builder.allowBlockingCallsInside("org.springdoc.core.service.AbstractRequestService", "build"); + + // jhipster-needle-blockhound-integration - JHipster will add additional gradle plugins here } } diff --git a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/EntityResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/EntityResourceIT.kt.ejs index 68c6a242a..7599fedf8 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/EntityResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/EntityResourceIT.kt.ejs @@ -62,6 +62,9 @@ _%> import <%= packageName %>.web.rest.* <% } %> import <%= packageName %>.IntegrationTest +<%_ if (reactive) { _%> +import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT +<%_ } _%> import <%= entityAbsolutePackage %>.domain.<%= persistClass %> <%_ var imported = []; @@ -236,7 +239,7 @@ import <%= packageName %>.domain.enumeration.<%= field.fieldType %> ) <%_ } _%> <%_ if (reactive) { _%> -@AutoConfigureWebTestClient +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/PublicUserResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/PublicUserResourceIT.kt.ejs index 0fe222931..7289d254d 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/PublicUserResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/PublicUserResourceIT.kt.ejs @@ -19,6 +19,9 @@ This file is part of the JHipster project, see https://jhipster.github.io/ package <%= packageName %>.web.rest import <%= packageName %>.IntegrationTest +<%_ if (reactive) { _%> +import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT +<%_ } _%> import <%= packageName %>.security.ADMIN import <%= packageName %>.security.USER <%_ if (authenticationTypeOauth2) { _%> @@ -97,7 +100,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.* * Integration tests for the {@link UserResource} REST controller. */ <%_ if (reactive) { _%> -@AutoConfigureWebTestClient +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/UserJWTControllerIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/UserJWTControllerIT.kt.ejs index 31ee78526..111f62e18 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/UserJWTControllerIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/UserJWTControllerIT.kt.ejs @@ -63,7 +63,7 @@ import org.hamcrest.Matchers.* * Integration tests for the [UserJWTController] REST controller. */ <%_ if (reactive) { _%> -@AutoConfigureWebTestClient +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs index 2dd5eb1ca..cfd0d769b 100644 --- a/generators/spring-boot/templates/src/test/kotlin/package/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/package/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs @@ -19,6 +19,9 @@ package <%= packageName %>.web.rest.errors import <%= packageName %>.IntegrationTest +<%_ if (reactive) { _%> +import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT +<%_ } _%> import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest @@ -39,7 +42,7 @@ import org.springframework.security.test.web.reactive.server.SecurityMockServerC * Integration tests [ExceptionTranslator] controller advice. */ @WithMockUser -@AutoConfigureWebTestClient +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) @IntegrationTest class ExceptionTranslatorIT { diff --git a/test/__snapshots__/app.spec.js.snap b/test/__snapshots__/app.spec.js.snap index 67f8b05a8..323f20f00 100644 --- a/test/__snapshots__/app.spec.js.snap +++ b/test/__snapshots__/app.spec.js.snap @@ -44,6 +44,18 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.spring-cache-conventions.gradle": { + "stateCleared": "modified", + }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -56,22 +68,19 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "gradle/detekt.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { - "stateCleared": "modified", - }, "gradle/kotlin.gradle": { "stateCleared": "modified", }, "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -3555,6 +3564,18 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.spring-cache-conventions.gradle": { + "stateCleared": "modified", + }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3567,22 +3588,19 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "gradle/detekt.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { - "stateCleared": "modified", - }, "gradle/kotlin.gradle": { "stateCleared": "modified", }, "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { @@ -4055,6 +4073,18 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "buildSrc/gradle/libs.versions.toml": { "stateCleared": "modified", }, + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle": { + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.spring-cache-conventions.gradle": { + "stateCleared": "modified", + }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -4067,22 +4097,19 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "gradle/detekt.gradle": { "stateCleared": "modified", }, - "gradle/docker.gradle": { - "stateCleared": "modified", - }, "gradle/kotlin.gradle": { "stateCleared": "modified", }, "gradle/libs.versions.toml": { "stateCleared": "modified", }, - "gradle/profile_dev.gradle": { + "gradle/liquibase.gradle": { "stateCleared": "modified", }, - "gradle/profile_prod.gradle": { + "gradle/profile_dev.gradle": { "stateCleared": "modified", }, - "gradle/sonar.gradle": { + "gradle/profile_prod.gradle": { "stateCleared": "modified", }, "gradle/war.gradle": { diff --git a/test/app.spec.js b/test/app.spec.js index 016f4455d..8dd8ad7b5 100644 --- a/test/app.spec.js +++ b/test/app.spec.js @@ -1902,7 +1902,6 @@ describe('JHipster generator for App generator', () => { runResult.assertFile(expectedFiles.jwtServer); runResult.assertFile(expectedFiles.microservice); runResult.assertFile(expectedFiles.feignConfig); - runResult.assertFile(expectedFiles.microserviceGradle); runResult.assertFile(expectedFiles.eureka); runResult.assertNoFile(expectedFiles.consul); runResult.assertNoFile(expectedFiles.userManagementServer); diff --git a/test/utils/expected-files.js b/test/utils/expected-files.js index 5ef1abee2..32c3357db 100644 --- a/test/utils/expected-files.js +++ b/test/utils/expected-files.js @@ -32,10 +32,8 @@ const expectedFiles = { 'settings.gradle', 'gradlew', 'gradlew.bat', - 'gradle/docker.gradle', 'gradle/profile_dev.gradle', 'gradle/profile_prod.gradle', - 'gradle/sonar.gradle', 'gradle/wrapper/gradle-wrapper.jar', 'gradle/wrapper/gradle-wrapper.properties', 'checkstyle.xml', @@ -269,8 +267,6 @@ const expectedFiles = { 'package.json', ], - microserviceGradle: ['gradle/docker.gradle'], - dockerServices: [`${DOCKER_DIR}app.yml`, `${DOCKER_DIR}sonar.yml`, `${DOCKER_DIR}jhipster-control-center.yml`], hibernateTimeZoneConfig: [