From 5368425c1d7f3ba3d4bc96a76ac8e930087550cb Mon Sep 17 00:00:00 2001 From: Pablo de la Torre Jamardo Date: Mon, 25 Aug 2025 21:25:53 +0200 Subject: [PATCH] chore: modularized persistence package (entity, repo, adapter) --- .../portfolio/bootstrap/PortfolioApplication.java | 4 ++-- bootstrap/src/main/resources/application.yml | 5 +++++ .../adapter/ProjectRepositoryAdapter.java | 8 ++++---- .../{ => project}/entity/ProjectJpaEntity.java | 2 +- .../{ => project}/mapper/ProjectJpaMapper.java | 4 ++-- .../project/repo/SpringDataProjectRepository.java | 6 ++++++ .../persistence/repo/SpringDataProjectRepository.java | 6 ------ .../{ => project}/controller/ProjectController.java | 10 +++++----- .../rest/{ => project}/dto/CreateProjectRequest.java | 2 +- .../rest/{ => project}/dto/ProjectDto.java | 2 +- .../rest/{ => project}/mapper/ProjectRestMapper.java | 4 ++-- 11 files changed, 29 insertions(+), 24 deletions(-) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/{ => project}/adapter/ProjectRepositoryAdapter.java (75%) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/{ => project}/entity/ProjectJpaEntity.java (84%) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/{ => project}/mapper/ProjectJpaMapper.java (80%) create mode 100644 infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/repo/SpringDataProjectRepository.java delete mode 100644 infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/repo/SpringDataProjectRepository.java rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/{ => project}/controller/ProjectController.java (82%) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/{ => project}/dto/CreateProjectRequest.java (72%) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/{ => project}/dto/ProjectDto.java (69%) rename infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/{ => project}/mapper/ProjectRestMapper.java (66%) diff --git a/bootstrap/src/main/java/com/pablotj/portfolio/bootstrap/PortfolioApplication.java b/bootstrap/src/main/java/com/pablotj/portfolio/bootstrap/PortfolioApplication.java index 7310dbf..28f5747 100644 --- a/bootstrap/src/main/java/com/pablotj/portfolio/bootstrap/PortfolioApplication.java +++ b/bootstrap/src/main/java/com/pablotj/portfolio/bootstrap/PortfolioApplication.java @@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @SpringBootApplication(scanBasePackages = "com.pablotj") -@EnableJpaRepositories(basePackages = "com.pablotj.portfolio.infrastructure.persistence.repo") -@EntityScan(basePackages = "com.pablotj.portfolio.infrastructure.persistence.entity") +@EnableJpaRepositories(basePackages = { "com.pablotj.portfolio.infrastructure.persistence.project.repo" }) +@EntityScan(basePackages = { "com.pablotj.portfolio.infrastructure.persistence.project.entity" }) public class PortfolioApplication { public static void main(String[] args) { diff --git a/bootstrap/src/main/resources/application.yml b/bootstrap/src/main/resources/application.yml index 034f77c..02be6c0 100644 --- a/bootstrap/src/main/resources/application.yml +++ b/bootstrap/src/main/resources/application.yml @@ -1,6 +1,9 @@ spring: application: name: portfolio-api + web: + resources: + add-mappings: false jpa: hibernate: @@ -13,6 +16,8 @@ spring: server: port: 8080 + servlet: + context-path: /api --- diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/adapter/ProjectRepositoryAdapter.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/adapter/ProjectRepositoryAdapter.java similarity index 75% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/adapter/ProjectRepositoryAdapter.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/adapter/ProjectRepositoryAdapter.java index 61bb43e..f13c290 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/adapter/ProjectRepositoryAdapter.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/adapter/ProjectRepositoryAdapter.java @@ -1,11 +1,11 @@ -package com.pablotj.portfolio.infrastructure.persistence.adapter; +package com.pablotj.portfolio.infrastructure.persistence.project.adapter; import com.pablotj.portfolio.domain.project.Project; import com.pablotj.portfolio.domain.project.ProjectId; import com.pablotj.portfolio.domain.project.port.ProjectRepositoryPort; -import com.pablotj.portfolio.infrastructure.persistence.entity.ProjectJpaEntity; -import com.pablotj.portfolio.infrastructure.persistence.mapper.ProjectJpaMapper; -import com.pablotj.portfolio.infrastructure.persistence.repo.SpringDataProjectRepository; +import com.pablotj.portfolio.infrastructure.persistence.project.entity.ProjectJpaEntity; +import com.pablotj.portfolio.infrastructure.persistence.project.mapper.ProjectJpaMapper; +import com.pablotj.portfolio.infrastructure.persistence.project.repo.SpringDataProjectRepository; import org.springframework.stereotype.Repository; import java.util.List; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/entity/ProjectJpaEntity.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/entity/ProjectJpaEntity.java similarity index 84% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/entity/ProjectJpaEntity.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/entity/ProjectJpaEntity.java index c70a37f..40d8a07 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/entity/ProjectJpaEntity.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/entity/ProjectJpaEntity.java @@ -1,4 +1,4 @@ -package com.pablotj.portfolio.infrastructure.persistence.entity; +package com.pablotj.portfolio.infrastructure.persistence.project.entity; import jakarta.persistence.*; import lombok.Getter; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/mapper/ProjectJpaMapper.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/mapper/ProjectJpaMapper.java similarity index 80% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/mapper/ProjectJpaMapper.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/mapper/ProjectJpaMapper.java index b47bf0a..704591b 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/mapper/ProjectJpaMapper.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/mapper/ProjectJpaMapper.java @@ -1,8 +1,8 @@ -package com.pablotj.portfolio.infrastructure.persistence.mapper; +package com.pablotj.portfolio.infrastructure.persistence.project.mapper; import com.pablotj.portfolio.domain.project.Project; import com.pablotj.portfolio.domain.project.ProjectId; -import com.pablotj.portfolio.infrastructure.persistence.entity.ProjectJpaEntity; +import com.pablotj.portfolio.infrastructure.persistence.project.entity.ProjectJpaEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/repo/SpringDataProjectRepository.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/repo/SpringDataProjectRepository.java new file mode 100644 index 0000000..ae3bad2 --- /dev/null +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/project/repo/SpringDataProjectRepository.java @@ -0,0 +1,6 @@ +package com.pablotj.portfolio.infrastructure.persistence.project.repo; + +import com.pablotj.portfolio.infrastructure.persistence.project.entity.ProjectJpaEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SpringDataProjectRepository extends JpaRepository {} diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/repo/SpringDataProjectRepository.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/repo/SpringDataProjectRepository.java deleted file mode 100644 index 5ca66c1..0000000 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/persistence/repo/SpringDataProjectRepository.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pablotj.portfolio.infrastructure.persistence.repo; - -import com.pablotj.portfolio.infrastructure.persistence.entity.ProjectJpaEntity; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface SpringDataProjectRepository extends JpaRepository {} diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/controller/ProjectController.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/controller/ProjectController.java similarity index 82% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/controller/ProjectController.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/controller/ProjectController.java index 6f7fb06..f3f7c41 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/controller/ProjectController.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/controller/ProjectController.java @@ -1,10 +1,10 @@ -package com.pablotj.portfolio.infrastructure.rest.controller; +package com.pablotj.portfolio.infrastructure.rest.project.controller; import com.pablotj.portfolio.application.project.CreateProjectUseCase; import com.pablotj.portfolio.application.project.GetProjectUseCase; -import com.pablotj.portfolio.infrastructure.rest.dto.CreateProjectRequest; -import com.pablotj.portfolio.infrastructure.rest.dto.ProjectDto; -import com.pablotj.portfolio.infrastructure.rest.mapper.ProjectRestMapper; +import com.pablotj.portfolio.infrastructure.rest.project.dto.CreateProjectRequest; +import com.pablotj.portfolio.infrastructure.rest.project.dto.ProjectDto; +import com.pablotj.portfolio.infrastructure.rest.project.mapper.ProjectRestMapper; import jakarta.validation.Valid; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -13,7 +13,7 @@ import java.net.URI; import java.util.List; @RestController -@RequestMapping("/api/projects") +@RequestMapping("/v1/projects") public class ProjectController { private final CreateProjectUseCase createUC; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/CreateProjectRequest.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/CreateProjectRequest.java similarity index 72% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/CreateProjectRequest.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/CreateProjectRequest.java index dfeeeb4..65ab2a5 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/CreateProjectRequest.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/CreateProjectRequest.java @@ -1,4 +1,4 @@ -package com.pablotj.portfolio.infrastructure.rest.dto; +package com.pablotj.portfolio.infrastructure.rest.project.dto; import jakarta.validation.constraints.NotBlank; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/ProjectDto.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/ProjectDto.java similarity index 69% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/ProjectDto.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/ProjectDto.java index 48a6203..b22eeaa 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/dto/ProjectDto.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/dto/ProjectDto.java @@ -1,4 +1,4 @@ -package com.pablotj.portfolio.infrastructure.rest.dto; +package com.pablotj.portfolio.infrastructure.rest.project.dto; import jakarta.validation.constraints.NotBlank; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/mapper/ProjectRestMapper.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/mapper/ProjectRestMapper.java similarity index 66% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/mapper/ProjectRestMapper.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/mapper/ProjectRestMapper.java index 1201a84..cc4c0b3 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/mapper/ProjectRestMapper.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/project/mapper/ProjectRestMapper.java @@ -1,7 +1,7 @@ -package com.pablotj.portfolio.infrastructure.rest.mapper; +package com.pablotj.portfolio.infrastructure.rest.project.mapper; import com.pablotj.portfolio.domain.project.Project; -import com.pablotj.portfolio.infrastructure.rest.dto.ProjectDto; +import com.pablotj.portfolio.infrastructure.rest.project.dto.ProjectDto; import org.mapstruct.Mapper; import org.mapstruct.Mapping;