From 6d87903fc6e0a1b5d27066d9eae90c0490266fc1 Mon Sep 17 00:00:00 2001 From: Colin DAMON Date: Mon, 11 Jul 2022 10:20:45 +0200 Subject: [PATCH] Explicitly remove java dependency --- .../arch/domain/ArchUnitModuleFactory.java | 2 +- .../domain/FrontendMavenModuleFactory.java | 4 +- .../domain/SpringdocModuleFactory.java | 2 +- .../domain/SpringBootCoreModuleFactory.java | 39 +++++++++------ .../domain/CucumberModuleFactory.java | 12 ++--- .../mariadb/domain/MariaDBModuleFactory.java | 2 +- .../mysql/domain/MySQLModuleFactory.java | 2 +- .../domain/PostgresqlModuleFactory.java | 2 +- .../domain/SQLCommonModuleBuilder.java | 8 +-- .../domain/DevToolsModuleFactory.java | 2 +- .../aop/domain/AopLoggingModuleFactory.java | 2 +- .../oauth2/domain/OAuth2ModuleFactory.java | 8 +-- .../SpringCloudConfigModuleFactory.java | 6 +-- .../consul/domain/ConsulModuleFactory.java | 8 +-- .../eureka/domain/EurekaModuleFactory.java | 6 +-- .../gateway/domain/GatewayModuleFactory.java | 6 +-- .../lite/module/domain/JHipsterModule.java | 5 ++ .../JHipsterModuleJavaDependencies.java | 41 +++++++++++---- .../SpringBootCoreModuleFactoryTest.java | 50 +++++++++++++++++-- .../module/domain/JHipsterModulesFixture.java | 15 +++--- ...leSystemJHipsterModulesRepositoryTest.java | 8 ++- 21 files changed, 156 insertions(+), 74 deletions(-) diff --git a/src/main/java/tech/jhipster/lite/generator/server/javatool/arch/domain/ArchUnitModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/javatool/arch/domain/ArchUnitModuleFactory.java index c6ff85b2d1a..5380dcbb7f4 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/javatool/arch/domain/ArchUnitModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/javatool/arch/domain/ArchUnitModuleFactory.java @@ -39,7 +39,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { .add(SOURCE.template("HexagonalArchTest.java"), testDestination.append("HexagonalArchTest.java")) .and() .javaDependencies() - .dependency(archUnitDependency()) + .addDependency(archUnitDependency()) .and() .optionalReplacements() .in("src/test/resources/logback.xml") diff --git a/src/main/java/tech/jhipster/lite/generator/server/javatool/frontendmaven/domain/FrontendMavenModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/javatool/frontendmaven/domain/FrontendMavenModuleFactory.java index 86a9d42c7c0..a7c5eac7e12 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/javatool/frontendmaven/domain/FrontendMavenModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/javatool/frontendmaven/domain/FrontendMavenModuleFactory.java @@ -27,8 +27,8 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { //@formatter:off return moduleBuilder(properties) .javaDependencies() - .version(javaDependencyVersion("node", NODE_VERSION)) - .version(javaDependencyVersion("npm", NPM_VERSION)) + .setVersion(javaDependencyVersion("node", NODE_VERSION)) + .setVersion(javaDependencyVersion("npm", NPM_VERSION)) .and() .javaBuildPlugins() .plugin(checksumPlugin()) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/apidocumentation/springdoc/domain/SpringdocModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/apidocumentation/springdoc/domain/SpringdocModuleFactory.java index eaa0650b233..dcf20fd6a83 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/apidocumentation/springdoc/domain/SpringdocModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/apidocumentation/springdoc/domain/SpringdocModuleFactory.java @@ -71,7 +71,7 @@ private JHipsterModule buildModule( .put("apiExternalDocUrl", "") .and() .javaDependencies() - .dependency(springdocJavaDependency) + .addDependency(springdocJavaDependency) .and() .files() .add(SOURCE.template(srcSpringdocJavaFile), mainDestination.append(SPRINGDOC_CONFIG_JAVA_FILE)) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactory.java index 16582e53438..d6223adb8e0 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactory.java @@ -20,6 +20,9 @@ public class SpringBootCoreModuleFactory { private static final GroupId SRPING_BOOT_GROUP = groupId("org.springframework.boot"); private static final String APPLICATION_PROPERTIES = "application.properties"; + private static final String JUNIT_GROUP = "org.junit.jupiter"; + private static final String MOCKITO_GROUP = "org.mockito"; + private static final JHipsterDestination MAIN_RESOURCE_DESTINATION = to("src/main/resources"); private static final JHipsterDestination MAIN_CONFIG_DESTINATION = MAIN_RESOURCE_DESTINATION.append("config"); private static final JHipsterDestination TEST_RESOURCES_DESTINATION = to("src/test/resources"); @@ -38,11 +41,15 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { .put("mainClass", mainClassName) .and() .javaDependencies() - .dependencyManagement(springBootBom()) - .dependency(SRPING_BOOT_GROUP, artifactId("spring-boot-starter")) - .dependency(springBootConfigurationProcessor()) - .dependency(groupId("org.apache.commons"), artifactId("commons-lang3")) - .dependency(springBootTest()) + .removeDependency(dependencyId(JUNIT_GROUP, "junit-jupiter-engine")) + .removeDependency(dependencyId(JUNIT_GROUP, "junit-jupiter-params")) + .removeDependency(dependencyId("org.assertj", "assertj-core")) + .removeDependency(dependencyId(MOCKITO_GROUP, "mockito-junit-jupiter")) + .addDependencyManagement(springBootBom()) + .addDependency(SRPING_BOOT_GROUP, artifactId("spring-boot-starter")) + .addDependency(springBootConfigurationProcessor()) + .addDependency(groupId("org.apache.commons"), artifactId("commons-lang3")) + .addDependency(springBootTest()) .and() .javaBuildPlugins() .pluginManagement(springBootPluginManagement()) @@ -94,17 +101,17 @@ private JavaBuildPlugin springBootPluginManagement() { .versionSlug("spring-boot") .additionalElements( """ - - - - repackage - - - - - ${start-class} - - """ + + + + repackage + + + + + ${start-class} + + """ ) .build(); } diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/cucumber/domain/CucumberModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/cucumber/domain/CucumberModuleFactory.java index 57ef413e90f..5990d59eb06 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/cucumber/domain/CucumberModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/cucumber/domain/CucumberModuleFactory.java @@ -53,12 +53,12 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { .add(SOURCE.file("gitkeep"), to("src/test/features/.gitkeep")) .and() .javaDependencies() - .dependency(cucumberJunitDependency()) - .dependency(cucumberJavaDependency()) - .dependency(cucumberSpringDependency()) - .dependency(junitVintageDependency()) - .dependency(testNgDependency()) - .dependency(awaitilityDependency()) + .addDependency(cucumberJunitDependency()) + .addDependency(cucumberJavaDependency()) + .addDependency(cucumberSpringDependency()) + .addDependency(junitVintageDependency()) + .addDependency(testNgDependency()) + .addDependency(awaitilityDependency()) .and(); //@formatter:on diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mariadb/domain/MariaDBModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mariadb/domain/MariaDBModuleFactory.java index 6acb6f2c127..7b3c236cbde 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mariadb/domain/MariaDBModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mariadb/domain/MariaDBModuleFactory.java @@ -24,7 +24,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { return sqlCommonModuleBuilder(properties, DatabaseType.MARIADB, dockerImages.get("mariadb"), documentationTitle("MariaDB")) .javaDependencies() - .dependency(groupId("org.mariadb.jdbc"), artifactId("mariadb-java-client")) + .addDependency(groupId("org.mariadb.jdbc"), artifactId("mariadb-java-client")) .and() .springMainProperties() .set(propertyKey("spring.datasource.url"), propertyValue("jdbc:mariadb://localhost:3306/" + properties.projectBaseName().name())) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mysql/domain/MySQLModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mysql/domain/MySQLModuleFactory.java index 8dd2bd27033..da9768d0fd0 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mysql/domain/MySQLModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/mysql/domain/MySQLModuleFactory.java @@ -24,7 +24,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { return sqlCommonModuleBuilder(properties, DatabaseType.MYSQL, dockerImages.get("mysql"), documentationTitle("MySQL")) .javaDependencies() - .dependency(groupId("mysql"), artifactId("mysql-connector-java")) + .addDependency(groupId("mysql"), artifactId("mysql-connector-java")) .and() .springMainProperties() .set(propertyKey("spring.datasource.url"), propertyValue("jdbc:mysql://localhost:3306/" + properties.projectBaseName().name())) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/postgresql/domain/PostgresqlModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/postgresql/domain/PostgresqlModuleFactory.java index a8c4971b2ea..2025a460a14 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/postgresql/domain/PostgresqlModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/postgresql/domain/PostgresqlModuleFactory.java @@ -41,7 +41,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { ) .and() .javaDependencies() - .dependency(groupId(ORG_POSTGRESQL), artifactId("postgresql")) + .addDependency(groupId(ORG_POSTGRESQL), artifactId("postgresql")) .and() .springMainProperties() .set(propertyKey("spring.datasource.url"), propertyValue("jdbc:postgresql://localhost:5432/" + properties.projectBaseName().name())) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/sqlcommon/domain/SQLCommonModuleBuilder.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/sqlcommon/domain/SQLCommonModuleBuilder.java index d27cf8e445e..ff9ead1d5df 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/database/sqlcommon/domain/SQLCommonModuleBuilder.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/database/sqlcommon/domain/SQLCommonModuleBuilder.java @@ -56,10 +56,10 @@ public static JHipsterModuleBuilder sqlCommonModuleBuilder( .add(source.template(databaseId + ".yml"), toSrcMainDocker().append(databaseId + ".yml")) .and() .javaDependencies() - .dependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter-data-jpa")) - .dependency(groupId("com.zaxxer"), artifactId("HikariCP")) - .dependency(groupId(ORG_HIBERNATE), artifactId("hibernate-core")) - .dependency(testContainer(databaseId)) + .addDependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter-data-jpa")) + .addDependency(groupId("com.zaxxer"), artifactId("HikariCP")) + .addDependency(groupId(ORG_HIBERNATE), artifactId("hibernate-core")) + .addDependency(testContainer(databaseId)) .and() .springMainProperties() .set(propertyKey("spring.datasource.password"), propertyValue("")) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/devtools/domain/DevToolsModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/devtools/domain/DevToolsModuleFactory.java index 7b1ea60fe96..3c14d7dd7c5 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/devtools/domain/DevToolsModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/devtools/domain/DevToolsModuleFactory.java @@ -34,7 +34,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { } private void appendDependencies(JHipsterModuleBuilder builder) { - builder.javaDependencies().dependency(SPRING_GROUP, artifactId("spring-boot-devtools")); + builder.javaDependencies().addDependency(SPRING_GROUP, artifactId("spring-boot-devtools")); } private void appendSpringProperties(JHipsterModuleBuilder builder) { diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/logging/aop/domain/AopLoggingModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/logging/aop/domain/AopLoggingModuleFactory.java index 6f5481e7e23..021b0ee14cc 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/logging/aop/domain/AopLoggingModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/logging/aop/domain/AopLoggingModuleFactory.java @@ -20,7 +20,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { //@formatter:off return moduleBuilder(properties) .javaDependencies() - .dependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter-aop")) + .addDependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter-aop")) .and() .files() .batch(SOURCE, toSrcMainJava().append(properties.basePackage().path()).append(AOP_FOLDER)) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/mvc/security/oauth2/domain/OAuth2ModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/mvc/security/oauth2/domain/OAuth2ModuleFactory.java index 04c2f126d18..2b25176cef8 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/mvc/security/oauth2/domain/OAuth2ModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/mvc/security/oauth2/domain/OAuth2ModuleFactory.java @@ -121,10 +121,10 @@ private void appendJavaFiles(JHipsterModuleBuilder builder, JHipsterModuleProper private void appendDependencies(JHipsterModuleBuilder builder) { builder .javaDependencies() - .dependency(SPRING_GROUP, artifactId("spring-boot-starter-security")) - .dependency(SPRING_GROUP, artifactId("spring-boot-starter-oauth2-client")) - .dependency(SPRING_GROUP, artifactId("spring-boot-starter-oauth2-resource-server")) - .dependency(springSecurityTest()); + .addDependency(SPRING_GROUP, artifactId("spring-boot-starter-security")) + .addDependency(SPRING_GROUP, artifactId("spring-boot-starter-oauth2-client")) + .addDependency(SPRING_GROUP, artifactId("spring-boot-starter-oauth2-resource-server")) + .addDependency(springSecurityTest()); } private void appendSpringProperties(JHipsterModuleBuilder builder) { diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/configclient/domain/SpringCloudConfigModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/configclient/domain/SpringCloudConfigModuleFactory.java index c4a5d228952..333d7fb54c3 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/configclient/domain/SpringCloudConfigModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/configclient/domain/SpringCloudConfigModuleFactory.java @@ -58,9 +58,9 @@ private JHipsterModuleBuilder initBuilder(JHipsterModuleProperties properties) { .put("base64JwtSecret", Base64Utils.getBase64Secret()) .and() .javaDependencies() - .dependencyManagement(springCloudDependenciesManagement()) - .dependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) - .dependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-config")) + .addDependencyManagement(springCloudDependenciesManagement()) + .addDependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) + .addDependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-config")) .and() .files() .add(SOURCE.template("jhipster-registry.yml"), toSrcMainDocker().append("jhipster-registry.yml")) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/consul/domain/ConsulModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/consul/domain/ConsulModuleFactory.java index 6e55b0abbba..1019e33635c 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/consul/domain/ConsulModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/consul/domain/ConsulModuleFactory.java @@ -49,10 +49,10 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { .add(SOURCE.append("docker").template("application.config.yml.mustache"), toSrcMainDocker().append("central-server-config").append("application.yml")) .and() .javaDependencies() - .dependencyManagement(springCloudDependencyManagement()) - .dependency(springCloudStarterBootstrapDependency()) - .dependency(springCloudConsulDiscoveryDependency()) - .dependency(springCloudConsulConfigDependency()) + .addDependencyManagement(springCloudDependencyManagement()) + .addDependency(springCloudStarterBootstrapDependency()) + .addDependency(springCloudConsulDiscoveryDependency()) + .addDependency(springCloudConsulConfigDependency()) .and() .springMainBootstrapProperties() .set(propertyKey("spring.application.name"), propertyValue(baseName)) diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/eureka/domain/EurekaModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/eureka/domain/EurekaModuleFactory.java index 793eaf64bf4..412e18ecfe9 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/eureka/domain/EurekaModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/eureka/domain/EurekaModuleFactory.java @@ -37,9 +37,9 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { .put("base64JwtSecret", Base64Utils.getBase64Secret()) .and() .javaDependencies() - .dependencyManagement(springCloudDependenciesManagement()) - .dependency( SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) - .dependency( + .addDependencyManagement(springCloudDependenciesManagement()) + .addDependency( SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) + .addDependency( SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-netflix-eureka-client"), versionSlug("spring-cloud-netflix-eureka-client") diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/gateway/domain/GatewayModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/gateway/domain/GatewayModuleFactory.java index 6877e506abd..d026b02a0d8 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/gateway/domain/GatewayModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/springcloud/gateway/domain/GatewayModuleFactory.java @@ -25,9 +25,9 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { //@formatter:off return moduleBuilder(properties) .javaDependencies() - .dependencyManagement(springCloudDependenciesManagement()) - .dependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) - .dependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-gateway")) + .addDependencyManagement(springCloudDependenciesManagement()) + .addDependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-bootstrap")) + .addDependency(SPRING_CLOUD_GROUP, artifactId("spring-cloud-starter-gateway")) .and() .springMainBootstrapProperties() .set(propertyKey("spring.application.name"), propertyValue(properties.projectBaseName().get())) diff --git a/src/main/java/tech/jhipster/lite/module/domain/JHipsterModule.java b/src/main/java/tech/jhipster/lite/module/domain/JHipsterModule.java index 30fb62d1603..e652a71babc 100644 --- a/src/main/java/tech/jhipster/lite/module/domain/JHipsterModule.java +++ b/src/main/java/tech/jhipster/lite/module/domain/JHipsterModule.java @@ -19,6 +19,7 @@ import tech.jhipster.lite.module.domain.javabuildplugin.JHipsterModuleJavaBuildPlugin.JHipsterModuleJavaBuildPluginBuilder; import tech.jhipster.lite.module.domain.javabuildplugin.JavaBuildPlugin; import tech.jhipster.lite.module.domain.javabuildplugin.JavaBuildPlugin.JavaBuildPluginGroupIdBuilder; +import tech.jhipster.lite.module.domain.javadependency.DependencyId; import tech.jhipster.lite.module.domain.javadependency.JHipsterModuleJavaDependencies; import tech.jhipster.lite.module.domain.javadependency.JHipsterModuleJavaDependencies.JHipsterModuleJavaDependenciesBuilder; import tech.jhipster.lite.module.domain.javadependency.JavaDependency; @@ -118,6 +119,10 @@ public static JavaDependencyVersion javaDependencyVersion(String slug, String ve return new JavaDependencyVersion(slug, version); } + public static DependencyId dependencyId(String groupId, String artifactId) { + return new DependencyId(groupId(groupId), artifactId(artifactId)); + } + public static JavaBuildPluginGroupIdBuilder javaBuildPlugin() { return JavaBuildPlugin.builder(); } diff --git a/src/main/java/tech/jhipster/lite/module/domain/javadependency/JHipsterModuleJavaDependencies.java b/src/main/java/tech/jhipster/lite/module/domain/javadependency/JHipsterModuleJavaDependencies.java index 21c90ff9d8d..8d7985cd128 100644 --- a/src/main/java/tech/jhipster/lite/module/domain/javadependency/JHipsterModuleJavaDependencies.java +++ b/src/main/java/tech/jhipster/lite/module/domain/javadependency/JHipsterModuleJavaDependencies.java @@ -11,16 +11,19 @@ import tech.jhipster.lite.module.domain.javabuild.VersionSlug; import tech.jhipster.lite.module.domain.javabuild.command.JavaBuildCommand; import tech.jhipster.lite.module.domain.javabuild.command.JavaBuildCommands; +import tech.jhipster.lite.module.domain.javabuild.command.RemoveDirectJavaDependency; import tech.jhipster.lite.module.domain.javabuild.command.SetVersion; public class JHipsterModuleJavaDependencies { private final Collection versions; + private final Collection dependenciesToRemove; private final Collection dependenciesManagement; private final Collection dependencies; private JHipsterModuleJavaDependencies(JHipsterModuleJavaDependenciesBuilder builder) { versions = builder.versions; + dependenciesToRemove = builder.dependenciesToRemove; dependenciesManagement = builder.dependenciesManagement; dependencies = builder.dependencies; } @@ -36,6 +39,7 @@ public JavaBuildCommands buildChanges(CurrentJavaDependenciesVersions currentVer return Stream .of( settedVersionsCommands(), + dependenciesToRemoveCommands(), dependenciesManagementChanges(currentVersions, projectDependencies), dependenciesChanges(currentVersions, projectDependencies) ) @@ -51,6 +55,14 @@ private Function toSetVersionCommand() return (Function) SetVersion::new; } + private Stream dependenciesToRemoveCommands() { + return Stream.of(new JavaBuildCommands(dependenciesToRemove.stream().map(toDependencyToRemove()).toList())); + } + + private Function toDependencyToRemove() { + return (Function) RemoveDirectJavaDependency::new; + } + private Stream dependenciesManagementChanges( CurrentJavaDependenciesVersions currentVersions, ProjectJavaDependencies projectDependencies @@ -67,8 +79,11 @@ private Stream dependenciesChanges( public static class JHipsterModuleJavaDependenciesBuilder { + private static final String DEPENDENCY = "dependency"; + private final JHipsterModuleBuilder module; private final Collection versions = new ArrayList<>(); + private final Collection dependenciesToRemove = new ArrayList<>(); private final Collection dependencies = new ArrayList<>(); private final Collection dependenciesManagement = new ArrayList<>(); @@ -78,25 +93,33 @@ private JHipsterModuleJavaDependenciesBuilder(JHipsterModuleBuilder module) { this.module = module; } - public JHipsterModuleJavaDependenciesBuilder dependency(GroupId groupId, ArtifactId artifactId) { - return dependency(groupId, artifactId, null); + public JHipsterModuleJavaDependenciesBuilder removeDependency(DependencyId dependency) { + Assert.notNull(DEPENDENCY, dependency); + + dependenciesToRemove.add(dependency); + + return this; + } + + public JHipsterModuleJavaDependenciesBuilder addDependency(GroupId groupId, ArtifactId artifactId) { + return addDependency(groupId, artifactId, null); } - public JHipsterModuleJavaDependenciesBuilder dependency(GroupId groupId, ArtifactId artifactId, VersionSlug versionSlug) { + public JHipsterModuleJavaDependenciesBuilder addDependency(GroupId groupId, ArtifactId artifactId, VersionSlug versionSlug) { JavaDependency dependency = JavaDependency.builder().groupId(groupId).artifactId(artifactId).versionSlug(versionSlug).build(); - return dependency(dependency); + return addDependency(dependency); } - public JHipsterModuleJavaDependenciesBuilder dependency(JavaDependency dependency) { - Assert.notNull("dependency", dependency); + public JHipsterModuleJavaDependenciesBuilder addDependency(JavaDependency dependency) { + Assert.notNull(DEPENDENCY, dependency); dependencies.add(new DirectJavaDependency(dependency)); return this; } - public JHipsterModuleJavaDependenciesBuilder version(JavaDependencyVersion version) { + public JHipsterModuleJavaDependenciesBuilder setVersion(JavaDependencyVersion version) { Assert.notNull("version", version); versions.add(version); @@ -104,8 +127,8 @@ public JHipsterModuleJavaDependenciesBuilder version(JavaDependencyVersion versi return this; } - public JHipsterModuleJavaDependenciesBuilder dependencyManagement(JavaDependency dependency) { - Assert.notNull("dependency", dependency); + public JHipsterModuleJavaDependenciesBuilder addDependencyManagement(JavaDependency dependency) { + Assert.notNull(DEPENDENCY, dependency); dependenciesManagement.add(new JavaDependencyManagement(dependency)); diff --git a/src/test/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactoryTest.java b/src/test/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactoryTest.java index e1adba2e3af..aea85ce0706 100644 --- a/src/test/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactoryTest.java +++ b/src/test/java/tech/jhipster/lite/generator/server/springboot/core/domain/SpringBootCoreModuleFactoryTest.java @@ -56,11 +56,11 @@ void shouldBuildModule() { ) .containing( """ - - org.apache.commons - commons-lang3 - - """ + + org.apache.commons + commons-lang3 + + """ ) .containing( """ @@ -98,6 +98,46 @@ void shouldBuildModule() { """ ) + .notContaining( + """ + + org.junit.jupiter + junit-jupiter-engine + ${junit-jupiter.version} + test + + """ + ) + .notContaining( + """ + + org.junit.jupiter + junit-jupiter-params + ${junit-jupiter.version} + test + + """ + ) + .notContaining( + """ + + org.assertj + assertj-core + ${assertj.version} + test + + """ + ) + .notContaining( + """ + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + """ + ) .and() .createFile("src/main/java/com/jhipster/test/MyappApp.java") .containing("class MyappApp") diff --git a/src/test/java/tech/jhipster/lite/module/domain/JHipsterModulesFixture.java b/src/test/java/tech/jhipster/lite/module/domain/JHipsterModulesFixture.java index 991ce5444b0..1d468164719 100644 --- a/src/test/java/tech/jhipster/lite/module/domain/JHipsterModulesFixture.java +++ b/src/test/java/tech/jhipster/lite/module/domain/JHipsterModulesFixture.java @@ -65,13 +65,14 @@ public static JHipsterModule module() { .and() .and() .javaDependencies() - .version(new JavaDependencyVersion("dummy-dependency", "4.5.8")) - .dependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter")) - .dependency(groupId("org.zalando"), artifactId("problem-spring-web"), versionSlug("problem-spring")) - .dependency(groupId("io.jsonwebtoken"), artifactId("jjwt-api"), versionSlug("jjwt.version")) - .dependency(optionalTestDependency()) - .dependencyManagement(springBootDependencyManagement()) - .dependencyManagement(springBootDefaultTypeDependencyManagement()) + .setVersion(javaDependencyVersion("dummy-dependency", "4.5.8")) + .removeDependency(dependencyId("net.logstash.logback", "logstash-logback-encoder")) + .addDependency(groupId("org.springframework.boot"), artifactId("spring-boot-starter")) + .addDependency(groupId("org.zalando"), artifactId("problem-spring-web"), versionSlug("problem-spring")) + .addDependency(groupId("io.jsonwebtoken"), artifactId("jjwt-api"), versionSlug("jjwt.version")) + .addDependency(optionalTestDependency()) + .addDependencyManagement(springBootDependencyManagement()) + .addDependencyManagement(springBootDefaultTypeDependencyManagement()) .and() .javaBuildPlugins() .pluginManagement(mavenEnforcerPluginManagement()) diff --git a/src/test/java/tech/jhipster/lite/module/infrastructure/secondary/FileSystemJHipsterModulesRepositoryTest.java b/src/test/java/tech/jhipster/lite/module/infrastructure/secondary/FileSystemJHipsterModulesRepositoryTest.java index 37d333bcc43..30a3642e11f 100644 --- a/src/test/java/tech/jhipster/lite/module/infrastructure/secondary/FileSystemJHipsterModulesRepositoryTest.java +++ b/src/test/java/tech/jhipster/lite/module/infrastructure/secondary/FileSystemJHipsterModulesRepositoryTest.java @@ -38,7 +38,13 @@ void shouldApplyModule() { .containing("com.test.myapp") .and() .createFile("pom.xml") - .containing("4.5.8") + .containing("4.5.8") + .notContaining(""" + + net.logstash.logback + logstash-logback-encoder + + """) .containing( """