From f80ed9b634dbdae57aebd4df80bec970c01c5810 Mon Sep 17 00:00:00 2001 From: K Siva Prasad Reddy Date: Fri, 23 Dec 2022 10:50:38 +0530 Subject: [PATCH] Removing Lombok --- .sdkmanrc | 2 +- application/build.gradle | 7 +- .../sivalabs/devzone/common/BaseEntity.java | 24 +++-- .../sivalabs/devzone/common/PagedResult.java | 99 +++++++++++++++++-- .../devzone/config/DataInitializer.java | 16 ++- .../sivalabs/devzone/config/WebMvcConfig.java | 6 +- .../CurrentUserArgumentResolver.java | 6 +- .../devzone/config/logging/LoggingAspect.java | 6 +- .../config/security/SecurityConfig.java | 10 +- .../devzone/config/security/SecurityUser.java | 2 - .../security/SecurityUserDetailsService.java | 7 +- .../config/security/WebSecurityConfig.java | 24 +++-- .../adapter/entities/CategoryEntity.java | 24 +++-- .../links/adapter/entities/LinkEntity.java | 48 +++++++-- .../links/adapter/mappers/LinkMapper.java | 7 +- .../repositories/CategoryRepositoryImpl.java | 8 +- .../repositories/LinkRepositoryImpl.java | 15 ++- .../devzone/links/domain/models/Category.java | 48 +++++++-- .../domain/models/CreateLinkRequest.java | 36 ++++++- .../devzone/links/domain/models/Link.java | 66 ++++++++++--- .../devzone/links/domain/models/LinkDTO.java | 76 +++++++++++++- .../domain/models/UpdateLinkRequest.java | 34 ++++++- .../links/domain/services/LinkService.java | 11 ++- .../domain/services/LinksExportService.java | 6 +- .../domain/services/LinksImportService.java | 10 +- .../links/domain/utils/JsoupUtils.java | 6 +- .../controllers/CategoryRestController.java | 9 +- .../web/controllers/CreateLinkController.java | 13 +-- .../web/controllers/DeleteLinkController.java | 8 +- .../web/controllers/GetLinksController.java | 12 ++- .../controllers/LinksDownloadController.java | 8 +- .../controllers/LinksUploadController.java | 8 +- .../controllers/PageMetadataController.java | 6 +- .../web/controllers/UpdateLinkController.java | 11 ++- .../links/web/mappers/LinkDtoMapper.java | 6 +- .../users/adapter/entities/UserEntity.java | 48 +++++++-- .../repositories/UserRepositoryImpl.java | 7 +- .../domain/models/ChangePasswordRequest.java | 33 +++++-- .../domain/models/CreateUserRequest.java | 42 ++++++-- .../devzone/users/domain/models/User.java | 56 +++++++++-- .../domain/services/SecurityService.java | 6 +- .../users/domain/services/UserService.java | 11 ++- .../controllers/ChangePasswordController.java | 11 ++- .../controllers/RegistrationController.java | 11 ++- .../controllers/UserProfileController.java | 8 +- .../domain/services/UserServiceTest.java | 12 +-- .../devzone/utils/LinkReaderUtils.java | 4 +- .../aws-terraform}/.gitignore | 0 .../aws-terraform}/.terraform.lock.hcl | 0 .../aws-terraform}/README.md | 0 .../aws-terraform}/ecr/main.tf | 0 .../aws-terraform}/ecr/outputs.tf | 0 .../aws-terraform}/ecr/variables.tf | 0 .../aws-terraform}/ecs/cloudwatch.tf | 0 .../aws-terraform}/ecs/iam.tf | 0 .../aws-terraform}/ecs/main.tf | 0 .../aws-terraform}/ecs/outputs.tf | 0 .../aws-terraform}/ecs/security-groups.tf | 0 .../aws-terraform}/ecs/variables.tf | 0 .../aws-terraform}/main.tf | 0 .../aws-terraform}/outputs.tf | 0 .../aws-terraform}/rds/main.tf | 0 .../aws-terraform}/rds/outputs.tf | 0 .../aws-terraform}/rds/variables.tf | 0 .../aws-terraform}/ssm/main.tf | 0 .../aws-terraform}/ssm/outputs.tf | 0 .../aws-terraform}/ssm/variables.tf | 0 .../aws-terraform}/terraform.tfvars.example | 0 .../aws-terraform}/variables.tf | 0 .../aws-terraform}/versions.tf | 0 .../aws-terraform}/vpc/main.tf | 0 .../aws-terraform}/vpc/outputs.tf | 0 .../aws-terraform}/vpc/variables.tf | 0 {k8s-helm => deployment/k8s-helm}/README.md | 0 .../k8s-helm}/devzone/.helmignore | 0 .../k8s-helm}/devzone/Chart.yaml | 0 .../devzone/charts/postgresql/Chart.yaml | 0 .../charts/postgresql/templates/_helpers.tpl | 0 .../charts/postgresql/templates/service.yaml | 0 .../devzone/charts/postgresql/values.yaml | 0 .../k8s-helm}/devzone/templates/_helpers.tpl | 0 .../k8s-helm}/devzone/templates/service.yaml | 0 .../k8s-helm}/devzone/values.yaml | 0 {k8s => deployment/k8s}/1-config.yaml | 0 {k8s => deployment/k8s}/2-postgres.yaml | 0 {k8s => deployment/k8s}/3-devzone.yaml | 0 {k8s => deployment/k8s}/4-ingress.yaml | 0 {k8s => deployment/k8s}/README.md | 0 {kind => deployment/kind}/kind-cluster.sh | 0 {kind => deployment/kind}/kind-config.yml | 0 run.sh | 6 +- skaffold.yaml | 2 +- 92 files changed, 731 insertions(+), 211 deletions(-) rename {aws-terraform => deployment/aws-terraform}/.gitignore (100%) rename {aws-terraform => deployment/aws-terraform}/.terraform.lock.hcl (100%) rename {aws-terraform => deployment/aws-terraform}/README.md (100%) rename {aws-terraform => deployment/aws-terraform}/ecr/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecr/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecr/variables.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/cloudwatch.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/iam.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/security-groups.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ecs/variables.tf (100%) rename {aws-terraform => deployment/aws-terraform}/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/rds/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/rds/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/rds/variables.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ssm/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ssm/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/ssm/variables.tf (100%) rename {aws-terraform => deployment/aws-terraform}/terraform.tfvars.example (100%) rename {aws-terraform => deployment/aws-terraform}/variables.tf (100%) rename {aws-terraform => deployment/aws-terraform}/versions.tf (100%) rename {aws-terraform => deployment/aws-terraform}/vpc/main.tf (100%) rename {aws-terraform => deployment/aws-terraform}/vpc/outputs.tf (100%) rename {aws-terraform => deployment/aws-terraform}/vpc/variables.tf (100%) rename {k8s-helm => deployment/k8s-helm}/README.md (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/.helmignore (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/Chart.yaml (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/charts/postgresql/Chart.yaml (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/charts/postgresql/templates/_helpers.tpl (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/charts/postgresql/templates/service.yaml (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/charts/postgresql/values.yaml (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/templates/_helpers.tpl (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/templates/service.yaml (100%) rename {k8s-helm => deployment/k8s-helm}/devzone/values.yaml (100%) rename {k8s => deployment/k8s}/1-config.yaml (100%) rename {k8s => deployment/k8s}/2-postgres.yaml (100%) rename {k8s => deployment/k8s}/3-devzone.yaml (100%) rename {k8s => deployment/k8s}/4-ingress.yaml (100%) rename {k8s => deployment/k8s}/README.md (100%) rename {kind => deployment/kind}/kind-cluster.sh (100%) rename {kind => deployment/kind}/kind-config.yml (100%) diff --git a/.sdkmanrc b/.sdkmanrc index a75f732..768cecb 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1,2 +1,2 @@ java=17.0.4-tem -gradle=7.5.1 +gradle=7.6 diff --git a/application/build.gradle b/application/build.gradle index d4032f0..01603df 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -1,7 +1,7 @@ plugins { id "java" id "jacoco" - id "org.springframework.boot" version "3.0.0" + id "org.springframework.boot" version "3.0.1" id "io.spring.dependency-management" version "1.1.0" id "com.gorylenko.gradle-git-properties" version "2.4.1" id "com.google.cloud.tools.jib" version "3.3.1" @@ -52,7 +52,7 @@ ext { set("font_awesome_version", "6.2.0") set("commons_lang_version", "3.12.0") set("commons_io_version", "2.11.0") - set("springdoc_openapi", "1.6.13") + set("springdoc_openapi", "1.6.14") set("opencsv_version", "5.7.1") set("jsoup_version", "1.15.3") set("datasource_proxy_version", "1.8.1") @@ -86,16 +86,13 @@ dependencies { implementation "org.webjars:jquery:${jquery_version}" implementation "org.webjars:font-awesome:${font_awesome_version}" - compileOnly "org.projectlombok:lombok" developmentOnly "org.springframework.boot:spring-boot-devtools" annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" - annotationProcessor "org.projectlombok:lombok" testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.springframework.security:spring-security-test" testImplementation "org.testcontainers:junit-jupiter" testImplementation "org.testcontainers:postgresql" - testImplementation "org.projectlombok:lombok" testImplementation "com.tngtech.archunit:archunit-junit5:${archunit_junit5_version}" testImplementation "com.apptasticsoftware:rssreader:3.2.5" } diff --git a/application/src/main/java/com/sivalabs/devzone/common/BaseEntity.java b/application/src/main/java/com/sivalabs/devzone/common/BaseEntity.java index 5e91c31..de5901f 100755 --- a/application/src/main/java/com/sivalabs/devzone/common/BaseEntity.java +++ b/application/src/main/java/com/sivalabs/devzone/common/BaseEntity.java @@ -5,19 +5,15 @@ import jakarta.persistence.PrePersist; import jakarta.persistence.PreUpdate; import java.time.LocalDateTime; -import lombok.Getter; -import lombok.Setter; @MappedSuperclass -@Setter -@Getter public abstract class BaseEntity { @Column(updatable = false) - private LocalDateTime createdAt = LocalDateTime.now(); + protected LocalDateTime createdAt = LocalDateTime.now(); @Column(insertable = false) - private LocalDateTime updatedAt = LocalDateTime.now(); + protected LocalDateTime updatedAt = LocalDateTime.now(); protected abstract Long getId(); @@ -30,4 +26,20 @@ public void onCreate() { public void onUpdate() { updatedAt = LocalDateTime.now(); } + + public LocalDateTime getCreatedAt() { + return this.createdAt; + } + + public LocalDateTime getUpdatedAt() { + return this.updatedAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/common/PagedResult.java b/application/src/main/java/com/sivalabs/devzone/common/PagedResult.java index 36805d2..ba1081c 100755 --- a/application/src/main/java/com/sivalabs/devzone/common/PagedResult.java +++ b/application/src/main/java/com/sivalabs/devzone/common/PagedResult.java @@ -2,15 +2,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -@Setter -@Getter -@AllArgsConstructor public class PagedResult { private Pageable pageable; private List data; @@ -41,4 +35,97 @@ public PagedResult(Page page) { this.setHasNext(page.hasNext()); this.setHasPrevious(page.hasPrevious()); } + + public PagedResult( + Pageable pageable, + List data, + long totalElements, + int pageNumber, + int totalPages, + boolean isFirst, + boolean isLast, + boolean hasNext, + boolean hasPrevious) { + this.pageable = pageable; + this.data = data; + this.totalElements = totalElements; + this.pageNumber = pageNumber; + this.totalPages = totalPages; + this.isFirst = isFirst; + this.isLast = isLast; + this.hasNext = hasNext; + this.hasPrevious = hasPrevious; + } + + public Pageable getPageable() { + return this.pageable; + } + + public List getData() { + return this.data; + } + + public long getTotalElements() { + return this.totalElements; + } + + public int getPageNumber() { + return this.pageNumber; + } + + public int getTotalPages() { + return this.totalPages; + } + + public boolean isFirst() { + return this.isFirst; + } + + public boolean isLast() { + return this.isLast; + } + + public boolean isHasNext() { + return this.hasNext; + } + + public boolean isHasPrevious() { + return this.hasPrevious; + } + + public void setPageable(Pageable pageable) { + this.pageable = pageable; + } + + public void setData(List data) { + this.data = data; + } + + public void setTotalElements(long totalElements) { + this.totalElements = totalElements; + } + + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; + } + + public void setTotalPages(int totalPages) { + this.totalPages = totalPages; + } + + public void setFirst(boolean isFirst) { + this.isFirst = isFirst; + } + + public void setLast(boolean isLast) { + this.isLast = isLast; + } + + public void setHasNext(boolean hasNext) { + this.hasNext = hasNext; + } + + public void setHasPrevious(boolean hasPrevious) { + this.hasPrevious = hasPrevious; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/config/DataInitializer.java b/application/src/main/java/com/sivalabs/devzone/config/DataInitializer.java index d1a79b7..2982282 100644 --- a/application/src/main/java/com/sivalabs/devzone/config/DataInitializer.java +++ b/application/src/main/java/com/sivalabs/devzone/config/DataInitializer.java @@ -4,8 +4,8 @@ import com.sivalabs.devzone.links.domain.services.LinksImportService; import java.util.List; import java.util.Locale; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.context.MessageSource; import org.springframework.stereotype.Component; @@ -13,13 +13,21 @@ @Component @Transactional -@RequiredArgsConstructor -@Slf4j public class DataInitializer implements CommandLineRunner { + private static final Logger log = LoggerFactory.getLogger(DataInitializer.class); private final ApplicationProperties applicationProperties; private final LinksImportService linksImportService; private final MessageSource messageSource; + public DataInitializer( + ApplicationProperties applicationProperties, + LinksImportService linksImportService, + MessageSource messageSource) { + this.applicationProperties = applicationProperties; + this.linksImportService = linksImportService; + this.messageSource = messageSource; + } + @Override public void run(String... args) throws Exception { log.info( diff --git a/application/src/main/java/com/sivalabs/devzone/config/WebMvcConfig.java b/application/src/main/java/com/sivalabs/devzone/config/WebMvcConfig.java index 75ed160..a5b957e 100755 --- a/application/src/main/java/com/sivalabs/devzone/config/WebMvcConfig.java +++ b/application/src/main/java/com/sivalabs/devzone/config/WebMvcConfig.java @@ -2,7 +2,6 @@ import com.sivalabs.devzone.config.argresolvers.CurrentUserArgumentResolver; import java.util.List; -import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.HiddenHttpMethodFilter; @@ -12,10 +11,13 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -@RequiredArgsConstructor public class WebMvcConfig implements WebMvcConfigurer { private final CurrentUserArgumentResolver currentUserArgumentResolver; + public WebMvcConfig(CurrentUserArgumentResolver currentUserArgumentResolver) { + this.currentUserArgumentResolver = currentUserArgumentResolver; + } + @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addRedirectViewController("/", "/links"); diff --git a/application/src/main/java/com/sivalabs/devzone/config/argresolvers/CurrentUserArgumentResolver.java b/application/src/main/java/com/sivalabs/devzone/config/argresolvers/CurrentUserArgumentResolver.java index bb3f1eb..8ea9b94 100644 --- a/application/src/main/java/com/sivalabs/devzone/config/argresolvers/CurrentUserArgumentResolver.java +++ b/application/src/main/java/com/sivalabs/devzone/config/argresolvers/CurrentUserArgumentResolver.java @@ -3,7 +3,6 @@ import com.sivalabs.devzone.config.annotations.CurrentUser; import com.sivalabs.devzone.users.domain.services.SecurityService; import java.lang.annotation.Annotation; -import lombok.RequiredArgsConstructor; import org.springframework.core.MethodParameter; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.stereotype.Component; @@ -13,10 +12,13 @@ import org.springframework.web.method.support.ModelAndViewContainer; @Component -@RequiredArgsConstructor public class CurrentUserArgumentResolver implements HandlerMethodArgumentResolver { private final SecurityService securityService; + public CurrentUserArgumentResolver(SecurityService securityService) { + this.securityService = securityService; + } + @Override public boolean supportsParameter(MethodParameter methodParameter) { return findMethodAnnotation(CurrentUser.class, methodParameter) != null; diff --git a/application/src/main/java/com/sivalabs/devzone/config/logging/LoggingAspect.java b/application/src/main/java/com/sivalabs/devzone/config/logging/LoggingAspect.java index c482283..20600a0 100644 --- a/application/src/main/java/com/sivalabs/devzone/config/logging/LoggingAspect.java +++ b/application/src/main/java/com/sivalabs/devzone/config/logging/LoggingAspect.java @@ -1,19 +1,21 @@ package com.sivalabs.devzone.config.logging; -import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Aspect @Component -@Slf4j public class LoggingAspect { + private static final Logger log = LoggerFactory.getLogger(LoggingAspect.class); + @Pointcut( "within(@org.springframework.stereotype.Repository *)" + " || within(@org.springframework.stereotype.Service *)" diff --git a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityConfig.java b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityConfig.java index 878f249..4baecb6 100644 --- a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityConfig.java +++ b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityConfig.java @@ -1,11 +1,5 @@ package com.sivalabs.devzone.config.security; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; +/* @Configuration public class SecurityConfig { @@ -19,4 +13,4 @@ public AuthenticationManager authenticationManager(AuthenticationConfiguration a throws Exception { return authConfig.getAuthenticationManager(); } -} +}*/ diff --git a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUser.java b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUser.java index e1687ea..3b1bc64 100755 --- a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUser.java +++ b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUser.java @@ -2,10 +2,8 @@ import com.sivalabs.devzone.users.domain.models.User; import java.util.Set; -import lombok.EqualsAndHashCode; import org.springframework.security.core.authority.SimpleGrantedAuthority; -@EqualsAndHashCode(callSuper = true) public class SecurityUser extends org.springframework.security.core.userdetails.User { private final String name; diff --git a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUserDetailsService.java b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUserDetailsService.java index 43049a2..f912289 100755 --- a/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUserDetailsService.java +++ b/application/src/main/java/com/sivalabs/devzone/config/security/SecurityUserDetailsService.java @@ -1,18 +1,19 @@ package com.sivalabs.devzone.config.security; import com.sivalabs.devzone.users.domain.services.UserService; -import lombok.RequiredArgsConstructor; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @Service("userDetailsService") -@RequiredArgsConstructor public class SecurityUserDetailsService implements UserDetailsService { - private final UserService userService; + public SecurityUserDetailsService(UserService userService) { + this.userService = userService; + } + @Override public UserDetails loadUserByUsername(String username) { return userService diff --git a/application/src/main/java/com/sivalabs/devzone/config/security/WebSecurityConfig.java b/application/src/main/java/com/sivalabs/devzone/config/security/WebSecurityConfig.java index 09a7ee1..4c0eb3c 100755 --- a/application/src/main/java/com/sivalabs/devzone/config/security/WebSecurityConfig.java +++ b/application/src/main/java/com/sivalabs/devzone/config/security/WebSecurityConfig.java @@ -1,8 +1,8 @@ package com.sivalabs.devzone.config.security; import com.sivalabs.devzone.users.domain.models.RoleEnum; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.access.hierarchicalroles.RoleHierarchy; @@ -10,6 +10,9 @@ import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; @@ -17,9 +20,13 @@ @Configuration @EnableWebSecurity @EnableMethodSecurity -@RequiredArgsConstructor -@Slf4j public class WebSecurityConfig { + private static final Logger log = LoggerFactory.getLogger(WebSecurityConfig.class); + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { @@ -50,15 +57,18 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti } @Bean - public RoleHierarchy roleHierarchy() { + public WebSecurityCustomizer ignoringCustomizer() { + return (web) -> web.expressionHandler(webSecurityExpressionHandler()); + } + + RoleHierarchy roleHierarchy() { RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl(); roleHierarchy.setHierarchy(RoleEnum.getRoleHierarchy()); log.debug("RoleHierarchy: {}", RoleEnum.getRoleHierarchy()); return roleHierarchy; } - @Bean - public DefaultWebSecurityExpressionHandler webSecurityExpressionHandler() { + DefaultWebSecurityExpressionHandler webSecurityExpressionHandler() { DefaultWebSecurityExpressionHandler expressionHandler = new DefaultWebSecurityExpressionHandler(); expressionHandler.setRoleHierarchy(roleHierarchy()); diff --git a/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/CategoryEntity.java b/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/CategoryEntity.java index e4d69c2..c61ba67 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/CategoryEntity.java +++ b/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/CategoryEntity.java @@ -6,22 +6,16 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import jakarta.validation.constraints.NotEmpty; import java.io.Serializable; -import lombok.Getter; -import lombok.Setter; @Entity @Table(name = "categories") -@Setter -@Getter public class CategoryEntity extends BaseEntity implements Serializable { @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "cat_id_generator") - @SequenceGenerator(name = "cat_id_generator", sequenceName = "cat_id_seq") + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) @@ -43,4 +37,20 @@ public boolean equals(Object o) { public int hashCode() { return getClass().hashCode(); } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/LinkEntity.java b/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/LinkEntity.java index 819d4c8..6418447 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/LinkEntity.java +++ b/application/src/main/java/com/sivalabs/devzone/links/adapter/entities/LinkEntity.java @@ -10,21 +10,15 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; -import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import jakarta.validation.constraints.NotEmpty; import java.io.Serializable; -import lombok.Getter; -import lombok.Setter; -@Setter -@Getter @Entity @Table(name = "links") public class LinkEntity extends BaseEntity implements Serializable { @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "link_id_generator") - @SequenceGenerator(name = "link_id_generator", sequenceName = "link_id_seq") + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) @@ -60,4 +54,44 @@ public boolean equals(Object o) { public int hashCode() { return getClass().hashCode(); } + + public Long getId() { + return this.id; + } + + public String getUrl() { + return this.url; + } + + public String getTitle() { + return this.title; + } + + public CategoryEntity getCategory() { + return this.category; + } + + public UserEntity getCreatedBy() { + return this.createdBy; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setCategory(CategoryEntity category) { + this.category = category; + } + + public void setCreatedBy(UserEntity createdBy) { + this.createdBy = createdBy; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/adapter/mappers/LinkMapper.java b/application/src/main/java/com/sivalabs/devzone/links/adapter/mappers/LinkMapper.java index 88651e7..1089957 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/adapter/mappers/LinkMapper.java +++ b/application/src/main/java/com/sivalabs/devzone/links/adapter/mappers/LinkMapper.java @@ -3,15 +3,18 @@ import com.sivalabs.devzone.links.adapter.entities.LinkEntity; import com.sivalabs.devzone.links.domain.models.Link; import com.sivalabs.devzone.users.adapter.mappers.UserMapper; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @Component -@RequiredArgsConstructor public class LinkMapper { private final CategoryMapper categoryMapper; private final UserMapper userMapper; + public LinkMapper(CategoryMapper categoryMapper, UserMapper userMapper) { + this.categoryMapper = categoryMapper; + this.userMapper = userMapper; + } + public LinkEntity toEntity(Link link) { LinkEntity linkEntity = new LinkEntity(); linkEntity.setId(link.getId()); diff --git a/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/CategoryRepositoryImpl.java b/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/CategoryRepositoryImpl.java index fa7c732..464f902 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/CategoryRepositoryImpl.java +++ b/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/CategoryRepositoryImpl.java @@ -4,16 +4,20 @@ import com.sivalabs.devzone.links.domain.models.Category; import com.sivalabs.devzone.links.domain.repositories.CategoryRepository; import java.util.List; -import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; @Component -@RequiredArgsConstructor class CategoryRepositoryImpl implements CategoryRepository { private final JpaCategoryRepository jpaCategoryRepository; private final CategoryMapper categoryMapper; + public CategoryRepositoryImpl( + JpaCategoryRepository jpaCategoryRepository, CategoryMapper categoryMapper) { + this.jpaCategoryRepository = jpaCategoryRepository; + this.categoryMapper = categoryMapper; + } + @Override public List findAll() { Sort sort = Sort.by("name"); diff --git a/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/LinkRepositoryImpl.java b/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/LinkRepositoryImpl.java index 8ad89d7..f06b200 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/LinkRepositoryImpl.java +++ b/application/src/main/java/com/sivalabs/devzone/links/adapter/repositories/LinkRepositoryImpl.java @@ -11,7 +11,6 @@ import com.sivalabs.devzone.links.domain.repositories.LinkRepository; import com.sivalabs.devzone.users.adapter.entities.UserEntity; import java.util.Optional; -import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; @@ -20,7 +19,6 @@ import org.springframework.stereotype.Repository; @Repository -@RequiredArgsConstructor class LinkRepositoryImpl implements LinkRepository { private static final Integer PAGE_SIZE = 15; private final JpaLinkRepository jpaLinkRepository; @@ -29,6 +27,19 @@ class LinkRepositoryImpl implements LinkRepository { private final CategoryRepository categoryRepository; private final LinkMapper linkMapper; + public LinkRepositoryImpl( + JpaLinkRepository jpaLinkRepository, + JpaLinkCreatorRepository jpaLinkCreatorRepository, + JpaCategoryRepository jpaCategoryRepository, + CategoryRepository categoryRepository, + LinkMapper linkMapper) { + this.jpaLinkRepository = jpaLinkRepository; + this.jpaLinkCreatorRepository = jpaLinkCreatorRepository; + this.jpaCategoryRepository = jpaCategoryRepository; + this.categoryRepository = categoryRepository; + this.linkMapper = linkMapper; + } + @Override public Optional findById(Long id) { return jpaLinkRepository.findById(id).map(linkMapper::toModel); diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/models/Category.java b/application/src/main/java/com/sivalabs/devzone/links/domain/models/Category.java index a3d2cb7..56ece64 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/models/Category.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/models/Category.java @@ -2,13 +2,7 @@ import java.time.LocalDateTime; import java.util.Set; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -@Setter -@Getter -@NoArgsConstructor public class Category { private Long id; private String name; @@ -21,6 +15,8 @@ public Category(Long id, String name) { this.name = name; } + public Category() {} + @Override public boolean equals(Object o) { if (this == o) { @@ -36,4 +32,44 @@ public boolean equals(Object o) { public int hashCode() { return getClass().hashCode(); } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public Set getLinks() { + return this.links; + } + + public LocalDateTime getCreatedAt() { + return this.createdAt; + } + + public LocalDateTime getUpdatedAt() { + return this.updatedAt; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setLinks(Set links) { + this.links = links; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/models/CreateLinkRequest.java b/application/src/main/java/com/sivalabs/devzone/links/domain/models/CreateLinkRequest.java index e287871..2647a5d 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/models/CreateLinkRequest.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/models/CreateLinkRequest.java @@ -1,9 +1,7 @@ package com.sivalabs.devzone.links.domain.models; import jakarta.validation.constraints.NotEmpty; -import lombok.Data; -@Data public class CreateLinkRequest { @NotEmpty(message = "URL should not be blank") private String url; @@ -11,4 +9,38 @@ public class CreateLinkRequest { private String title; private String category; private Long createdUserId; + + public CreateLinkRequest() {} + + public String getUrl() { + return this.url; + } + + public String getTitle() { + return this.title; + } + + public String getCategory() { + return this.category; + } + + public Long getCreatedUserId() { + return this.createdUserId; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setCategory(String category) { + this.category = category; + } + + public void setCreatedUserId(Long createdUserId) { + this.createdUserId = createdUserId; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/models/Link.java b/application/src/main/java/com/sivalabs/devzone/links/domain/models/Link.java index 7dd701c..22a7e9b 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/models/Link.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/models/Link.java @@ -2,11 +2,7 @@ import com.sivalabs.devzone.users.domain.models.User; import java.time.LocalDateTime; -import lombok.Getter; -import lombok.Setter; -@Setter -@Getter public class Link { private Long id; private String url; @@ -16,21 +12,59 @@ public class Link { private LocalDateTime createdAt; private LocalDateTime updatedAt; - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } + public Long getId() { + return this.id; + } + + public String getUrl() { + return this.url; + } + + public String getTitle() { + return this.title; + } + + public Category getCategory() { + return this.category; + } + + public User getCreatedBy() { + return this.createdBy; + } + + public LocalDateTime getCreatedAt() { + return this.createdAt; + } - if (!(o instanceof Link other)) { - return false; - } + public LocalDateTime getUpdatedAt() { + return this.updatedAt; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setCategory(Category category) { + this.category = category; + } + + public void setCreatedBy(User createdBy) { + this.createdBy = createdBy; + } - return id != null && id.equals(other.getId()); + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; } - @Override - public int hashCode() { - return getClass().hashCode(); + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/models/LinkDTO.java b/application/src/main/java/com/sivalabs/devzone/links/domain/models/LinkDTO.java index ee13688..8fce88f 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/models/LinkDTO.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/models/LinkDTO.java @@ -1,9 +1,7 @@ package com.sivalabs.devzone.links.domain.models; import java.time.LocalDateTime; -import lombok.Data; -@Data public class LinkDTO { private Long id; private String url; @@ -14,4 +12,78 @@ public class LinkDTO { private LocalDateTime createdAt; private LocalDateTime updatedAt; private boolean editable; + + public LinkDTO() {} + + public Long getId() { + return this.id; + } + + public String getUrl() { + return this.url; + } + + public String getTitle() { + return this.title; + } + + public String getCategory() { + return this.category; + } + + public Long getCreatedUserId() { + return this.createdUserId; + } + + public String getCreatedUserName() { + return this.createdUserName; + } + + public LocalDateTime getCreatedAt() { + return this.createdAt; + } + + public LocalDateTime getUpdatedAt() { + return this.updatedAt; + } + + public boolean isEditable() { + return this.editable; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setCategory(String category) { + this.category = category; + } + + public void setCreatedUserId(Long createdUserId) { + this.createdUserId = createdUserId; + } + + public void setCreatedUserName(String createdUserName) { + this.createdUserName = createdUserName; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + public void setEditable(boolean editable) { + this.editable = editable; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/models/UpdateLinkRequest.java b/application/src/main/java/com/sivalabs/devzone/links/domain/models/UpdateLinkRequest.java index 9b11e56..3cd5636 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/models/UpdateLinkRequest.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/models/UpdateLinkRequest.java @@ -1,9 +1,7 @@ package com.sivalabs.devzone.links.domain.models; import jakarta.validation.constraints.NotEmpty; -import lombok.Data; -@Data public class UpdateLinkRequest { private Long id; @@ -12,4 +10,36 @@ public class UpdateLinkRequest { private String title; private String category; + + public Long getId() { + return this.id; + } + + public String getUrl() { + return this.url; + } + + public String getTitle() { + return this.title; + } + + public String getCategory() { + return this.category; + } + + public void setId(Long id) { + this.id = id; + } + + public void setUrl(String url) { + this.url = url; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setCategory(String category) { + this.category = category; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinkService.java b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinkService.java index 28e4cb9..e148015 100755 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinkService.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinkService.java @@ -14,20 +14,23 @@ import com.sivalabs.devzone.users.domain.models.User; import java.util.List; import java.util.Optional; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -@RequiredArgsConstructor -@Slf4j public class LinkService { + private static final Logger log = org.slf4j.LoggerFactory.getLogger(LinkService.class); private final CategoryRepository categoryRepository; private final LinkRepository linkRepository; + public LinkService(CategoryRepository categoryRepository, LinkRepository linkRepository) { + this.categoryRepository = categoryRepository; + this.linkRepository = linkRepository; + } + @Transactional(readOnly = true) public PagedResult getLinks(Integer page) { log.debug("process=get_links, page={}", page); diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksExportService.java b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksExportService.java index 3640f90..2984caf 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksExportService.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksExportService.java @@ -4,16 +4,18 @@ import com.sivalabs.devzone.links.domain.models.Link; import java.nio.charset.StandardCharsets; import java.util.List; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -@RequiredArgsConstructor public class LinksExportService { private final LinkService linkService; + public LinksExportService(LinkService linkService) { + this.linkService = linkService; + } + public byte[] getLinksCSVFileAsString() { StringBuilder sb = new StringBuilder(); sb.append("url,title,category").append(System.lineSeparator()); diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksImportService.java b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksImportService.java index ff1fca5..c5903f8 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksImportService.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/services/LinksImportService.java @@ -10,9 +10,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.List; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; import org.springframework.core.io.ClassPathResource; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -20,12 +19,15 @@ @Service @Transactional -@RequiredArgsConstructor -@Slf4j public class LinksImportService { public static final Long SYSTEM_USER_ID = 1L; + private static final Logger log = org.slf4j.LoggerFactory.getLogger(LinksImportService.class); private final LinkService linkService; + public LinksImportService(LinkService linkService) { + this.linkService = linkService; + } + @Async public void importLinksAsync(List fileNames) throws Exception { linkService.deleteAllLinks(); diff --git a/application/src/main/java/com/sivalabs/devzone/links/domain/utils/JsoupUtils.java b/application/src/main/java/com/sivalabs/devzone/links/domain/utils/JsoupUtils.java index 92e8305..6382cb4 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/domain/utils/JsoupUtils.java +++ b/application/src/main/java/com/sivalabs/devzone/links/domain/utils/JsoupUtils.java @@ -1,12 +1,14 @@ package com.sivalabs.devzone.links.domain.utils; import java.io.IOException; -import lombok.extern.slf4j.Slf4j; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -@Slf4j public class JsoupUtils { + private static final Logger log = LoggerFactory.getLogger(JsoupUtils.class); + public static String getTitle(String url) { try { Document doc = Jsoup.connect(url).get(); diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CategoryRestController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CategoryRestController.java index c54252f..a2fa6be 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CategoryRestController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CategoryRestController.java @@ -3,21 +3,20 @@ import com.sivalabs.devzone.links.domain.models.Category; import com.sivalabs.devzone.links.domain.services.LinkService; import java.util.List; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/categories") -@RequiredArgsConstructor -@Slf4j public class CategoryRestController { private final LinkService linkService; + public CategoryRestController(LinkService linkService) { + this.linkService = linkService; + } + @GetMapping - // @PreAuthorize("permitAll()") public List allCategories() { return linkService.findAllCategories(); } diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CreateLinkController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CreateLinkController.java index d58fb22..a2955ad 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CreateLinkController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/CreateLinkController.java @@ -7,8 +7,8 @@ import com.sivalabs.devzone.links.domain.services.LinkService; import com.sivalabs.devzone.users.domain.models.User; import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -17,17 +17,18 @@ import org.springframework.web.bind.annotation.PostMapping; @Controller -@RequiredArgsConstructor -@Slf4j public class CreateLinkController { + private static final Logger log = LoggerFactory.getLogger(CreateLinkController.class); private static final String MODEL_ATTRIBUTE_LINK = "link"; private final LinkService linkService; + public CreateLinkController(LinkService linkService) { + this.linkService = linkService; + } + @GetMapping("/links/new") @AnyAuthenticatedUser - // @PreAuthorize("hasAnyRole('ROLE_USER', 'ROLE_ADMIN')") - // @PreAuthorize("hasRole('ROLE_USER')") public String newLinkForm(Model model) { model.addAttribute(MODEL_ATTRIBUTE_LINK, new CreateLinkRequest()); return "add-link"; diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/DeleteLinkController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/DeleteLinkController.java index d66c65b..9835887 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/DeleteLinkController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/DeleteLinkController.java @@ -8,8 +8,6 @@ import com.sivalabs.devzone.links.domain.services.LinkService; import com.sivalabs.devzone.users.domain.models.User; import java.util.Objects; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.DeleteMapping; @@ -17,11 +15,13 @@ import org.springframework.web.bind.annotation.ResponseStatus; @Controller -@RequiredArgsConstructor -@Slf4j public class DeleteLinkController { private final LinkService linkService; + public DeleteLinkController(LinkService linkService) { + this.linkService = linkService; + } + @DeleteMapping("/links/{id}") @ResponseStatus @AnyAuthenticatedUser diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/GetLinksController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/GetLinksController.java index 445536a..d90ffc4 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/GetLinksController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/GetLinksController.java @@ -7,9 +7,9 @@ import com.sivalabs.devzone.links.domain.services.LinkService; import com.sivalabs.devzone.links.web.mappers.LinkDtoMapper; import java.util.List; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.stereotype.Controller; @@ -18,15 +18,19 @@ import org.springframework.web.bind.annotation.RequestParam; @Controller -@RequiredArgsConstructor @Loggable -@Slf4j public class GetLinksController { + private static final Logger log = LoggerFactory.getLogger(GetLinksController.class); private static final String PAGINATION_PREFIX = "paginationPrefix"; private final LinkService linkService; private final LinkDtoMapper linkDTOMapper; + public GetLinksController(LinkService linkService, LinkDtoMapper linkDTOMapper) { + this.linkService = linkService; + this.linkDTOMapper = linkDTOMapper; + } + @GetMapping("/links") public String home( @RequestParam(name = "query", required = false) String query, diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksDownloadController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksDownloadController.java index 6b4f348..607359a 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksDownloadController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksDownloadController.java @@ -4,19 +4,19 @@ import com.sivalabs.devzone.links.domain.services.LinksExportService; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller @AdminOnly -@RequiredArgsConstructor -@Slf4j public class LinksDownloadController { private final LinksExportService linksExportService; + public LinksDownloadController(LinksExportService linksExportService) { + this.linksExportService = linksExportService; + } + @GetMapping("/links/download") public void downloadBookmarks(HttpServletResponse response) throws IOException { String filename = "links.csv"; diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksUploadController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksUploadController.java index 71cba7e..a741b07 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksUploadController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/LinksUploadController.java @@ -4,8 +4,6 @@ import com.sivalabs.devzone.config.annotations.AdminOnly; import com.sivalabs.devzone.links.domain.services.LinksImportService; import java.io.IOException; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -15,11 +13,13 @@ @Controller @AdminOnly -@RequiredArgsConstructor -@Slf4j public class LinksUploadController { private final LinksImportService linksImportService; + public LinksUploadController(LinksImportService linksImportService) { + this.linksImportService = linksImportService; + } + @GetMapping("/links/upload") public String showUploadBookmarksPage() { return "upload-links"; diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/PageMetadataController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/PageMetadataController.java index 0c936ba..550b0e8 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/PageMetadataController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/PageMetadataController.java @@ -3,17 +3,19 @@ import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import lombok.extern.slf4j.Slf4j; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController -@Slf4j public class PageMetadataController { + private static final Logger log = LoggerFactory.getLogger(PageMetadataController.class); + @GetMapping("/api/page-metadata") public Map getPageMetadata(@RequestParam String url) { Map metadata = new ConcurrentHashMap<>(); diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/UpdateLinkController.java b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/UpdateLinkController.java index 5f7f762..5d496a0 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/controllers/UpdateLinkController.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/controllers/UpdateLinkController.java @@ -10,8 +10,8 @@ import com.sivalabs.devzone.users.domain.models.User; import jakarta.validation.Valid; import java.util.Objects; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -21,13 +21,16 @@ import org.springframework.web.bind.annotation.PutMapping; @Controller -@RequiredArgsConstructor -@Slf4j public class UpdateLinkController { private static final String MODEL_ATTRIBUTE_LINK = "link"; + private static final Logger log = LoggerFactory.getLogger(UpdateLinkController.class); private final LinkService linkService; + public UpdateLinkController(LinkService linkService) { + this.linkService = linkService; + } + @GetMapping("/links/{id}/edit") @AnyAuthenticatedUser public String editLinkForm(@PathVariable Long id, @CurrentUser User loginUser, Model model) { diff --git a/application/src/main/java/com/sivalabs/devzone/links/web/mappers/LinkDtoMapper.java b/application/src/main/java/com/sivalabs/devzone/links/web/mappers/LinkDtoMapper.java index e33d458..ad2749b 100644 --- a/application/src/main/java/com/sivalabs/devzone/links/web/mappers/LinkDtoMapper.java +++ b/application/src/main/java/com/sivalabs/devzone/links/web/mappers/LinkDtoMapper.java @@ -7,14 +7,16 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @Component -@RequiredArgsConstructor public class LinkDtoMapper { private final SecurityService securityService; + public LinkDtoMapper(SecurityService securityService) { + this.securityService = securityService; + } + public List toDTOs(List links) { if (links == null) { return new ArrayList<>(0); diff --git a/application/src/main/java/com/sivalabs/devzone/users/adapter/entities/UserEntity.java b/application/src/main/java/com/sivalabs/devzone/users/adapter/entities/UserEntity.java index ed3edd1..27b51ae 100755 --- a/application/src/main/java/com/sivalabs/devzone/users/adapter/entities/UserEntity.java +++ b/application/src/main/java/com/sivalabs/devzone/users/adapter/entities/UserEntity.java @@ -9,24 +9,18 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.Size; import java.io.Serializable; -import lombok.Getter; -import lombok.Setter; @Entity @Table(name = "users") -@Setter -@Getter public class UserEntity extends BaseEntity implements Serializable { @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_generator") - @SequenceGenerator(name = "user_id_generator", sequenceName = "user_id_seq") + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) @@ -64,4 +58,44 @@ public boolean equals(Object o) { public int hashCode() { return getClass().hashCode(); } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public String getEmail() { + return this.email; + } + + public String getPassword() { + return this.password; + } + + public RoleEnum getRole() { + return this.role; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } + + public void setRole(RoleEnum role) { + this.role = role; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/users/adapter/repositories/UserRepositoryImpl.java b/application/src/main/java/com/sivalabs/devzone/users/adapter/repositories/UserRepositoryImpl.java index d6effcf..a272ca5 100755 --- a/application/src/main/java/com/sivalabs/devzone/users/adapter/repositories/UserRepositoryImpl.java +++ b/application/src/main/java/com/sivalabs/devzone/users/adapter/repositories/UserRepositoryImpl.java @@ -5,15 +5,18 @@ import com.sivalabs.devzone.users.domain.models.User; import com.sivalabs.devzone.users.domain.repositories.UserRepository; import java.util.Optional; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @Repository -@RequiredArgsConstructor class UserRepositoryImpl implements UserRepository { private final JpaUserRepository jpaUserRepository; private final UserMapper userMapper; + public UserRepositoryImpl(JpaUserRepository jpaUserRepository, UserMapper userMapper) { + this.jpaUserRepository = jpaUserRepository; + this.userMapper = userMapper; + } + public Optional findByEmail(String email) { return jpaUserRepository.findByEmail(email); } diff --git a/application/src/main/java/com/sivalabs/devzone/users/domain/models/ChangePasswordRequest.java b/application/src/main/java/com/sivalabs/devzone/users/domain/models/ChangePasswordRequest.java index 89ece55..2a46015 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/domain/models/ChangePasswordRequest.java +++ b/application/src/main/java/com/sivalabs/devzone/users/domain/models/ChangePasswordRequest.java @@ -1,15 +1,7 @@ package com.sivalabs.devzone.users.domain.models; import jakarta.validation.constraints.NotBlank; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor + public class ChangePasswordRequest { @NotBlank(message = "Old password cannot be blank") @@ -17,4 +9,27 @@ public class ChangePasswordRequest { @NotBlank(message = "New password cannot be blank") private String newPassword; + + public ChangePasswordRequest(String oldPassword, String newPassword) { + this.oldPassword = oldPassword; + this.newPassword = newPassword; + } + + public ChangePasswordRequest() {} + + public String getOldPassword() { + return this.oldPassword; + } + + public String getNewPassword() { + return this.newPassword; + } + + public void setOldPassword(String oldPassword) { + this.oldPassword = oldPassword; + } + + public void setNewPassword(String newPassword) { + this.newPassword = newPassword; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/users/domain/models/CreateUserRequest.java b/application/src/main/java/com/sivalabs/devzone/users/domain/models/CreateUserRequest.java index a868aed..1b91b62 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/domain/models/CreateUserRequest.java +++ b/application/src/main/java/com/sivalabs/devzone/users/domain/models/CreateUserRequest.java @@ -2,15 +2,7 @@ import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@NoArgsConstructor -@AllArgsConstructor -@Data -@Builder + public class CreateUserRequest { @NotBlank(message = "Name cannot be blank") private String name; @@ -21,4 +13,36 @@ public class CreateUserRequest { @NotBlank(message = "Password cannot be blank") private String password; + + public CreateUserRequest(String name, String email, String password) { + this.name = name; + this.email = email; + this.password = password; + } + + public CreateUserRequest() {} + + public String getName() { + return this.name; + } + + public String getEmail() { + return this.email; + } + + public String getPassword() { + return this.password; + } + + public void setName(String name) { + this.name = name; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/users/domain/models/User.java b/application/src/main/java/com/sivalabs/devzone/users/domain/models/User.java index 6b25013..2f75716 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/domain/models/User.java +++ b/application/src/main/java/com/sivalabs/devzone/users/domain/models/User.java @@ -4,13 +4,7 @@ import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import java.util.Arrays; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -@Data -@NoArgsConstructor -@AllArgsConstructor public class User { private Long id; @@ -27,6 +21,16 @@ public class User { private RoleEnum role; + public User(Long id, String name, String email, String password, RoleEnum role) { + this.id = id; + this.name = name; + this.email = email; + this.password = password; + this.role = role; + } + + public User() {} + public boolean isAdminOrModerator() { return hasAnyRole(RoleEnum.ROLE_ADMIN, RoleEnum.ROLE_MODERATOR); } @@ -34,4 +38,44 @@ public boolean isAdminOrModerator() { public boolean hasAnyRole(RoleEnum... roles) { return Arrays.asList(roles).contains(this.getRole()); } + + public Long getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public String getEmail() { + return this.email; + } + + public String getPassword() { + return this.password; + } + + public RoleEnum getRole() { + return this.role; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } + + public void setRole(RoleEnum role) { + this.role = role; + } } diff --git a/application/src/main/java/com/sivalabs/devzone/users/domain/services/SecurityService.java b/application/src/main/java/com/sivalabs/devzone/users/domain/services/SecurityService.java index d42d9a8..8c7a666 100755 --- a/application/src/main/java/com/sivalabs/devzone/users/domain/services/SecurityService.java +++ b/application/src/main/java/com/sivalabs/devzone/users/domain/services/SecurityService.java @@ -2,7 +2,6 @@ import com.sivalabs.devzone.config.security.SecurityUser; import com.sivalabs.devzone.users.domain.models.User; -import lombok.RequiredArgsConstructor; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -12,10 +11,13 @@ @Service @Transactional -@RequiredArgsConstructor public class SecurityService { private final UserService userService; + public SecurityService(UserService userService) { + this.userService = userService; + } + public User loginUser() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null diff --git a/application/src/main/java/com/sivalabs/devzone/users/domain/services/UserService.java b/application/src/main/java/com/sivalabs/devzone/users/domain/services/UserService.java index b47e0f6..1b9a090 100755 --- a/application/src/main/java/com/sivalabs/devzone/users/domain/services/UserService.java +++ b/application/src/main/java/com/sivalabs/devzone/users/domain/services/UserService.java @@ -9,20 +9,23 @@ import com.sivalabs.devzone.users.domain.models.User; import com.sivalabs.devzone.users.domain.repositories.UserRepository; import java.util.Optional; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -@Slf4j -@RequiredArgsConstructor public class UserService { + private static final Logger log = org.slf4j.LoggerFactory.getLogger(UserService.class); private final PasswordEncoder passwordEncoder; private final UserRepository userRepository; + public UserService(PasswordEncoder passwordEncoder, UserRepository userRepository) { + this.passwordEncoder = passwordEncoder; + this.userRepository = userRepository; + } + @Transactional(readOnly = true) public Optional getUserByEmail(String email) { return userRepository.findByEmail(email); diff --git a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/ChangePasswordController.java b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/ChangePasswordController.java index 038826a..d20b6c9 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/ChangePasswordController.java +++ b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/ChangePasswordController.java @@ -7,8 +7,8 @@ import com.sivalabs.devzone.users.domain.models.User; import com.sivalabs.devzone.users.domain.services.UserService; import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -19,11 +19,14 @@ @Controller @AnyAuthenticatedUser -@RequiredArgsConstructor -@Slf4j public class ChangePasswordController { + private static final Logger log = LoggerFactory.getLogger(ChangePasswordController.class); private final UserService userService; + public ChangePasswordController(UserService userService) { + this.userService = userService; + } + @GetMapping("/change-password") public String changePasswordForm(Model model) { model.addAttribute("changePassword", new ChangePasswordRequest()); diff --git a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/RegistrationController.java b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/RegistrationController.java index 47f2619..57be57c 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/RegistrationController.java +++ b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/RegistrationController.java @@ -4,8 +4,8 @@ import com.sivalabs.devzone.users.domain.models.CreateUserRequest; import com.sivalabs.devzone.users.domain.services.UserService; import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -15,11 +15,14 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Controller -@RequiredArgsConstructor -@Slf4j public class RegistrationController { + private static final Logger log = LoggerFactory.getLogger(RegistrationController.class); private final UserService userService; + public RegistrationController(UserService userService) { + this.userService = userService; + } + @GetMapping("/registration") public String registrationForm(Model model) { model.addAttribute("user", new CreateUserRequest()); diff --git a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/UserProfileController.java b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/UserProfileController.java index e7e1842..327e8b6 100644 --- a/application/src/main/java/com/sivalabs/devzone/users/web/controllers/UserProfileController.java +++ b/application/src/main/java/com/sivalabs/devzone/users/web/controllers/UserProfileController.java @@ -5,19 +5,19 @@ import com.sivalabs.devzone.users.domain.models.User; import com.sivalabs.devzone.users.domain.services.UserService; import java.util.Optional; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller @AnyAuthenticatedUser -@RequiredArgsConstructor -@Slf4j public class UserProfileController { private final UserService userService; + public UserProfileController(UserService userService) { + this.userService = userService; + } + @GetMapping("/profile") public String viewProfile(Model model, @CurrentUser User loginUser) { Optional userOptional = userService.getUserById(loginUser.getId()); diff --git a/application/src/test/java/com/sivalabs/devzone/users/domain/services/UserServiceTest.java b/application/src/test/java/com/sivalabs/devzone/users/domain/services/UserServiceTest.java index 71460a5..b784f7e 100644 --- a/application/src/test/java/com/sivalabs/devzone/users/domain/services/UserServiceTest.java +++ b/application/src/test/java/com/sivalabs/devzone/users/domain/services/UserServiceTest.java @@ -33,11 +33,7 @@ void shouldUpdatePasswordIfValid() { User user = TestDataFactory.getMockUser(); user.setPassword(passwordEncoder.encode("siva123")); given(userRepository.findByEmail(email)).willReturn(Optional.of(user)); - ChangePasswordRequest request = - ChangePasswordRequest.builder() - .oldPassword("siva123") - .newPassword("siva456") - .build(); + ChangePasswordRequest request = new ChangePasswordRequest("siva123", "siva456"); userService.changePassword(email, request); } @@ -47,11 +43,7 @@ void shouldThrowErrorIfCurrentPasswordIsInvalid() { User user = TestDataFactory.getMockUser(); user.setPassword(passwordEncoder.encode("incorrect-password")); given(userRepository.findByEmail(email)).willReturn(Optional.of(user)); - ChangePasswordRequest request = - ChangePasswordRequest.builder() - .oldPassword("siva123") - .newPassword("siva456") - .build(); + ChangePasswordRequest request = new ChangePasswordRequest("siva123", "siva456"); assertThrows(DevZoneException.class, () -> userService.changePassword(email, request)); } } diff --git a/application/src/test/java/com/sivalabs/devzone/utils/LinkReaderUtils.java b/application/src/test/java/com/sivalabs/devzone/utils/LinkReaderUtils.java index 4292e0f..33d6a4c 100644 --- a/application/src/test/java/com/sivalabs/devzone/utils/LinkReaderUtils.java +++ b/application/src/test/java/com/sivalabs/devzone/utils/LinkReaderUtils.java @@ -9,7 +9,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Stream; -import lombok.Data; import org.springframework.web.client.RestTemplate; public class LinkReaderUtils { @@ -121,10 +120,11 @@ public void setData(DZoneData data) { } } -@Data class DZoneData { private List nodes; + public DZoneData() {} + public List getNodes() { return nodes; } diff --git a/aws-terraform/.gitignore b/deployment/aws-terraform/.gitignore similarity index 100% rename from aws-terraform/.gitignore rename to deployment/aws-terraform/.gitignore diff --git a/aws-terraform/.terraform.lock.hcl b/deployment/aws-terraform/.terraform.lock.hcl similarity index 100% rename from aws-terraform/.terraform.lock.hcl rename to deployment/aws-terraform/.terraform.lock.hcl diff --git a/aws-terraform/README.md b/deployment/aws-terraform/README.md similarity index 100% rename from aws-terraform/README.md rename to deployment/aws-terraform/README.md diff --git a/aws-terraform/ecr/main.tf b/deployment/aws-terraform/ecr/main.tf similarity index 100% rename from aws-terraform/ecr/main.tf rename to deployment/aws-terraform/ecr/main.tf diff --git a/aws-terraform/ecr/outputs.tf b/deployment/aws-terraform/ecr/outputs.tf similarity index 100% rename from aws-terraform/ecr/outputs.tf rename to deployment/aws-terraform/ecr/outputs.tf diff --git a/aws-terraform/ecr/variables.tf b/deployment/aws-terraform/ecr/variables.tf similarity index 100% rename from aws-terraform/ecr/variables.tf rename to deployment/aws-terraform/ecr/variables.tf diff --git a/aws-terraform/ecs/cloudwatch.tf b/deployment/aws-terraform/ecs/cloudwatch.tf similarity index 100% rename from aws-terraform/ecs/cloudwatch.tf rename to deployment/aws-terraform/ecs/cloudwatch.tf diff --git a/aws-terraform/ecs/iam.tf b/deployment/aws-terraform/ecs/iam.tf similarity index 100% rename from aws-terraform/ecs/iam.tf rename to deployment/aws-terraform/ecs/iam.tf diff --git a/aws-terraform/ecs/main.tf b/deployment/aws-terraform/ecs/main.tf similarity index 100% rename from aws-terraform/ecs/main.tf rename to deployment/aws-terraform/ecs/main.tf diff --git a/aws-terraform/ecs/outputs.tf b/deployment/aws-terraform/ecs/outputs.tf similarity index 100% rename from aws-terraform/ecs/outputs.tf rename to deployment/aws-terraform/ecs/outputs.tf diff --git a/aws-terraform/ecs/security-groups.tf b/deployment/aws-terraform/ecs/security-groups.tf similarity index 100% rename from aws-terraform/ecs/security-groups.tf rename to deployment/aws-terraform/ecs/security-groups.tf diff --git a/aws-terraform/ecs/variables.tf b/deployment/aws-terraform/ecs/variables.tf similarity index 100% rename from aws-terraform/ecs/variables.tf rename to deployment/aws-terraform/ecs/variables.tf diff --git a/aws-terraform/main.tf b/deployment/aws-terraform/main.tf similarity index 100% rename from aws-terraform/main.tf rename to deployment/aws-terraform/main.tf diff --git a/aws-terraform/outputs.tf b/deployment/aws-terraform/outputs.tf similarity index 100% rename from aws-terraform/outputs.tf rename to deployment/aws-terraform/outputs.tf diff --git a/aws-terraform/rds/main.tf b/deployment/aws-terraform/rds/main.tf similarity index 100% rename from aws-terraform/rds/main.tf rename to deployment/aws-terraform/rds/main.tf diff --git a/aws-terraform/rds/outputs.tf b/deployment/aws-terraform/rds/outputs.tf similarity index 100% rename from aws-terraform/rds/outputs.tf rename to deployment/aws-terraform/rds/outputs.tf diff --git a/aws-terraform/rds/variables.tf b/deployment/aws-terraform/rds/variables.tf similarity index 100% rename from aws-terraform/rds/variables.tf rename to deployment/aws-terraform/rds/variables.tf diff --git a/aws-terraform/ssm/main.tf b/deployment/aws-terraform/ssm/main.tf similarity index 100% rename from aws-terraform/ssm/main.tf rename to deployment/aws-terraform/ssm/main.tf diff --git a/aws-terraform/ssm/outputs.tf b/deployment/aws-terraform/ssm/outputs.tf similarity index 100% rename from aws-terraform/ssm/outputs.tf rename to deployment/aws-terraform/ssm/outputs.tf diff --git a/aws-terraform/ssm/variables.tf b/deployment/aws-terraform/ssm/variables.tf similarity index 100% rename from aws-terraform/ssm/variables.tf rename to deployment/aws-terraform/ssm/variables.tf diff --git a/aws-terraform/terraform.tfvars.example b/deployment/aws-terraform/terraform.tfvars.example similarity index 100% rename from aws-terraform/terraform.tfvars.example rename to deployment/aws-terraform/terraform.tfvars.example diff --git a/aws-terraform/variables.tf b/deployment/aws-terraform/variables.tf similarity index 100% rename from aws-terraform/variables.tf rename to deployment/aws-terraform/variables.tf diff --git a/aws-terraform/versions.tf b/deployment/aws-terraform/versions.tf similarity index 100% rename from aws-terraform/versions.tf rename to deployment/aws-terraform/versions.tf diff --git a/aws-terraform/vpc/main.tf b/deployment/aws-terraform/vpc/main.tf similarity index 100% rename from aws-terraform/vpc/main.tf rename to deployment/aws-terraform/vpc/main.tf diff --git a/aws-terraform/vpc/outputs.tf b/deployment/aws-terraform/vpc/outputs.tf similarity index 100% rename from aws-terraform/vpc/outputs.tf rename to deployment/aws-terraform/vpc/outputs.tf diff --git a/aws-terraform/vpc/variables.tf b/deployment/aws-terraform/vpc/variables.tf similarity index 100% rename from aws-terraform/vpc/variables.tf rename to deployment/aws-terraform/vpc/variables.tf diff --git a/k8s-helm/README.md b/deployment/k8s-helm/README.md similarity index 100% rename from k8s-helm/README.md rename to deployment/k8s-helm/README.md diff --git a/k8s-helm/devzone/.helmignore b/deployment/k8s-helm/devzone/.helmignore similarity index 100% rename from k8s-helm/devzone/.helmignore rename to deployment/k8s-helm/devzone/.helmignore diff --git a/k8s-helm/devzone/Chart.yaml b/deployment/k8s-helm/devzone/Chart.yaml similarity index 100% rename from k8s-helm/devzone/Chart.yaml rename to deployment/k8s-helm/devzone/Chart.yaml diff --git a/k8s-helm/devzone/charts/postgresql/Chart.yaml b/deployment/k8s-helm/devzone/charts/postgresql/Chart.yaml similarity index 100% rename from k8s-helm/devzone/charts/postgresql/Chart.yaml rename to deployment/k8s-helm/devzone/charts/postgresql/Chart.yaml diff --git a/k8s-helm/devzone/charts/postgresql/templates/_helpers.tpl b/deployment/k8s-helm/devzone/charts/postgresql/templates/_helpers.tpl similarity index 100% rename from k8s-helm/devzone/charts/postgresql/templates/_helpers.tpl rename to deployment/k8s-helm/devzone/charts/postgresql/templates/_helpers.tpl diff --git a/k8s-helm/devzone/charts/postgresql/templates/service.yaml b/deployment/k8s-helm/devzone/charts/postgresql/templates/service.yaml similarity index 100% rename from k8s-helm/devzone/charts/postgresql/templates/service.yaml rename to deployment/k8s-helm/devzone/charts/postgresql/templates/service.yaml diff --git a/k8s-helm/devzone/charts/postgresql/values.yaml b/deployment/k8s-helm/devzone/charts/postgresql/values.yaml similarity index 100% rename from k8s-helm/devzone/charts/postgresql/values.yaml rename to deployment/k8s-helm/devzone/charts/postgresql/values.yaml diff --git a/k8s-helm/devzone/templates/_helpers.tpl b/deployment/k8s-helm/devzone/templates/_helpers.tpl similarity index 100% rename from k8s-helm/devzone/templates/_helpers.tpl rename to deployment/k8s-helm/devzone/templates/_helpers.tpl diff --git a/k8s-helm/devzone/templates/service.yaml b/deployment/k8s-helm/devzone/templates/service.yaml similarity index 100% rename from k8s-helm/devzone/templates/service.yaml rename to deployment/k8s-helm/devzone/templates/service.yaml diff --git a/k8s-helm/devzone/values.yaml b/deployment/k8s-helm/devzone/values.yaml similarity index 100% rename from k8s-helm/devzone/values.yaml rename to deployment/k8s-helm/devzone/values.yaml diff --git a/k8s/1-config.yaml b/deployment/k8s/1-config.yaml similarity index 100% rename from k8s/1-config.yaml rename to deployment/k8s/1-config.yaml diff --git a/k8s/2-postgres.yaml b/deployment/k8s/2-postgres.yaml similarity index 100% rename from k8s/2-postgres.yaml rename to deployment/k8s/2-postgres.yaml diff --git a/k8s/3-devzone.yaml b/deployment/k8s/3-devzone.yaml similarity index 100% rename from k8s/3-devzone.yaml rename to deployment/k8s/3-devzone.yaml diff --git a/k8s/4-ingress.yaml b/deployment/k8s/4-ingress.yaml similarity index 100% rename from k8s/4-ingress.yaml rename to deployment/k8s/4-ingress.yaml diff --git a/k8s/README.md b/deployment/k8s/README.md similarity index 100% rename from k8s/README.md rename to deployment/k8s/README.md diff --git a/kind/kind-cluster.sh b/deployment/kind/kind-cluster.sh similarity index 100% rename from kind/kind-cluster.sh rename to deployment/kind/kind-cluster.sh diff --git a/kind/kind-config.yml b/deployment/kind/kind-config.yml similarity index 100% rename from kind/kind-config.yml rename to deployment/kind/kind-config.yml diff --git a/run.sh b/run.sh index 78386d2..87cea61 100755 --- a/run.sh +++ b/run.sh @@ -6,8 +6,6 @@ declare dc_app=${project_dir}/docker/docker-compose-app.yml declare dc_elk=${project_dir}/docker/docker-compose-elk.yml declare dc_monitoring=${project_dir}/docker/docker-compose-monitoring.yml declare devzone="devzone" -declare elk=" elasticsearch logstash kibana" -declare monitoring="prometheus loki grafana" function build_api() { ./gradlew clean bootJar @@ -70,12 +68,12 @@ function stop_elk() { function k8sdeploy() { echo 'Deploying devzone to kubernetes....' - kubectl apply -f k8s/ + kubectl apply -f deploymnt/k8s/ } function k8sundeploy() { echo 'Undeploying devzone from kubernetes....' - kubectl delete -f k8s/ + kubectl delete -f deploymnt/k8s/ } action="start" diff --git a/skaffold.yaml b/skaffold.yaml index 765341e..63a1cd0 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -14,4 +14,4 @@ build: deploy: kubectl: manifests: - - k8s/*.yaml + - deployment/k8s/*.yaml