Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow explicit java dependency removal in module #2500

Merged
merged 1 commit into from
Jul 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand All @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(""))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<JavaDependencyVersion> versions;
private final Collection<DependencyId> dependenciesToRemove;
private final Collection<JavaDependencyManagement> dependenciesManagement;
private final Collection<DirectJavaDependency> dependencies;

private JHipsterModuleJavaDependencies(JHipsterModuleJavaDependenciesBuilder builder) {
versions = builder.versions;
dependenciesToRemove = builder.dependenciesToRemove;
dependenciesManagement = builder.dependenciesManagement;
dependencies = builder.dependencies;
}
Expand All @@ -36,6 +39,7 @@ public JavaBuildCommands buildChanges(CurrentJavaDependenciesVersions currentVer
return Stream
.of(
settedVersionsCommands(),
dependenciesToRemoveCommands(),
dependenciesManagementChanges(currentVersions, projectDependencies),
dependenciesChanges(currentVersions, projectDependencies)
)
Expand All @@ -51,6 +55,14 @@ private Function<JavaDependencyVersion, JavaBuildCommand> toSetVersionCommand()
return (Function<JavaDependencyVersion, JavaBuildCommand>) SetVersion::new;
}

private Stream<JavaBuildCommands> dependenciesToRemoveCommands() {
return Stream.of(new JavaBuildCommands(dependenciesToRemove.stream().map(toDependencyToRemove()).toList()));
}

private Function<DependencyId, JavaBuildCommand> toDependencyToRemove() {
return (Function<DependencyId, JavaBuildCommand>) RemoveDirectJavaDependency::new;
}

private Stream<JavaBuildCommands> dependenciesManagementChanges(
CurrentJavaDependenciesVersions currentVersions,
ProjectJavaDependencies projectDependencies
Expand All @@ -67,8 +79,11 @@ private Stream<JavaBuildCommands> dependenciesChanges(

public static class JHipsterModuleJavaDependenciesBuilder {

private static final String DEPENDENCY = "dependency";

private final JHipsterModuleBuilder module;
private final Collection<JavaDependencyVersion> versions = new ArrayList<>();
private final Collection<DependencyId> dependenciesToRemove = new ArrayList<>();
private final Collection<DirectJavaDependency> dependencies = new ArrayList<>();
private final Collection<JavaDependencyManagement> dependenciesManagement = new ArrayList<>();

Expand All @@ -78,34 +93,42 @@ 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);

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));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,46 @@ void shouldBuildModule() {
</plugin>
"""
)
.notContaining(
"""
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
"""
)
.notContaining(
"""
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
"""
)
.notContaining(
"""
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
"""
)
.notContaining(
"""
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
"""
)
.and()
.createFile("src/main/java/com/jhipster/test/MyappApp.java")
.containing("class MyappApp")
Expand Down
Loading