diff --git a/src/main/java/tech/jhipster/lite/generator/readme/application/ReadMeApplicationService.java b/src/main/java/tech/jhipster/lite/generator/readme/application/ReadMeApplicationService.java deleted file mode 100644 index 5284a792f4c..00000000000 --- a/src/main/java/tech/jhipster/lite/generator/readme/application/ReadMeApplicationService.java +++ /dev/null @@ -1,19 +0,0 @@ -package tech.jhipster.lite.generator.readme.application; - -import org.springframework.stereotype.Service; -import tech.jhipster.lite.generator.project.domain.Project; -import tech.jhipster.lite.generator.readme.domain.ReadMeService; - -@Service -public class ReadMeApplicationService { - - private final ReadMeService readMeService; - - public ReadMeApplicationService(ReadMeService readMeService) { - this.readMeService = readMeService; - } - - public void addSection(final Project project, final String header, final String body) { - readMeService.addSection(project, header, body); - } -} diff --git a/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeDomainService.java b/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeDomainService.java deleted file mode 100644 index ee5c1205e1e..00000000000 --- a/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeDomainService.java +++ /dev/null @@ -1,28 +0,0 @@ -package tech.jhipster.lite.generator.readme.domain; - -import static tech.jhipster.lite.generator.project.domain.Constants.README_MD; - -import tech.jhipster.lite.generator.project.domain.Project; -import tech.jhipster.lite.generator.project.domain.ProjectRepository; - -public class ReadMeDomainService implements ReadMeService { - - private final ProjectRepository projectRepository; - - public ReadMeDomainService(ProjectRepository projectRepository) { - this.projectRepository = projectRepository; - } - - @Override - public void addSection(final Project project, final String header, final String body) { - if (!projectRepository.containsRegexp(project, "", README_MD, header)) { - projectRepository.replaceText( - project, - "", - README_MD, - "", - header + "\n\n" + body + "\n\n" - ); - } - } -} diff --git a/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeService.java b/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeService.java deleted file mode 100644 index ff0e005c311..00000000000 --- a/src/main/java/tech/jhipster/lite/generator/readme/domain/ReadMeService.java +++ /dev/null @@ -1,7 +0,0 @@ -package tech.jhipster.lite.generator.readme.domain; - -import tech.jhipster.lite.generator.project.domain.Project; - -public interface ReadMeService { - void addSection(Project project, String header, String body); -} diff --git a/src/main/java/tech/jhipster/lite/generator/readme/infrastructure/config/ReadMeBeanConfiguration.java b/src/main/java/tech/jhipster/lite/generator/readme/infrastructure/config/ReadMeBeanConfiguration.java deleted file mode 100644 index ad09cb3ae43..00000000000 --- a/src/main/java/tech/jhipster/lite/generator/readme/infrastructure/config/ReadMeBeanConfiguration.java +++ /dev/null @@ -1,22 +0,0 @@ -package tech.jhipster.lite.generator.readme.infrastructure.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import tech.jhipster.lite.generator.project.domain.ProjectRepository; -import tech.jhipster.lite.generator.readme.domain.ReadMeDomainService; -import tech.jhipster.lite.generator.readme.domain.ReadMeService; - -@Configuration -public class ReadMeBeanConfiguration { - - private final ProjectRepository projectRepository; - - public ReadMeBeanConfiguration(ProjectRepository projectRepository) { - this.projectRepository = projectRepository; - } - - @Bean - public ReadMeService readMeService() { - return new ReadMeDomainService(projectRepository); - } -} diff --git a/src/main/java/tech/jhipster/lite/generator/readme/package-info.java b/src/main/java/tech/jhipster/lite/generator/readme/package-info.java deleted file mode 100644 index 69b241a106a..00000000000 --- a/src/main/java/tech/jhipster/lite/generator/readme/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@tech.jhipster.lite.SharedKernel -package tech.jhipster.lite.generator.readme; diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationService.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationService.java index e447b942883..471c9374ff9 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationService.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationService.java @@ -1,20 +1,27 @@ package tech.jhipster.lite.generator.server.springboot.broker.kafka.application; import org.springframework.stereotype.Service; +import tech.jhipster.lite.docker.domain.DockerImages; import tech.jhipster.lite.generator.project.domain.Project; +import tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.KafkaModuleFactory; import tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.KafkaService; +import tech.jhipster.lite.module.domain.JHipsterModule; +import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties; @Service public class KafkaApplicationService { private final KafkaService kafkaService; - public KafkaApplicationService(final KafkaService kafkaService) { + private final KafkaModuleFactory kafkaModuleFactory; + + public KafkaApplicationService(final KafkaService kafkaService, final DockerImages dockerImages) { this.kafkaService = kafkaService; + this.kafkaModuleFactory = new KafkaModuleFactory(dockerImages); } - public void init(final Project project) { - kafkaService.init(project); + public JHipsterModule init(final JHipsterModuleProperties properties) { + return kafkaModuleFactory.buildModule(properties); } public void addDummyProducerConsumer(final Project project) { diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainService.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainService.java index 2f9b8ccaf1b..15e71def0f9 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainService.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainService.java @@ -1,24 +1,22 @@ package tech.jhipster.lite.generator.server.springboot.broker.kafka.domain; -import static tech.jhipster.lite.common.domain.FileUtils.*; -import static tech.jhipster.lite.generator.project.domain.Constants.*; -import static tech.jhipster.lite.generator.project.domain.DefaultConfig.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Akhq.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Kafka.*; -import static tech.jhipster.lite.generator.server.springboot.common.domain.SpringBootCommon.*; - -import java.util.TreeMap; -import tech.jhipster.lite.common.domain.WordUtils; import tech.jhipster.lite.docker.domain.DockerImages; import tech.jhipster.lite.generator.buildtool.generic.domain.BuildToolService; -import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency; import tech.jhipster.lite.generator.project.domain.DefaultConfig; import tech.jhipster.lite.generator.project.domain.Project; import tech.jhipster.lite.generator.project.domain.ProjectFile; import tech.jhipster.lite.generator.project.domain.ProjectRepository; -import tech.jhipster.lite.generator.readme.domain.ReadMeService; import tech.jhipster.lite.generator.server.springboot.common.domain.SpringBootCommonService; +import java.util.TreeMap; + +import static tech.jhipster.lite.common.domain.FileUtils.getPath; +import static tech.jhipster.lite.generator.project.domain.Constants.*; +import static tech.jhipster.lite.generator.project.domain.DefaultConfig.BASE_NAME; +import static tech.jhipster.lite.generator.project.domain.DefaultConfig.PACKAGE_NAME; +import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Akhq.AKHQ_DOCKER_COMPOSE_FILE; +import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Akhq.AKHQ_DOCKER_IMAGE; + public class KafkaDomainService implements KafkaService { private static final String SOURCE = "server/springboot/broker/kafka"; @@ -34,55 +32,16 @@ public class KafkaDomainService implements KafkaService { private final DockerImages dockerImages; - private final ReadMeService readMeService; - public KafkaDomainService( final BuildToolService buildToolService, final ProjectRepository projectRepository, final SpringBootCommonService springBootCommonService, - final DockerImages dockerImages, - final ReadMeService readMeService + final DockerImages dockerImages ) { this.buildToolService = buildToolService; this.projectRepository = projectRepository; this.springBootCommonService = springBootCommonService; this.dockerImages = dockerImages; - this.readMeService = readMeService; - } - - @Override - public void init(final Project project) { - addApacheKafkaClient(project); - addDockerCompose(project); - addProperties(project); - addTestcontainers(project); - addConfiguration(project); - addReadMeSection(project); - } - - private void addConfiguration(final Project project) { - final String packageNamePath = project.getPackageNamePath().orElse(getPath(DefaultConfig.PACKAGE_PATH)); - final String configKafkaPath = TECHNICAL_INFRASTRUCTURE_CONFIG + "/kafka"; - - projectRepository.template( - ProjectFile - .forProject(project) - .withSource(SOURCE, "KafkaProperties.java") - .withDestinationFolder(getPath(MAIN_JAVA, packageNamePath, configKafkaPath)) - ); - projectRepository.template( - ProjectFile - .forProject(project) - .withSource(SOURCE, "KafkaPropertiesTest.java") - .withDestinationFolder(getPath(TEST_JAVA, packageNamePath, configKafkaPath)) - ); - - projectRepository.template( - ProjectFile - .forProject(project) - .withSource(SOURCE, "KafkaConfiguration.java") - .withDestinationFolder(getPath(MAIN_JAVA, packageNamePath, TECHNICAL_INFRASTRUCTURE_CONFIG + "/kafka")) - ); } @Override @@ -152,32 +111,6 @@ public void addAkhq(final Project project) { ); } - private void addApacheKafkaClient(final Project project) { - final Dependency dependency = Dependency.builder().groupId("org.apache.kafka").artifactId("kafka-clients").build(); - buildToolService.addDependency(project, dependency); - } - - private void addDockerCompose(final Project project) { - final String zookeeperDockerImage = dockerImages.get(Zookeeper.ZOOKEEPER_DOCKER_IMAGE).fullName(); - final String kafkaDockerImage = dockerImages.get(KAFKA_DOCKER_IMAGE).fullName(); - - project.addDefaultConfig(BASE_NAME); - project.addConfig("zookeeperDockerImage", zookeeperDockerImage); - project.addConfig("kafkaDockerImage", kafkaDockerImage); - projectRepository.template( - ProjectFile.forProject(project).withSource(SOURCE, KAFKA_DOCKER_COMPOSE_FILE).withDestination(MAIN_DOCKER, KAFKA_DOCKER_COMPOSE_FILE) - ); - } - - private void addProperties(final Project project) { - final String kebabBaseName = WordUtils.kebabCase(project.getBaseName().orElse(DEFAULT_BASE_NAME)); - getKafkaCommonProperties(kebabBaseName) - .forEach((k, v) -> { - springBootCommonService.addProperties(project, k, v); - springBootCommonService.addPropertiesTest(project, k, v); - }); - } - private TreeMap getKafkaCommonProperties(final String kebabBaseName) { final TreeMap result = new TreeMap<>(); @@ -193,26 +126,4 @@ private TreeMap getKafkaCommonProperties(final String kebabBaseN return result; } - - void addTestcontainers(final Project project) { - final String packageNamePath = project.getPackageNamePath().orElse(getPath(DefaultConfig.PACKAGE_PATH)); - projectRepository.template( - ProjectFile - .forProject(project) - .withSource(SOURCE, "KafkaTestContainerExtension.java") - .withDestinationFolder(getPath(TEST_JAVA, packageNamePath)) - ); - buildToolService.addVersionPropertyAndDependency(project, "testcontainers", testContainersDependency("kafka")); - springBootCommonService.updateIntegrationTestAnnotation(project, "KafkaTestContainerExtension"); - } - - private void addReadMeSection(final Project project) { - readMeService.addSection( - project, - "## Apache Kafka", - """ - Before to launch `./mvnw spring-boot:run`, please launch the following command in the root directory: `docker-compose -f src/main/docker/kafka.yml up`. - """ - ); - } } diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaService.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaService.java index 322836ea15b..43735c9bab4 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaService.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaService.java @@ -3,8 +3,6 @@ import tech.jhipster.lite.generator.project.domain.Project; public interface KafkaService { - void init(Project project); - void addDummyProducerConsumer(Project project); void addAkhq(Project project); diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/config/KafkaBeanConfiguration.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/config/KafkaBeanConfiguration.java index 77c24a18ca5..b780617e4c5 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/config/KafkaBeanConfiguration.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/config/KafkaBeanConfiguration.java @@ -5,7 +5,6 @@ import tech.jhipster.lite.docker.domain.DockerImages; import tech.jhipster.lite.generator.buildtool.generic.domain.BuildToolService; import tech.jhipster.lite.generator.project.domain.ProjectRepository; -import tech.jhipster.lite.generator.readme.domain.ReadMeService; import tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.KafkaDomainService; import tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.KafkaService; import tech.jhipster.lite.generator.server.springboot.common.domain.SpringBootCommonService; @@ -21,24 +20,20 @@ public class KafkaBeanConfiguration { private final DockerImages dockerImages; - private final ReadMeService readMeService; - public KafkaBeanConfiguration( final BuildToolService buildToolService, final ProjectRepository projectRepository, final SpringBootCommonService springBootCommonService, - final DockerImages dockerImages, - final ReadMeService readMeService + final DockerImages dockerImages ) { this.buildToolService = buildToolService; this.projectRepository = projectRepository; this.springBootCommonService = springBootCommonService; this.dockerImages = dockerImages; - this.readMeService = readMeService; } @Bean public KafkaService kafkaService() { - return new KafkaDomainService(buildToolService, projectRepository, springBootCommonService, dockerImages, readMeService); + return new KafkaDomainService(buildToolService, projectRepository, springBootCommonService, dockerImages); } } diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResource.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResource.java index 32d92b2471e..7438ade969e 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResource.java +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResource.java @@ -24,15 +24,6 @@ public KafkaResource(KafkaApplicationService kafkaApplicationService) { this.kafkaApplicationService = kafkaApplicationService; } - @Operation(summary = "Add Kafka dependencies, with testcontainers") - @ApiResponse(responseCode = "500", description = "An error occurred while adding Kafka") - @PostMapping - @GeneratorStep(id = GeneratorAction.SPRINGBOOT_KAFKA) - public void init(final @RequestBody ProjectDTO projectDTO) { - final Project project = ProjectDTO.toProject(projectDTO); - kafkaApplicationService.init(project); - } - @Operation(summary = "Add dummy Kafka producer and consumer") @ApiResponse(responseCode = "500", description = "An error occurred while adding dummy Kafka producer and consumer") @PostMapping("/dummy-producer-consumer") diff --git a/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceConfiguration.java b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceConfiguration.java new file mode 100644 index 00000000000..875ae1091b8 --- /dev/null +++ b/src/main/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceConfiguration.java @@ -0,0 +1,24 @@ +package tech.jhipster.lite.generator.server.springboot.broker.kafka.infrastructure.primary.rest; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import tech.jhipster.lite.generator.server.springboot.broker.kafka.application.KafkaApplicationService; +import tech.jhipster.lite.module.infrastructure.primary.JHipsterModuleApiDoc; +import tech.jhipster.lite.module.infrastructure.primary.JHipsterModuleResource; + +@Configuration +public class KafkaResourceConfiguration { + + private static final String TAG = "Spring Boot - Broker"; + + @Bean + JHipsterModuleResource kafkaResourceInit(KafkaApplicationService kafkaApplicationService) { + return JHipsterModuleResource + .builder() + .legacyUrl("/api/servers/spring-boot/brokers/kafka") + .slug("springboot-kafka") + .withoutProperties() + .apiDoc(new JHipsterModuleApiDoc(TAG, "Add Kafka dependencies, with testcontainers")) + .factory(kafkaApplicationService::init); + } +} diff --git a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationServiceIT.java b/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationServiceIT.java deleted file mode 100644 index 660f4dfdaab..00000000000 --- a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/application/KafkaApplicationServiceIT.java +++ /dev/null @@ -1,135 +0,0 @@ -package tech.jhipster.lite.generator.server.springboot.broker.kafka.application; - -import static tech.jhipster.lite.TestUtils.*; -import static tech.jhipster.lite.common.domain.FileUtils.*; -import static tech.jhipster.lite.generator.project.domain.Constants.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Akhq.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Kafka.*; -import static tech.jhipster.lite.generator.server.springboot.common.domain.SpringBoot.*; - -import java.util.List; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import tech.jhipster.lite.IntegrationTest; -import tech.jhipster.lite.generator.project.domain.Project; -import tech.jhipster.lite.module.infrastructure.secondary.TestJHipsterModules; - -@IntegrationTest -class KafkaApplicationServiceIT { - - @Autowired - private KafkaApplicationService kafkaApplicationService; - - @Test - void shouldInit() { - Project project = tmpProject(); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - - kafkaApplicationService.init(project); - assertFileContent(project, POM_XML, kafkaClients()); - - String pathToKafkaDockerComposeFile = MAIN_DOCKER + "/" + KAFKA_DOCKER_COMPOSE_FILE; - assertFileExist(project, pathToKafkaDockerComposeFile); - assertFileContent(project, pathToKafkaDockerComposeFile, "KAFKA_BROKER_ID: 1"); - - assertFileContent(project, getPath(MAIN_RESOURCES, "config", APPLICATION_PROPERTIES), "# Kafka Configuration"); - assertFileContent(project, getPath(MAIN_RESOURCES, "config", APPLICATION_PROPERTIES), "kafka.bootstrap-servers=localhost:9092"); - assertFileContent(project, POM_XML, ""); - assertFileContent(project, POM_XML, ""); - assertFileContent(project, POM_XML, testcontainers()); - - String packagePath = getPath("com/mycompany/myapp"); - String configKafkaPath = getPath(packagePath, "technical/infrastructure/config/kafka"); - assertFileExist(project, getPath(MAIN_JAVA, configKafkaPath, "KafkaProperties.java")); - assertFileContent(project, getPath(MAIN_JAVA, configKafkaPath, "KafkaProperties.java"), "public class KafkaProperties"); - - String kafkaPropertiesTestPath = getPath("com/mycompany/myapp/technical/infrastructure/config/kafka"); - assertFileExist(project, getPath(TEST_JAVA, kafkaPropertiesTestPath, "KafkaPropertiesTest.java")); - assertFileContent(project, getPath(TEST_JAVA, kafkaPropertiesTestPath, "KafkaPropertiesTest.java"), "class KafkaPropertiesTest"); - - assertFileExist(project, getPath(MAIN_JAVA, configKafkaPath, "KafkaConfiguration.java")); - assertFileContent(project, getPath(MAIN_JAVA, configKafkaPath, "KafkaConfiguration.java"), "public class KafkaConfiguration"); - - assertFileExist(project, getPath(TEST_JAVA, packagePath, "KafkaTestContainerExtension.java")); - assertFileContent( - project, - getPath(TEST_JAVA, packagePath, "KafkaTestContainerExtension.java"), - "public class KafkaTestContainerExtension" - ); - } - - @Test - void shouldAddProducerConsumer() { - Project project = tmpProject(); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - kafkaApplicationService.init(project); - - kafkaApplicationService.addDummyProducerConsumer(project); - - String dummyProducerPath = getPath("com/mycompany/myapp/dummy/infrastructure/secondary/kafka/producer"); - assertFileExist(project, getPath(MAIN_JAVA, dummyProducerPath, "DummyProducer.java")); - assertFileContent(project, getPath(MAIN_JAVA, dummyProducerPath, "DummyProducer.java"), "public class DummyProducer"); - - String dummyProducerTestPath = getPath("com/mycompany/myapp/dummy/infrastructure/secondary/kafka/producer"); - assertFileExist(project, getPath(TEST_JAVA, dummyProducerTestPath, "DummyProducerTest.java")); - assertFileContent(project, getPath(TEST_JAVA, dummyProducerTestPath, "DummyProducerTest.java"), "class DummyProducerTest"); - - assertFileExist(project, getPath(TEST_JAVA, dummyProducerTestPath, "DummyProducerIT.java")); - assertFileContent(project, getPath(TEST_JAVA, dummyProducerTestPath, "DummyProducerIT.java"), "class DummyProducerIT"); - - String dummyConsumerPath = getPath("com/mycompany/myapp/dummy/infrastructure/primary/kafka/consumer"); - assertFileExist(project, getPath(MAIN_JAVA, dummyConsumerPath, "AbstractConsumer.java")); - assertFileContent( - project, - getPath(MAIN_JAVA, dummyConsumerPath, "AbstractConsumer.java"), - "public abstract class AbstractConsumer implements Runnable" - ); - - assertFileExist(project, getPath(MAIN_JAVA, dummyConsumerPath, "DummyConsumer.java")); - assertFileContent( - project, - getPath(MAIN_JAVA, dummyConsumerPath, "DummyConsumer.java"), - "public class DummyConsumer extends AbstractConsumer" - ); - - assertFileExist(project, getPath(TEST_JAVA, dummyConsumerPath, "DummyConsumerIT.java")); - assertFileContent(project, getPath(TEST_JAVA, dummyConsumerPath, "DummyConsumerIT.java"), "class DummyConsumerIT"); - - assertFileExist(project, getPath(TEST_JAVA, dummyConsumerPath, "DummyConsumerTest.java")); - assertFileContent(project, getPath(TEST_JAVA, dummyConsumerPath, "DummyConsumerTest.java"), "class DummyConsumerTest"); - } - - @Test - void shouldAddAkhq() { - Project project = tmpProject(); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - kafkaApplicationService.init(project); - - kafkaApplicationService.addAkhq(project); - - String pathToAkhqDockerComposeFile = MAIN_DOCKER + "/" + AKHQ_DOCKER_COMPOSE_FILE; - assertFileExist(project, pathToAkhqDockerComposeFile); - assertFileContent(project, pathToAkhqDockerComposeFile, "AKHQ_CONFIGURATION"); - } - - private List kafkaClients() { - return List.of("", "org.apache.kafka", "kafka-clients", ""); - } - - private List testcontainers() { - return List.of( - "", - "org.testcontainers", - "kafka", - "${testcontainers.version}", - "test", - "" - ); - } -} diff --git a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainServiceTest.java b/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainServiceTest.java index 0fca445ceb5..b163efc3606 100644 --- a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainServiceTest.java +++ b/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/domain/KafkaDomainServiceTest.java @@ -1,9 +1,5 @@ package tech.jhipster.lite.generator.server.springboot.broker.kafka.domain; -import static org.mockito.Mockito.*; -import static tech.jhipster.lite.TestUtils.*; - -import java.util.Optional; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -12,21 +8,20 @@ import tech.jhipster.lite.UnitTest; import tech.jhipster.lite.docker.domain.DockerImage; import tech.jhipster.lite.docker.domain.DockerImages; -import tech.jhipster.lite.generator.buildtool.generic.domain.BuildToolService; -import tech.jhipster.lite.generator.buildtool.generic.domain.Dependency; import tech.jhipster.lite.generator.project.domain.Project; import tech.jhipster.lite.generator.project.domain.ProjectFile; import tech.jhipster.lite.generator.project.domain.ProjectRepository; -import tech.jhipster.lite.generator.readme.domain.ReadMeService; import tech.jhipster.lite.generator.server.springboot.common.domain.SpringBootCommonService; +import java.util.Optional; + +import static org.mockito.Mockito.*; +import static tech.jhipster.lite.TestUtils.tmpProjectWithPomXml; + @UnitTest @ExtendWith(MockitoExtension.class) class KafkaDomainServiceTest { - @Mock - private BuildToolService buildToolService; - @Mock private ProjectRepository projectRepository; @@ -36,29 +31,9 @@ class KafkaDomainServiceTest { @Mock private DockerImages dockerImages; - @Mock - private ReadMeService readMeService; - @InjectMocks private KafkaDomainService kafkaDomainService; - @Test - void shouldInit() { - Project project = tmpProjectWithPomXml(); - when(dockerImages.get(anyString())).thenReturn(new DockerImage("dummy", "1")); - - kafkaDomainService.init(project); - - verify(buildToolService, times(1)).addDependency(eq(project), any(Dependency.class)); - verify(buildToolService, times(1)).addVersionPropertyAndDependency(eq(project), eq("testcontainers"), any(Dependency.class)); - verify(dockerImages, times(2)).get(anyString()); - verify(projectRepository, times(5)).template(any(ProjectFile.class)); - verify(springBootCommonService, times(9)).addProperties(eq(project), anyString(), any()); - verify(springBootCommonService, times(9)).addPropertiesTest(eq(project), anyString(), any()); - verify(springBootCommonService).updateIntegrationTestAnnotation(eq(project), anyString()); - verify(readMeService).addSection(eq(project), anyString(), anyString()); - } - @Test void shouldAddProducerConsumer() { Project project = tmpProjectWithPomXml(); diff --git a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceIT.java b/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceIT.java deleted file mode 100644 index b094e377bba..00000000000 --- a/src/test/java/tech/jhipster/lite/generator/server/springboot/broker/kafka/infrastructure/primary/rest/KafkaResourceIT.java +++ /dev/null @@ -1,112 +0,0 @@ -package tech.jhipster.lite.generator.server.springboot.broker.kafka.infrastructure.primary.rest; - -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static tech.jhipster.lite.TestUtils.*; -import static tech.jhipster.lite.generator.project.domain.Constants.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Akhq.*; -import static tech.jhipster.lite.generator.server.springboot.broker.kafka.domain.Kafka.*; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; -import tech.jhipster.lite.IntegrationTest; -import tech.jhipster.lite.TestFileUtils; -import tech.jhipster.lite.TestUtils; -import tech.jhipster.lite.error.domain.GeneratorException; -import tech.jhipster.lite.generator.project.domain.Project; -import tech.jhipster.lite.generator.project.infrastructure.primary.dto.ProjectDTO; -import tech.jhipster.lite.generator.server.springboot.broker.kafka.application.KafkaApplicationService; -import tech.jhipster.lite.module.infrastructure.secondary.TestJHipsterModules; - -@IntegrationTest -@AutoConfigureMockMvc -class KafkaResourceIT { - - @Autowired - private KafkaApplicationService kafkaApplicationService; - - @Autowired - private MockMvc mockMvc; - - @Test - void shouldInitKafka() throws Exception { - ProjectDTO projectDTO = TestUtils.readFileToObject("json/chips.json", ProjectDTO.class).folder(TestFileUtils.tmpDirForTest()); - if (projectDTO == null) { - throw new GeneratorException("Error when reading file"); - } - Project project = ProjectDTO.toProject(projectDTO); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - - mockMvc - .perform( - post("/api/servers/spring-boot/brokers/kafka") - .contentType(MediaType.APPLICATION_JSON) - .content(TestUtils.convertObjectToJsonBytes(projectDTO)) - ) - .andExpect(status().isOk()); - - String projectPath = projectDTO.getFolder(); - assertFileExist(projectPath, MAIN_DOCKER + "/" + KAFKA_DOCKER_COMPOSE_FILE); - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/technical/infrastructure/config/kafka/KafkaProperties.java"); - assertFileExist(projectPath, "src/test/java/tech/jhipster/chips/technical/infrastructure/config/kafka/KafkaPropertiesTest.java"); - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/technical/infrastructure/config/kafka/KafkaConfiguration.java"); - assertFileExist(projectPath, "src/test/java/tech/jhipster/chips/KafkaTestContainerExtension.java"); - } - - @Test - void shouldAddProducerConsumer() throws Exception { - ProjectDTO projectDTO = TestUtils.readFileToObject("json/chips.json", ProjectDTO.class).folder(TestFileUtils.tmpDirForTest()); - if (projectDTO == null) { - throw new GeneratorException("Error when reading file"); - } - Project project = ProjectDTO.toProject(projectDTO); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - kafkaApplicationService.init(project); - - mockMvc - .perform( - post("/api/servers/spring-boot/brokers/kafka/dummy-producer-consumer") - .contentType(MediaType.APPLICATION_JSON) - .content(TestUtils.convertObjectToJsonBytes(projectDTO)) - ) - .andExpect(status().isOk()); - - String projectPath = projectDTO.getFolder(); - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/dummy/infrastructure/secondary/kafka/producer/DummyProducer.java"); - assertFileExist(projectPath, "src/test/java/tech/jhipster/chips/dummy/infrastructure/secondary/kafka/producer/DummyProducerTest.java"); - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/technical/infrastructure/config/kafka/KafkaConfiguration.java"); - - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/dummy/infrastructure/primary/kafka/consumer/AbstractConsumer.java"); - assertFileExist(projectPath, "src/main/java/tech/jhipster/chips/dummy/infrastructure/primary/kafka/consumer/DummyConsumer.java"); - assertFileExist(projectPath, "src/test/java/tech/jhipster/chips/dummy/infrastructure/primary/kafka/consumer/DummyConsumerIT.java"); - assertFileExist(projectPath, "src/test/java/tech/jhipster/chips/dummy/infrastructure/primary/kafka/consumer/DummyConsumerTest.java"); - } - - @Test - void shouldAkhq() throws Exception { - ProjectDTO projectDTO = TestUtils.readFileToObject("json/chips.json", ProjectDTO.class).folder(TestFileUtils.tmpDirForTest()); - Project project = ProjectDTO.toProject(projectDTO); - TestJHipsterModules.applyInit(project); - TestJHipsterModules.applyMaven(project); - TestJHipsterModules.applySpringBootCore(project); - kafkaApplicationService.init(project); - - mockMvc - .perform( - post("/api/servers/spring-boot/brokers/kafka/akhq") - .contentType(MediaType.APPLICATION_JSON) - .content(TestUtils.convertObjectToJsonBytes(projectDTO)) - ) - .andExpect(status().isOk()); - - String projectPath = projectDTO.getFolder(); - assertFileExist(projectPath, MAIN_DOCKER + "/" + AKHQ_DOCKER_COMPOSE_FILE); - } -}