From a3871650f18df5f5f85f83591ab3e2bf4b4578b8 Mon Sep 17 00:00:00 2001 From: Marcelo Boveto Shima Date: Thu, 21 Mar 2024 16:25:40 -0300 Subject: [PATCH 1/4] add gradle/code-quality generator --- .../generators/code-quality/generator.ts | 93 +++++++++++++++++++ .../gradle/generators/code-quality/index.ts | 19 ++++ ...ipster.code-quality-conventions.gradle.ejs | 0 generators/server/generator.js | 81 ---------------- generators/spring-boot/files.ts | 9 +- 5 files changed, 113 insertions(+), 89 deletions(-) create mode 100644 generators/gradle/generators/code-quality/generator.ts create mode 100644 generators/gradle/generators/code-quality/index.ts rename generators/{server => gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs (100%) diff --git a/generators/gradle/generators/code-quality/generator.ts b/generators/gradle/generators/code-quality/generator.ts new file mode 100644 index 00000000000..f04214bd324 --- /dev/null +++ b/generators/gradle/generators/code-quality/generator.ts @@ -0,0 +1,93 @@ +/** + * 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. + */ + +import BaseApplicationGenerator from '../../../base-application/index.js'; +import { GRADLE_BUILD_SRC_MAIN_DIR } from '../../../generator-constants.js'; +import { GENERATOR_GRADLE } from '../../../generator-list.js'; + +export default class CodeQualityGenerator extends BaseApplicationGenerator { + async beforeQueue() { + if (!this.fromBlueprint) { + await this.composeWithBlueprints(); + } + + if (!this.delegateToBlueprint) { + await this.dependsOnBootstrapAplication(); + await this.dependsOnJHipster(GENERATOR_GRADLE); + } + } + + get writing() { + return this.asWritingTaskGroup({ + async writing({ application }) { + await this.writeFiles({ + blocks: [{ templates: [`${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.code-quality-conventions.gradle`] }], + context: application, + }); + }, + }); + } + + get [BaseApplicationGenerator.WRITING]() { + return this.delegateTasksToBlueprint(() => this.writing); + } + + get postWriting() { + return this.asPostWritingTaskGroup({ + customize({ application, source }) { + const { javaDependencies } = application; + source.addGradleDependencyCatalogVersions!([ + { name: 'jacoco', version: javaDependencies!['jacoco-maven-plugin'] }, + { name: 'checkstyle', version: javaDependencies!.checkstyle }, + ]); + source.addGradleBuildSrcDependencyCatalogLibraries?.([ + { + libraryName: 'sonarqube-plugin', + module: 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin', + version: javaDependencies!['gradle-sonarqube'], + scope: 'implementation', + }, + { + libraryName: 'spotless-plugin', + module: 'com.diffplug.spotless:spotless-plugin-gradle', + version: javaDependencies!['spotless-gradle-plugin'], + scope: 'implementation', + }, + { + libraryName: 'modernizer-plugin', + module: 'com.github.andygoossens:gradle-modernizer-plugin', + version: javaDependencies!['gradle-modernizer-plugin'], + scope: 'implementation', + }, + { + libraryName: 'nohttp-plugin', + module: 'io.spring.nohttp:nohttp-gradle', + version: javaDependencies!['nohttp-checkstyle'], + scope: 'implementation', + }, + ]); + source.addGradlePlugin?.({ id: 'jhipster.code-quality-conventions' }); + }, + }); + } + + get [BaseApplicationGenerator.POST_WRITING]() { + return this.delegateTasksToBlueprint(() => this.postWriting); + } +} diff --git a/generators/gradle/generators/code-quality/index.ts b/generators/gradle/generators/code-quality/index.ts new file mode 100644 index 00000000000..58ac334eafa --- /dev/null +++ b/generators/gradle/generators/code-quality/index.ts @@ -0,0 +1,19 @@ +/** + * 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. + */ +export { default } from './generator.js'; diff --git a/generators/server/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs b/generators/gradle/generators/code-quality/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs similarity index 100% rename from generators/server/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs rename to generators/gradle/generators/code-quality/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs diff --git a/generators/server/generator.js b/generators/server/generator.js index 4bdfb3573a0..2002a546256 100644 --- a/generators/server/generator.js +++ b/generators/server/generator.js @@ -590,87 +590,6 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator { get postWriting() { return this.asPostWritingTaskGroup({ - customizeGradle({ application, source }) { - if (!application.buildToolGradle) return; - source.addGradleDependencyCatalogVersion?.({ name: 'checkstyle', version: application.javaDependencies.checkstyle }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ name: 'checkstyle', version: application.javaDependencies.checkstyle }); - source.addGradleDependencyCatalogVersion?.({ name: 'jacoco', version: application.javaDependencies?.['jacoco-maven-plugin'] }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'jacoco', - version: application.javaDependencies?.['jacoco-maven-plugin'], - }); - source.addGradleDependencyCatalogVersion?.({ - name: 'sonarqube-plugin', - version: application.javaDependencies?.['gradle-sonarqube'], - }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'sonarqube-plugin', - version: application.javaDependencies?.['gradle-sonarqube'], - }); - source.addGradleDependencyCatalogVersion?.({ - name: 'spotless-plugin', - version: application.javaDependencies?.['spotless-gradle-plugin'], - }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'spotless-plugin', - version: application.javaDependencies?.['spotless-gradle-plugin'], - }); - source.addGradleDependencyCatalogVersion?.({ - name: 'modernizer-plugin', - version: application.javaDependencies?.['gradle-modernizer-plugin'], - }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'modernizer-plugin', - version: application.javaDependencies?.['gradle-modernizer-plugin'], - }); - source.addGradleDependencyCatalogVersion?.({ name: 'nohttp-plugin', version: application.javaDependencies?.['nohttp-checkstyle'] }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'nohttp-plugin', - version: application.javaDependencies?.['nohttp-checkstyle'], - }); - source.addGradleDependencyCatalogVersion?.({ name: 'jib-plugin', version: application.javaDependencies?.['jib-maven-plugin'] }); - source.addGradleBuildSrcDependencyCatalogVersion?.({ - name: 'jib-plugin', - version: application.javaDependencies?.['jib-maven-plugin'], - }); - source.addGradleBuildSrcDependency?.({ - groupId: 'org.sonarsource.scanner.gradle', - artifactId: 'sonarqube-gradle-plugin', - // eslint-disable-next-line no-template-curly-in-string - version: '${libs.versions.sonarqube.plugin.get()}', - scope: 'implementation', - }); - source.addGradleBuildSrcDependency?.({ - groupId: 'com.diffplug.spotless', - artifactId: 'spotless-plugin-gradle', - // eslint-disable-next-line no-template-curly-in-string - version: '${libs.versions.spotless.plugin.get()}', - scope: 'implementation', - }); - source.addGradleBuildSrcDependency?.({ - groupId: 'com.github.andygoossens', - artifactId: 'gradle-modernizer-plugin', - // eslint-disable-next-line no-template-curly-in-string - version: '${libs.versions.modernizer.plugin.get()}', - scope: 'implementation', - }); - source.addGradleBuildSrcDependency?.({ - groupId: 'io.spring.nohttp', - artifactId: 'nohttp-gradle', - // eslint-disable-next-line no-template-curly-in-string - version: '${libs.versions.nohttp.plugin.get()}', - scope: 'implementation', - }); - source.addGradleBuildSrcDependency?.({ - groupId: 'com.google.cloud.tools', - artifactId: 'jib-gradle-plugin', - // eslint-disable-next-line no-template-curly-in-string - version: '${libs.versions.jib.plugin.get()}', - scope: 'implementation', - }); - source.addGradlePlugin?.({ id: 'jhipster.code-quality-conventions' }); - source.addGradlePlugin?.({ id: 'jhipster.docker-conventions' }); - }, packageJsonScripts({ application }) { const packageJsonConfigStorage = this.packageJson.createStorage('config').createProxy(); packageJsonConfigStorage.backend_port = application.gatewayServerPort || application.serverPort; diff --git a/generators/spring-boot/files.ts b/generators/spring-boot/files.ts index a46aef09c9e..22882a8fabd 100644 --- a/generators/spring-boot/files.ts +++ b/generators/spring-boot/files.ts @@ -16,13 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - SERVER_MAIN_SRC_DIR, - SERVER_MAIN_RES_DIR, - SERVER_TEST_SRC_DIR, - SERVER_TEST_RES_DIR, - GRADLE_BUILD_SRC_MAIN_DIR, -} from '../generator-constants.js'; +import { SERVER_MAIN_SRC_DIR, SERVER_MAIN_RES_DIR, SERVER_TEST_SRC_DIR, SERVER_TEST_RES_DIR } from '../generator-constants.js'; import { addSectionsCondition, mergeSections } from '../base/support/index.js'; import { moveToJavaPackageSrcDir, moveToJavaPackageTestDir, moveToSrcMainResourcesDir } from '../java/support/index.js'; @@ -318,7 +312,6 @@ export const baseServerFiles = { 'gradle/profile_prod.gradle', 'gradle/war.gradle', 'gradle/zipkin.gradle', - `${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.code-quality-conventions.gradle`, `${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.docker-conventions.gradle`, ], }, From 243d792a8f7e154ae62b80e9c5d819eede4dfd08 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 21 Mar 2024 19:56:49 -0300 Subject: [PATCH 2/4] add gradle/jib generator --- generators/gradle/generators/jib/generator.ts | 72 +++++++++++++++++++ generators/gradle/generators/jib/index.ts | 19 +++++ .../jhipster.docker-conventions.gradle.ejs | 0 3 files changed, 91 insertions(+) create mode 100644 generators/gradle/generators/jib/generator.ts create mode 100644 generators/gradle/generators/jib/index.ts rename generators/{server => gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs (100%) diff --git a/generators/gradle/generators/jib/generator.ts b/generators/gradle/generators/jib/generator.ts new file mode 100644 index 00000000000..8d82103b16e --- /dev/null +++ b/generators/gradle/generators/jib/generator.ts @@ -0,0 +1,72 @@ +/** + * 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. + */ + +import BaseApplicationGenerator from '../../../base-application/index.js'; +import { GRADLE_BUILD_SRC_MAIN_DIR } from '../../../generator-constants.js'; +import { GENERATOR_GRADLE } from '../../../generator-list.js'; + +export default class CodeQualityGenerator extends BaseApplicationGenerator { + async beforeQueue() { + if (!this.fromBlueprint) { + await this.composeWithBlueprints(); + } + + if (!this.delegateToBlueprint) { + await this.dependsOnBootstrapAplication(); + await this.dependsOnJHipster(GENERATOR_GRADLE); + } + } + + get writing() { + return this.asWritingTaskGroup({ + async writing({ application }) { + await this.writeFiles({ + blocks: [{ templates: [`${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.code-quality-conventions.gradle`] }], + context: application, + }); + }, + }); + } + + get [BaseApplicationGenerator.WRITING]() { + return this.delegateTasksToBlueprint(() => this.writing); + } + + get postWriting() { + return this.asPostWritingTaskGroup({ + customize({ application, source }) { + const { javaDependencies } = application; + source.addGradleBuildSrcDependencyCatalogLibraries?.([ + { + libraryName: 'jib-plugin', + module: 'com.google.cloud.tools:jib-gradle-plugin', + version: javaDependencies!['jib-maven-plugin'], + scope: 'implementation', + }, + ]); + + source.addGradlePlugin?.({ id: 'jhipster.docker-conventions' }); + }, + }); + } + + get [BaseApplicationGenerator.POST_WRITING]() { + return this.delegateTasksToBlueprint(() => this.postWriting); + } +} diff --git a/generators/gradle/generators/jib/index.ts b/generators/gradle/generators/jib/index.ts new file mode 100644 index 00000000000..58ac334eafa --- /dev/null +++ b/generators/gradle/generators/jib/index.ts @@ -0,0 +1,19 @@ +/** + * 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. + */ +export { default } from './generator.js'; diff --git a/generators/server/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs b/generators/gradle/generators/jib/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs similarity index 100% rename from generators/server/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs rename to generators/gradle/generators/jib/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs From 13f8bb6d7f55fc9f054ca681db90d117829734e1 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 21 Mar 2024 20:00:37 -0300 Subject: [PATCH 3/4] compose with docker:jib and docker:code-quality --- generators/gradle/generators/jib/generator.ts | 2 +- generators/server/__test-support/index.ts | 2 ++ generators/spring-boot/files.ts | 1 - generators/spring-boot/generator.ts | 12 ++++++++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/generators/gradle/generators/jib/generator.ts b/generators/gradle/generators/jib/generator.ts index 8d82103b16e..a79192ad8fd 100644 --- a/generators/gradle/generators/jib/generator.ts +++ b/generators/gradle/generators/jib/generator.ts @@ -37,7 +37,7 @@ export default class CodeQualityGenerator extends BaseApplicationGenerator { return this.asWritingTaskGroup({ async writing({ application }) { await this.writeFiles({ - blocks: [{ templates: [`${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.code-quality-conventions.gradle`] }], + blocks: [{ templates: [`${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.docker-conventions.gradle`] }], context: application, }); }, diff --git a/generators/server/__test-support/index.ts b/generators/server/__test-support/index.ts index ca4b0783585..12a1397b5bb 100644 --- a/generators/server/__test-support/index.ts +++ b/generators/server/__test-support/index.ts @@ -30,6 +30,8 @@ export const mockedGenerators = [ `jhipster:${GENERATOR_DOCKER}`, `jhipster:${GENERATOR_GATLING}`, `jhipster:${GENERATOR_GRADLE}`, + `jhipster:${GENERATOR_GRADLE}:docker`, + `jhipster:${GENERATOR_GRADLE}:jib`, `jhipster:${GENERATOR_GRADLE}:node-gradle`, `jhipster:${GENERATOR_SPRING_CLOUD_STREAM}`, `jhipster:${GENERATOR_LANGUAGES}`, diff --git a/generators/spring-boot/files.ts b/generators/spring-boot/files.ts index 22882a8fabd..c0603a792f5 100644 --- a/generators/spring-boot/files.ts +++ b/generators/spring-boot/files.ts @@ -312,7 +312,6 @@ export const baseServerFiles = { 'gradle/profile_prod.gradle', 'gradle/war.gradle', 'gradle/zipkin.gradle', - `${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.docker-conventions.gradle`, ], }, { diff --git a/generators/spring-boot/generator.ts b/generators/spring-boot/generator.ts index 12c8293aa8c..7d927a4f70e 100644 --- a/generators/spring-boot/generator.ts +++ b/generators/spring-boot/generator.ts @@ -150,6 +150,14 @@ export default class SpringBootGenerator extends BaseApplicationGenerator { const { databaseType, messageBroker, searchEngine, websocket, cacheProvider, buildTool, skipClient, clientFramework } = this.jhipsterConfigWithDefaults; + if (buildTool === 'gradle') { + await this.composeWithJHipster('jhipster:gradle:code-quality'); + await this.composeWithJHipster('jhipster:gradle:jib'); + if (!skipClient && clientFramework !== 'no') { + await this.composeWithJHipster('jhipster:gradle:node-gradle'); + } + } + if (databaseType === SQL) { await this.composeWithJHipster(GENERATOR_SPRING_DATA_RELATIONAL); } else if (databaseType === CASSANDRA) { @@ -173,10 +181,6 @@ export default class SpringBootGenerator extends BaseApplicationGenerator { if ([EHCACHE, CAFFEINE, HAZELCAST, INFINISPAN, MEMCACHED, REDIS].includes(cacheProvider)) { await this.composeWithJHipster(GENERATOR_SPRING_CACHE); } - - if (!skipClient && clientFramework !== 'no' && buildTool === 'gradle') { - await this.composeWithJHipster('jhipster:gradle:node-gradle'); - } }, }); } From f9c0ed99c15fc95cb91840e2c91e02f4a5ff8f93 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Fri, 22 Mar 2024 08:22:21 -0300 Subject: [PATCH 4/4] update snapshots and tests --- .../__snapshots__/generator.spec.ts.snap | 135 +++++++++++++ .../generators/code-quality/generator.spec.ts | 27 +++ .../jib/__snapshots__/generator.spec.ts.snap | 96 ++++++++++ .../gradle/generators/jib/generator.spec.ts | 27 +++ generators/server/__test-support/index.ts | 2 +- generators/server/generator.spec.js | 2 +- .../__snapshots__/generator.spec.ts.snap | 36 ---- .../__snapshots__/generator.spec.ts.snap | 36 ---- .../__snapshots__/generator.spec.ts.snap | 36 ---- .../__snapshots__/generator.spec.ts.snap | 36 ---- .../__snapshots__/generator.spec.ts.snap | 36 ---- .../__snapshots__/generator.spec.ts.snap | 180 ------------------ test/support/tests.js | 14 +- testing/get-generator.ts | 2 +- testing/helpers.ts | 13 ++ 15 files changed, 305 insertions(+), 373 deletions(-) create mode 100644 generators/gradle/generators/code-quality/__snapshots__/generator.spec.ts.snap create mode 100644 generators/gradle/generators/code-quality/generator.spec.ts create mode 100644 generators/gradle/generators/jib/__snapshots__/generator.spec.ts.snap create mode 100644 generators/gradle/generators/jib/generator.spec.ts diff --git a/generators/gradle/generators/code-quality/__snapshots__/generator.spec.ts.snap b/generators/gradle/generators/code-quality/__snapshots__/generator.spec.ts.snap new file mode 100644 index 00000000000..7fd131c4bfd --- /dev/null +++ b/generators/gradle/generators/code-quality/__snapshots__/generator.spec.ts.snap @@ -0,0 +1,135 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`generator - gradle:code-quality with gradle build tool should match files snapshot 1`] = ` +{ + "build.gradle": { + "contents": " +dependencies { +// jhipster-needle-gradle-dependency +} +plugins { +id "jhipster.code-quality-conventions" +// jhipster-needle-gradle-plugins +} +", + "stateCleared": "modified", + }, + "buildSrc/build.gradle": { + "contents": "plugins { + id 'groovy-gradle-plugin' +} + +repositories { + gradlePluginPortal() +} + +dependencies { + implementation libs.modernizer.plugin + implementation libs.nohttp.plugin + implementation libs.sonarqube.plugin + implementation libs.spotless.plugin + // jhipster-needle-gradle-dependency - JHipster will add additional dependencies for convention plugins here + // jhipster-needle-gradle-build-src-dependency - Deprecated: JHipster will add additional dependencies for convention plugins here +} +", + "stateCleared": "modified", + }, + "buildSrc/gradle/libs.versions.toml": { + "contents": "[versions] +# jhipster-needle-gradle-dependency-catalog-version - JHipster will add additional versions for convention plugins heref +# jhipster-needle-gradle-build-src-dependency-catalog-version - Deprecated: JHipster will add additional versions for convention plugins here + +[libraries] +modernizer-plugin = { module = "com.github.andygoossens:gradle-modernizer-plugin", version = "'GRADLE-MODERNIZER-PLUGIN-VERSION'" } +nohttp-plugin = { module = "io.spring.nohttp:nohttp-gradle", version = "'NOHTTP-CHECKSTYLE-VERSION'" } +sonarqube-plugin = { module = "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin", version = "'GRADLE-SONARQUBE-VERSION'" } +spotless-plugin = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "'SPOTLESS-GRADLE-PLUGIN-VERSION'" } +# jhipster-needle-gradle-dependency-catalog-libraries - JHipster will add additional libraries versions + +[plugins] +# jhipster-needle-gradle-dependency-catalog-plugins - JHipster will add additional plugins versions +", + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { + "contents": "plugins { + id "jacoco" + id "org.sonarqube" + id "com.diffplug.spotless" + id "com.github.andygoossens.gradle-modernizer-plugin" + id "io.spring.nohttp" +} + +jacoco { + toolVersion = "\${libs.versions.jacoco.get()}" +} + +jacocoTestReport { + executionData tasks.withType(Test) + classDirectories.from = files(sourceSets.main.output.classesDirs) + sourceDirectories.from = files(sourceSets.main.java.srcDirs) + + reports { + xml.required = true + } +} + +file("sonar-project.properties").withReader { + Properties sonarProperties = new Properties() + sonarProperties.load(it) + + sonarProperties.each { key, value -> + sonarqube { + properties { + property key, value + } + } + } +} + +spotless { + java { + target 'src/*/java/**/*.java' + // removeUnusedImports() + } +} + +modernizer { + failOnViolations = true + includeTestClasses = true +} + +checkstyle { + toolVersion "\${libs.versions.checkstyle.get()}" + configFile file("checkstyle.xml") + checkstyleTest.enabled = false +} + +nohttp { + source.include "build.gradle", "README.md" +} + +// workaround for https://github.com/checkstyle/checkstyle/issues/14123 +configurations.checkstyle { + resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") { + select("com.google.guava:guava:0") + } +}", + "stateCleared": "modified", + }, + "gradle/libs.versions.toml": { + "contents": "[versions] +jacoco = "'JACOCO-MAVEN-PLUGIN-VERSION'" +checkstyle = "'CHECKSTYLE-VERSION'" +# jhipster-needle-gradle-dependency-catalog-version - JHipster will add additional versions for convention plugins heref + +[libraries] +# jhipster-needle-gradle-dependency-catalog-libraries - JHipster will add additional libraries versions + +[plugins] +# jhipster-needle-gradle-dependency-catalog-plugins - JHipster will add additional plugins versions +", + "stateCleared": "modified", + }, +} +`; diff --git a/generators/gradle/generators/code-quality/generator.spec.ts b/generators/gradle/generators/code-quality/generator.spec.ts new file mode 100644 index 00000000000..b7803c9df55 --- /dev/null +++ b/generators/gradle/generators/code-quality/generator.spec.ts @@ -0,0 +1,27 @@ +import { basename, dirname, resolve } from 'path'; +import { fileURLToPath } from 'url'; +import { before, it, describe, expect } from 'esmocha'; + +import { shouldSupportFeatures, testBlueprintSupport } from '../../../../test/support/tests.js'; +import Generator from './index.js'; +import { defaultHelpers as helpers, result } from '../../../../testing/index.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const generator = `${basename(resolve(__dirname, '../../'))}:${basename(__dirname)}`; + +describe(`generator - ${generator}`, () => { + shouldSupportFeatures(Generator); + describe('blueprint support', () => testBlueprintSupport(generator)); + + describe('with gradle build tool', () => { + before(async () => { + await helpers.runJHipster(generator).withGradleBuildTool(); + }); + + it('should match files snapshot', () => { + expect(result.getSnapshot('**/{build.gradle,buildSrc/**,gradle/libs.versions.toml}')).toMatchSnapshot(); + }); + }); +}); diff --git a/generators/gradle/generators/jib/__snapshots__/generator.spec.ts.snap b/generators/gradle/generators/jib/__snapshots__/generator.spec.ts.snap new file mode 100644 index 00000000000..e58a1e36a5b --- /dev/null +++ b/generators/gradle/generators/jib/__snapshots__/generator.spec.ts.snap @@ -0,0 +1,96 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`generator - gradle:jib with gradle build tool should match files snapshot 1`] = ` +{ + "build.gradle": { + "contents": " +dependencies { +// jhipster-needle-gradle-dependency +} +plugins { +id "jhipster.docker-conventions" +// jhipster-needle-gradle-plugins +} +", + "stateCleared": "modified", + }, + "buildSrc/build.gradle": { + "contents": "plugins { + id 'groovy-gradle-plugin' +} + +repositories { + gradlePluginPortal() +} + +dependencies { + implementation libs.jib.plugin + // jhipster-needle-gradle-dependency - JHipster will add additional dependencies for convention plugins here + // jhipster-needle-gradle-build-src-dependency - Deprecated: JHipster will add additional dependencies for convention plugins here +} +", + "stateCleared": "modified", + }, + "buildSrc/gradle/libs.versions.toml": { + "contents": "[versions] +# jhipster-needle-gradle-dependency-catalog-version - JHipster will add additional versions for convention plugins heref +# jhipster-needle-gradle-build-src-dependency-catalog-version - Deprecated: JHipster will add additional versions for convention plugins here + +[libraries] +jib-plugin = { module = "com.google.cloud.tools:jib-gradle-plugin", version = "'JIB-MAVEN-PLUGIN-VERSION'" } +# jhipster-needle-gradle-dependency-catalog-libraries - JHipster will add additional libraries versions + +[plugins] +# jhipster-needle-gradle-dependency-catalog-plugins - JHipster will add additional plugins versions +", + "stateCleared": "modified", + }, + "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { + "contents": "plugins { + id "com.google.cloud.tools.jib" +} + +jib { + from { + image = "java-jre-placeholder" + platforms { + platform { + architecture = "\${findProperty('jibArchitecture') ?: 'amd64'}" + os = "linux" + } + } + } + to { + image = "jhipster:latest" + } + container { + entrypoint = ["bash", "-c", "/entrypoint.sh"] + ports = ["8080"] + environment = [ + SPRING_OUTPUT_ANSI_ENABLED: "ALWAYS", + JHIPSTER_SLEEP: "0" + ] + creationTime = "USE_CURRENT_TIMESTAMP" + user = 1000 + } + extraDirectories { + paths = file("src/main/docker/jib") + permissions = ["/entrypoint.sh": "755"] + } +}", + "stateCleared": "modified", + }, + "gradle/libs.versions.toml": { + "contents": "[versions] +# jhipster-needle-gradle-dependency-catalog-version - JHipster will add additional versions for convention plugins heref + +[libraries] +# jhipster-needle-gradle-dependency-catalog-libraries - JHipster will add additional libraries versions + +[plugins] +# jhipster-needle-gradle-dependency-catalog-plugins - JHipster will add additional plugins versions +", + "stateCleared": "modified", + }, +} +`; diff --git a/generators/gradle/generators/jib/generator.spec.ts b/generators/gradle/generators/jib/generator.spec.ts new file mode 100644 index 00000000000..b7803c9df55 --- /dev/null +++ b/generators/gradle/generators/jib/generator.spec.ts @@ -0,0 +1,27 @@ +import { basename, dirname, resolve } from 'path'; +import { fileURLToPath } from 'url'; +import { before, it, describe, expect } from 'esmocha'; + +import { shouldSupportFeatures, testBlueprintSupport } from '../../../../test/support/tests.js'; +import Generator from './index.js'; +import { defaultHelpers as helpers, result } from '../../../../testing/index.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const generator = `${basename(resolve(__dirname, '../../'))}:${basename(__dirname)}`; + +describe(`generator - ${generator}`, () => { + shouldSupportFeatures(Generator); + describe('blueprint support', () => testBlueprintSupport(generator)); + + describe('with gradle build tool', () => { + before(async () => { + await helpers.runJHipster(generator).withGradleBuildTool(); + }); + + it('should match files snapshot', () => { + expect(result.getSnapshot('**/{build.gradle,buildSrc/**,gradle/libs.versions.toml}')).toMatchSnapshot(); + }); + }); +}); diff --git a/generators/server/__test-support/index.ts b/generators/server/__test-support/index.ts index 12a1397b5bb..0f4b995617c 100644 --- a/generators/server/__test-support/index.ts +++ b/generators/server/__test-support/index.ts @@ -30,7 +30,7 @@ export const mockedGenerators = [ `jhipster:${GENERATOR_DOCKER}`, `jhipster:${GENERATOR_GATLING}`, `jhipster:${GENERATOR_GRADLE}`, - `jhipster:${GENERATOR_GRADLE}:docker`, + `jhipster:${GENERATOR_GRADLE}:code-quality`, `jhipster:${GENERATOR_GRADLE}:jib`, `jhipster:${GENERATOR_GRADLE}:node-gradle`, `jhipster:${GENERATOR_SPRING_CLOUD_STREAM}`, diff --git a/generators/server/generator.spec.js b/generators/server/generator.spec.js index 99b98fb3e6c..0cde217bea0 100644 --- a/generators/server/generator.spec.js +++ b/generators/server/generator.spec.js @@ -78,7 +78,7 @@ describe(`generator - ${generator}`, () => { }); it('should compose with gradle generator', () => { - assert(runResult.mockedGenerators['jhipster:gradle'].calledOnce); + assert(runResult.mockedGenerators['jhipster:gradle'].called); }); it('should not compose with others buildTool generators', () => { assert(runResult.mockedGenerators['jhipster:maven'].notCalled); diff --git a/generators/spring-data-cassandra/__snapshots__/generator.spec.ts.snap b/generators/spring-data-cassandra/__snapshots__/generator.spec.ts.snap index d7de171c54e..936f5cc8cee 100644 --- a/generators/spring-data-cassandra/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-cassandra/__snapshots__/generator.spec.ts.snap @@ -20,12 +20,6 @@ exports[`generator - cassandra gateway-jwt-gradle-enableTranslation(true)-com.my "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -843,12 +837,6 @@ exports[`generator - cassandra microservice-jwt-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1205,12 +1193,6 @@ exports[`generator - cassandra microservice-oauth2-reactive(true)-gradle-enableT "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2037,12 +2019,6 @@ exports[`generator - cassandra monolith-jwt-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2785,12 +2761,6 @@ exports[`generator - cassandra monolith-oauth2-reactive(true)-gradle-enableTrans "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3626,12 +3596,6 @@ exports[`generator - cassandra monolith-session-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/generators/spring-data-couchbase/__snapshots__/generator.spec.ts.snap b/generators/spring-data-couchbase/__snapshots__/generator.spec.ts.snap index 070399d6f48..c42fef3ad5d 100644 --- a/generators/spring-data-couchbase/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-couchbase/__snapshots__/generator.spec.ts.snap @@ -20,12 +20,6 @@ exports[`generator - couchbase gateway-jwt-gradle-enableTranslation(true)-com.my "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -882,12 +876,6 @@ exports[`generator - couchbase microservice-jwt-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1247,12 +1235,6 @@ exports[`generator - couchbase microservice-oauth2-reactive(true)-gradle-enableT "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2109,12 +2091,6 @@ exports[`generator - couchbase monolith-jwt-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2863,12 +2839,6 @@ exports[`generator - couchbase monolith-oauth2-reactive(true)-gradle-enableTrans "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3740,12 +3710,6 @@ exports[`generator - couchbase monolith-session-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/generators/spring-data-elasticsearch/__snapshots__/generator.spec.ts.snap b/generators/spring-data-elasticsearch/__snapshots__/generator.spec.ts.snap index 9e4e98a3271..4b81ebb309c 100644 --- a/generators/spring-data-elasticsearch/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-elasticsearch/__snapshots__/generator.spec.ts.snap @@ -26,12 +26,6 @@ exports[`generator - elasticsearch gateway-jwt-gradle-enableTranslation(true)-co "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -954,12 +948,6 @@ exports[`generator - elasticsearch microservice-jwt-reactive(true)-gradle-enable "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1382,12 +1370,6 @@ exports[`generator - elasticsearch microservice-oauth2-reactive(true)-gradle-ena "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2295,12 +2277,6 @@ exports[`generator - elasticsearch monolith-jwt-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3163,12 +3139,6 @@ exports[`generator - elasticsearch monolith-oauth2-reactive(true)-gradle-enableT "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -4169,12 +4139,6 @@ exports[`generator - elasticsearch monolith-session-reactive(true)-gradle-enable "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/generators/spring-data-mongodb/__snapshots__/generator.spec.ts.snap b/generators/spring-data-mongodb/__snapshots__/generator.spec.ts.snap index ac362217b22..45dae13d0a3 100644 --- a/generators/spring-data-mongodb/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-mongodb/__snapshots__/generator.spec.ts.snap @@ -20,12 +20,6 @@ exports[`generator - mongodb gateway-jwt-gradle-enableTranslation(true)-com.myco "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -840,12 +834,6 @@ exports[`generator - mongodb microservice-jwt-reactive(true)-gradle-enableTransl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1190,12 +1178,6 @@ exports[`generator - mongodb microservice-oauth2-reactive(true)-gradle-enableTra "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2016,12 +1998,6 @@ exports[`generator - mongodb monolith-jwt-reactive(true)-gradle-enableTranslatio "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2740,12 +2716,6 @@ exports[`generator - mongodb monolith-oauth2-reactive(true)-gradle-enableTransla "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3575,12 +3545,6 @@ exports[`generator - mongodb monolith-session-reactive(true)-gradle-enableTransl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/generators/spring-data-neo4j/__snapshots__/generator.spec.ts.snap b/generators/spring-data-neo4j/__snapshots__/generator.spec.ts.snap index 320ff17b260..b66f4d01071 100644 --- a/generators/spring-data-neo4j/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-neo4j/__snapshots__/generator.spec.ts.snap @@ -20,12 +20,6 @@ exports[`generator - neo4j gateway-jwt-gradle-enableTranslation(true)-com.mycomp "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -840,12 +834,6 @@ exports[`generator - neo4j microservice-jwt-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1187,12 +1175,6 @@ exports[`generator - neo4j microservice-oauth2-reactive(true)-gradle-enableTrans "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2016,12 +1998,6 @@ exports[`generator - neo4j monolith-jwt-reactive(true)-gradle-enableTranslation( "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2734,12 +2710,6 @@ exports[`generator - neo4j monolith-oauth2-reactive(true)-gradle-enableTranslati "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3572,12 +3542,6 @@ exports[`generator - neo4j monolith-session-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/generators/spring-data-relational/__snapshots__/generator.spec.ts.snap b/generators/spring-data-relational/__snapshots__/generator.spec.ts.snap index a09b8526e7f..164e92fa4a2 100644 --- a/generators/spring-data-relational/__snapshots__/generator.spec.ts.snap +++ b/generators/spring-data-relational/__snapshots__/generator.spec.ts.snap @@ -14,12 +14,6 @@ exports[`generator - sql gateway-jwt-mysql-gradle-enableTranslation(true)-com.my "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -484,12 +478,6 @@ exports[`generator - sql gateway-jwt-oracle-gradle-enableTranslation(true)-com.m "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -954,12 +942,6 @@ exports[`generator - sql gateway-jwt-postgresql-gradle-enableTranslation(true)-c "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1403,12 +1385,6 @@ exports[`generator - sql gateway-oauth2-mariadb-gradle-enableTranslation(true)-c "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -1801,12 +1777,6 @@ exports[`generator - sql gateway-oauth2-mssql-gradle-enableTranslation(true)-com "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2202,12 +2172,6 @@ exports[`generator - sql microservice-jwt-mariadb-reactive(true)-gradle-enableTr "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -2471,12 +2435,6 @@ exports[`generator - sql microservice-jwt-mssql-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3018,12 +2976,6 @@ exports[`generator - sql microservice-jwt-mysql-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -3556,12 +3508,6 @@ exports[`generator - sql microservice-jwt-oracle-reactive(true)-gradle-enableTra "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -4076,12 +4022,6 @@ exports[`generator - sql microservice-jwt-postgresql-reactive(true)-gradle-enabl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -4608,12 +4548,6 @@ exports[`generator - sql microservice-oauth2-mariadb-reactive(true)-gradle-enabl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -5125,12 +5059,6 @@ exports[`generator - sql microservice-oauth2-mssql-reactive(true)-gradle-enableT "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -5385,12 +5313,6 @@ exports[`generator - sql microservice-oauth2-mysql-reactive(true)-gradle-enableT "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -5657,12 +5579,6 @@ exports[`generator - sql microservice-oauth2-oracle-reactive(true)-gradle-enable "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -5923,12 +5839,6 @@ exports[`generator - sql microservice-oauth2-postgresql-reactive(true)-gradle-en "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -6608,12 +6518,6 @@ exports[`generator - sql monolith-jwt-mariadb-reactive(true)-gradle-enableTransl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -7359,12 +7263,6 @@ exports[`generator - sql monolith-jwt-mssql-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -8104,12 +8002,6 @@ exports[`generator - sql monolith-jwt-mysql-reactive(true)-gradle-enableTranslat "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -8828,12 +8720,6 @@ exports[`generator - sql monolith-jwt-oracle-reactive(true)-gradle-enableTransla "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -9576,12 +9462,6 @@ exports[`generator - sql monolith-jwt-postgresql-reactive(true)-gradle-enableTra "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -10186,12 +10066,6 @@ exports[`generator - sql monolith-oauth2-mariadb-reactive(true)-gradle-enableTra "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -10778,12 +10652,6 @@ exports[`generator - sql monolith-oauth2-mssql-reactive(true)-gradle-enableTrans "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -11394,12 +11262,6 @@ exports[`generator - sql monolith-oauth2-mysql-reactive(true)-gradle-enableTrans "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -12001,12 +11863,6 @@ exports[`generator - sql monolith-oauth2-oracle-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -12590,12 +12446,6 @@ exports[`generator - sql monolith-oauth2-postgresql-reactive(true)-gradle-enable "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -13305,12 +13155,6 @@ exports[`generator - sql monolith-session-mariadb-reactive(true)-gradle-enableTr "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -13984,12 +13828,6 @@ exports[`generator - sql monolith-session-mssql-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -14663,12 +14501,6 @@ exports[`generator - sql monolith-session-mysql-reactive(true)-gradle-enableTran "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -15339,12 +15171,6 @@ exports[`generator - sql monolith-session-oracle-reactive(true)-gradle-enableTra "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, @@ -16015,12 +15841,6 @@ exports[`generator - sql monolith-session-postgresql-reactive(true)-gradle-enabl "build.gradle": { "stateCleared": "modified", }, - "buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle": { - "stateCleared": "modified", - }, - "buildSrc/src/main/groovy/jhipster.docker-conventions.gradle": { - "stateCleared": "modified", - }, "checkstyle.xml": { "stateCleared": "modified", }, diff --git a/test/support/tests.js b/test/support/tests.js index e1d4768608f..5afbc7f78db 100644 --- a/test/support/tests.js +++ b/test/support/tests.js @@ -1,11 +1,11 @@ -import path, { dirname } from 'path'; +import { dirname } from 'path'; import { existsSync } from 'fs'; import { fileURLToPath } from 'url'; import sinon from 'sinon'; import { before, it, describe, after, expect } from 'esmocha'; import { buildJHipster } from '../../cli/index.mjs'; import { GENERATOR_JHIPSTER } from '../../generators/generator-constants.js'; -import { skipPrettierHelpers as helpers } from '../../testing/index.js'; +import { getGenerator, skipPrettierHelpers as helpers } from '../../testing/index.js'; import * as GeneratorList from '../../generators/generator-list.js'; import { PRIORITY_NAMES, ENTITY_PRIORITY_NAMES, PRIORITY_NAMES_LIST } from '../../generators/base-application/priorities.js'; import { WORKSPACES_PRIORITY_NAMES } from '../../generators/base-workspaces/priorities.js'; @@ -231,15 +231,9 @@ export const testBlueprintSupport = (generatorName, options = {}) => { } const { skipSbsBlueprint = false, entity = false } = options; - let generatorPath = path.join(__dirname, `../../generators/${generatorName}/index.cjs`); + const generatorPath = getGenerator(generatorName); if (!existsSync(generatorPath)) { - generatorPath = path.join(__dirname, `../../generators/${generatorName}/index.js`); - } - if (!existsSync(generatorPath)) { - generatorPath = path.join(__dirname, `../../generators/${generatorName}/index.ts`); - } - if (!existsSync(generatorPath)) { - generatorPath = path.join(__dirname, `../../generators/${generatorName}/index.js`); + throw new Error(`Generator ${generatorName} not found.`); } const addSpies = generator => { const { taskPrefix = '' } = generator.features; diff --git a/testing/get-generator.ts b/testing/get-generator.ts index 3c576f7b3fa..9dc19e94c82 100644 --- a/testing/get-generator.ts +++ b/testing/get-generator.ts @@ -6,7 +6,7 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); export const getGeneratorFolder = (generatorName: string) => { - return resolve(__dirname, '../generators', generatorName); + return resolve(__dirname, '../generators', generatorName.split(':').join('/generators/')); }; const getGenerator = (generatorName: string) => { diff --git a/testing/helpers.ts b/testing/helpers.ts index a04c26fc892..a363196c19f 100644 --- a/testing/helpers.ts +++ b/testing/helpers.ts @@ -221,6 +221,19 @@ class JHipsterRunContext extends RunContext { return this.withSharedData({ sharedApplication: this.sharedApplication }); } + withGradleBuildTool(): this { + return this.withFiles({ + 'build.gradle': ` +dependencies { +// jhipster-needle-gradle-dependency +} +plugins { +// jhipster-needle-gradle-plugins +} +`, + }).withJHipsterConfig({ buildTool: 'gradle' }); + } + private withSharedData(sharedData: Record): this { if (!this.sharedData) { const applicationId = 'test-application';