From 1b4164c5e9445a9d8c05fecb5d2d24ce216e08e7 Mon Sep 17 00:00:00 2001 From: Renan Franca Date: Mon, 27 Jan 2025 09:14:30 -0300 Subject: [PATCH 1/3] test: should return the module rank in the RestJHipsterLandscapeTest.java --- .../infrastructure/primary/RestJHipsterLandscapeTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeTest.java b/src/test/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeTest.java index fc2a225e73e..ffc59936642 100644 --- a/src/test/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeTest.java +++ b/src/test/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeTest.java @@ -1,6 +1,7 @@ package tech.jhipster.lite.module.infrastructure.primary; import static org.assertj.core.api.Assertions.*; +import static tech.jhipster.lite.module.domain.resource.JHipsterModuleRank.*; import static tech.jhipster.lite.module.domain.resource.JHipsterModulesResourceFixture.*; import org.junit.jupiter.api.Test; @@ -20,6 +21,7 @@ void shouldSerializeToJson() { .slug("second") .feature("my-feature") .moduleDependency("first") + .rank(RANK_S) .build(); assertThat( @@ -33,9 +35,9 @@ private String json() { return """ {\ "levels":[\ - {"elements":[{"type":"MODULE","slug":"first","operation":"operation","properties":{PROPERTIES_DEFINITION}}]},\ + {"elements":[{"type":"MODULE","slug":"first","operation":"operation","properties":{PROPERTIES_DEFINITION},"rank":"RANK_D"}]},\ {"elements":[{"type":"FEATURE","slug":"my-feature","modules":\ - [{"type":"MODULE","slug":"second","operation":"operation","properties":{PROPERTIES_DEFINITION},"dependencies":[{"type":"MODULE","slug":"first"}]}]}]}\ + [{"type":"MODULE","slug":"second","operation":"operation","properties":{PROPERTIES_DEFINITION},"dependencies":[{"type":"MODULE","slug":"first"}],"rank":"RANK_S"}]}]}\ ]\ }\ """.replace("{PROPERTIES_DEFINITION}", RestJHipsterModulePropertiesDefinitionTest.json()); From 2d55a586148bbef63672ab7c26b9d177a573fc45 Mon Sep 17 00:00:00 2001 From: Renan Franca Date: Mon, 27 Jan 2025 09:55:32 -0300 Subject: [PATCH 2/3] feat: return the module rank in the RestJHipsterLandscape.java --- .../domain/landscape/JHipsterLandscape.java | 1 + .../landscape/JHipsterLandscapeLevels.java | 8 ++------ .../landscape/JHipsterLandscapeModule.java | 18 ++++++++++++++++++ .../primary/RestJHipsterLandscapeModule.java | 18 +++++++++++++++++- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscape.java b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscape.java index 6672ad553ea..41708ca2b20 100644 --- a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscape.java +++ b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscape.java @@ -73,6 +73,7 @@ private JHipsterLandscapeModule moduleWithoutNestedDependencies(JHipsterLandscap .module(module.slug()) .operation(module.operation()) .propertiesDefinition(module.propertiesDefinition()) + .rank(module.rank()) .dependencies(dependenciesWithoutNested(module, knownDependencies)); } diff --git a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeLevels.java b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeLevels.java index 8dffcda4a6c..52223d30ed3 100644 --- a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeLevels.java +++ b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeLevels.java @@ -1,12 +1,7 @@ package tech.jhipster.lite.module.domain.landscape; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Consumer; import java.util.function.Function; @@ -76,6 +71,7 @@ private static JHipsterLandscapeModule landscapeModule(JHipsterModuleResource re .module(resource.slug()) .operation(resource.apiDoc().operation()) .propertiesDefinition(resource.propertiesDefinition()) + .rank(resource.rank()) .dependencies(resource.organization().dependencies()); } diff --git a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeModule.java b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeModule.java index ff89124ce34..fc8530c8548 100644 --- a/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeModule.java +++ b/src/main/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeModule.java @@ -12,6 +12,7 @@ import tech.jhipster.lite.module.domain.JHipsterSlug; import tech.jhipster.lite.module.domain.resource.JHipsterModuleOperation; import tech.jhipster.lite.module.domain.resource.JHipsterModulePropertiesDefinition; +import tech.jhipster.lite.module.domain.resource.JHipsterModuleRank; import tech.jhipster.lite.shared.error.domain.Assert; import tech.jhipster.lite.shared.generation.domain.ExcludeFromGeneratedCodeCoverage; @@ -21,6 +22,7 @@ public final class JHipsterLandscapeModule implements JHipsterLandscapeElement { private final JHipsterModuleOperation operation; private final JHipsterModulePropertiesDefinition propertiesDefinition; private final Optional dependencies; + private final JHipsterModuleRank rank; private JHipsterLandscapeModule(JHipsterLandscapeModuleBuilder builder) { Assert.notNull("module", builder.module); @@ -31,6 +33,7 @@ private JHipsterLandscapeModule(JHipsterLandscapeModuleBuilder builder) { operation = builder.operation; propertiesDefinition = builder.propertiesDefinition; dependencies = JHipsterLandscapeDependencies.of(builder.dependencies); + rank = builder.rank; } public static JHipsterLandscapeModuleSlugBuilder builder() { @@ -50,6 +53,10 @@ public JHipsterModulePropertiesDefinition propertiesDefinition() { return propertiesDefinition; } + public JHipsterModuleRank rank() { + return rank; + } + @Override public Optional dependencies() { return dependencies; @@ -94,6 +101,7 @@ public String toString() { .append("operation", operation) .append("propertiesDefinition", propertiesDefinition) .append("dependencies", dependencies) + .append("rank", rank) .build(); } @@ -108,6 +116,7 @@ private static final class JHipsterLandscapeModuleBuilder private JHipsterModuleOperation operation; private Collection dependencies; private JHipsterModulePropertiesDefinition propertiesDefinition; + private JHipsterModuleRank rank; @Override public JHipsterLandscapeModuleOperationBuilder module(JHipsterModuleSlug module) { @@ -130,6 +139,13 @@ public JHipsterLandscapeModuleDependenciesBuilder propertiesDefinition(JHipsterM return this; } + @Override + public JHipsterLandscapeModuleDependenciesBuilder rank(JHipsterModuleRank rank) { + this.rank = rank; + + return this; + } + @Override public JHipsterLandscapeModule dependencies(Collection dependencies) { this.dependencies = dependencies; @@ -159,6 +175,8 @@ public interface JHipsterLandscapeModulePropertiesDefinitionBuilder { } public interface JHipsterLandscapeModuleDependenciesBuilder { + JHipsterLandscapeModuleDependenciesBuilder rank(JHipsterModuleRank rank); + JHipsterLandscapeModule dependencies(Collection dependencies); default JHipsterLandscapeModule withoutDependencies() { diff --git a/src/main/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeModule.java b/src/main/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeModule.java index 4b3d9d4cbb4..4027f2a850f 100644 --- a/src/main/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeModule.java +++ b/src/main/java/tech/jhipster/lite/module/infrastructure/primary/RestJHipsterLandscapeModule.java @@ -7,8 +7,9 @@ import java.util.List; import tech.jhipster.lite.module.domain.landscape.JHipsterLandscapeElementType; import tech.jhipster.lite.module.domain.landscape.JHipsterLandscapeModule; +import tech.jhipster.lite.module.domain.resource.JHipsterModuleRank; -@JsonPropertyOrder({ "type", "slug", "operation", "properties", "dependencies" }) +@JsonPropertyOrder({ "type", "slug", "operation", "properties", "dependencies", "rank" }) @Schema(name = "JHipsterLandscapeModule", description = "Module in a landscape") final class RestJHipsterLandscapeModule implements RestJHipsterLandscapeElement { @@ -16,12 +17,14 @@ final class RestJHipsterLandscapeModule implements RestJHipsterLandscapeElement private final String operation; private final RestJHipsterModulePropertiesDefinition properties; private final Collection dependencies; + private final JHipsterModuleRank rank; private RestJHipsterLandscapeModule(RestJHipsterLandscapeModuleBuilder builder) { slug = builder.slug; operation = builder.operation; properties = builder.properties; dependencies = builder.dependencies; + rank = builder.rank; } static RestJHipsterLandscapeModule fromModule(JHipsterLandscapeModule module) { @@ -29,6 +32,7 @@ static RestJHipsterLandscapeModule fromModule(JHipsterLandscapeModule module) { .slug(module.slug().get()) .operation(module.operation().get()) .properties(RestJHipsterModulePropertiesDefinition.from(module.propertiesDefinition())) + .rank(module.rank()) .dependencies(buildDependencies(module)) .build(); } @@ -66,12 +70,18 @@ public Collection getDependencies() { return dependencies; } + @Schema(description = "Rank of this module", requiredMode = RequiredMode.REQUIRED) + public JHipsterModuleRank getRank() { + return rank; + } + private static final class RestJHipsterLandscapeModuleBuilder { private String slug; private String operation; private RestJHipsterModulePropertiesDefinition properties; private List dependencies; + private JHipsterModuleRank rank; public RestJHipsterLandscapeModuleBuilder slug(String slug) { this.slug = slug; @@ -97,6 +107,12 @@ public RestJHipsterLandscapeModuleBuilder dependencies(List Date: Mon, 27 Jan 2025 10:05:08 -0300 Subject: [PATCH 3/3] test: fix regression tests that did not predict the rank value --- .../lite/module/domain/landscape/JHipsterLandscapeFixture.java | 3 +++ .../lite/module/domain/landscape/JHipsterLandscapeTest.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeFixture.java b/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeFixture.java index bfbda4fca9e..bf3cf219384 100644 --- a/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeFixture.java +++ b/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeFixture.java @@ -1,5 +1,6 @@ package tech.jhipster.lite.module.domain.landscape; +import static tech.jhipster.lite.module.domain.resource.JHipsterModuleRank.*; import static tech.jhipster.lite.module.domain.resource.JHipsterModulesResourceFixture.*; import java.util.Collection; @@ -24,6 +25,7 @@ public static JHipsterLandscapeModule noDependencyLandscapeModule(String slug) { .module(slug) .operation("operation") .propertiesDefinition(propertiesDefinition()) + .rank(RANK_D) .withoutDependencies(); } @@ -32,6 +34,7 @@ public static JHipsterLandscapeModule oneModuleDependencyLandscapeModule(String .module(slug) .operation("operation") .propertiesDefinition(propertiesDefinition()) + .rank(RANK_D) .dependencies(landscapeModuleDependencies(dependency)); } diff --git a/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeTest.java b/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeTest.java index f92a7856e11..ff4a9f6037c 100644 --- a/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeTest.java +++ b/src/test/java/tech/jhipster/lite/module/domain/landscape/JHipsterLandscapeTest.java @@ -4,6 +4,7 @@ import static tech.jhipster.lite.module.domain.JHipsterModulesFixture.*; import static tech.jhipster.lite.module.domain.landscape.JHipsterLandscapeFixture.*; import static tech.jhipster.lite.module.domain.landscape.JHipsterLandscapeFixture.moduleResources; +import static tech.jhipster.lite.module.domain.resource.JHipsterModuleRank.*; import static tech.jhipster.lite.module.domain.resource.JHipsterModulesResourceFixture.*; import java.util.Iterator; @@ -147,6 +148,7 @@ void shouldBuildThreeLevelsLandscapeFromFourModules() { .module("forth") .operation("operation") .propertiesDefinition(propertiesDefinition()) + .rank(RANK_D) .dependencies(List.of(new JHipsterFeatureDependency(new JHipsterFeatureSlug("my-feature")))) ) );