From 6d7755aa8aaa4931e5ba4d0ab7398f160c509e63 Mon Sep 17 00:00:00 2001 From: Lucas Josino Date: Sat, 22 Jun 2024 10:35:49 -0300 Subject: [PATCH 1/2] feat: Upgrade to spring 3.3 (#133) ### Features - Upgrade to Spring **3.3** and java **21** - Add trailing slash handler filter ### Changes - Replace imports from javax to jakarta - Replace deprecated URL with URI - Update switch structure - Use new `getFirst` method --- pom.xml | 61 ++++++++++++------- .../configs/security/SecurityConfig.java | 34 +++++------ .../advisor/ControllerAdvisor.java | 6 +- .../api/v1/OverviewController.java | 3 +- .../BaseAuthControllerInterface.java | 2 +- .../interfaces/BaseControllerInterface.java | 3 +- .../BaseOverviewControllerInterface.java | 3 +- .../interfaces/BaseTranslationInterface.java | 3 +- .../interfaces/SocialControllerInterface.java | 3 +- .../hawapi/filters/http/SnakeCaseFilter.java | 11 ++-- .../http/TrailingSlashHandlerFilter.java | 32 ++++++++++ .../lucasjosino/hawapi/models/ActorModel.java | 13 ++-- .../hawapi/models/ActorSocialModel.java | 2 +- .../hawapi/models/CharacterModel.java | 13 ++-- .../hawapi/models/EpisodeModel.java | 7 ++- .../lucasjosino/hawapi/models/GameModel.java | 19 +++--- .../hawapi/models/LocationModel.java | 7 ++- .../hawapi/models/OverviewModel.java | 9 +-- .../hawapi/models/SeasonModel.java | 11 ++-- .../hawapi/models/SoundtrackModel.java | 11 ++-- .../hawapi/models/base/BaseDTO.java | 2 +- .../hawapi/models/base/BaseModel.java | 14 ++--- .../hawapi/models/base/BaseTranslation.java | 2 +- .../models/base/BaseTranslationDTO.java | 6 +- .../hawapi/models/dto/ActorDTO.java | 2 +- .../hawapi/models/dto/ActorSocialDTO.java | 2 +- .../hawapi/models/dto/CharacterDTO.java | 2 +- .../hawapi/models/dto/EpisodeDTO.java | 6 +- .../hawapi/models/dto/GameDTO.java | 8 +-- .../hawapi/models/dto/LocationDTO.java | 4 +- .../hawapi/models/dto/OverviewDTO.java | 6 +- .../hawapi/models/dto/SeasonDTO.java | 8 +-- .../hawapi/models/dto/SoundtrackDTO.java | 6 +- .../hawapi/models/dto/auth/UserAuthDTO.java | 6 +- .../hawapi/models/dto/auth/UserDTO.java | 8 +-- .../models/dto/auth/UserRegistrationDTO.java | 9 ++- .../translation/EpisodeTranslationDTO.java | 5 +- .../dto/translation/GameTranslationDTO.java | 4 +- .../translation/LocationTranslationDTO.java | 5 +- .../translation/OverviewTranslationDTO.java | 5 +- .../dto/translation/SeasonTranslationDTO.java | 6 +- .../translations/EpisodeTranslation.java | 2 +- .../models/translations/GameTranslation.java | 7 ++- .../translations/LocationTranslation.java | 2 +- .../translations/OverviewTranslation.java | 2 +- .../translations/SeasonTranslation.java | 9 +-- .../hawapi/models/user/UserModel.java | 8 +-- .../base/impl/BaseRepositoryImpl.java | 11 ++-- .../specification/SpecificationBuilder.java | 46 ++++++-------- .../IndexFallbackResourceResolver.java | 3 +- .../hawapi/validators/BasicURLValidator.java | 7 ++- .../validators/annotations/BasicURL.java | 5 +- .../repositories/auth/AuthRepositoryTest.java | 3 +- .../EpisodeTranslationRepositoryTest.java | 6 +- .../GameTranslationRepositoryTest.java | 6 +- .../LocationTranslationRepositoryTest.java | 6 +- .../OverviewTranslationRepositoryTest.java | 3 +- .../SeasonTranslationRepositoryTest.java | 6 +- 58 files changed, 277 insertions(+), 224 deletions(-) create mode 100644 src/main/java/com/lucasjosino/hawapi/filters/http/TrailingSlashHandlerFilter.java diff --git a/pom.xml b/pom.xml index f433c5a..fc02338 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.17 + 3.3.0 @@ -20,7 +20,9 @@ 2023 - 1.8 + 21 + 1.19.8 + 6.2.0-M3 @@ -52,7 +54,7 @@ org.springframework.boot spring-boot-configuration-processor - 2.7.6 + 3.2.6 @@ -70,25 +72,24 @@ org.springframework.security spring-security-test - 5.7.7 test org.testcontainers testcontainers - 1.17.6 + ${testcontainers.version} test org.testcontainers junit-jupiter - 1.17.6 + ${testcontainers.version} test org.testcontainers postgresql - 1.17.6 + ${testcontainers.version} test @@ -110,7 +111,7 @@ com.giffing.bucket4j.spring.boot.starter bucket4j-spring-boot-starter - 0.8.1 + 0.12.7 org.springframework.boot @@ -119,26 +120,26 @@ com.github.ben-manes.caffeine caffeine - 2.9.3 + 3.1.8 com.github.ben-manes.caffeine jcache - 2.9.3 + 3.1.8 org.springdoc - springdoc-openapi-ui - 1.7.0 + springdoc-openapi-starter-webmvc-ui + 2.5.0 org.modelmapper modelmapper - 3.1.1 + 3.2.0 com.github.java-json-tools @@ -148,7 +149,7 @@ com.google.guava guava - 32.0.0-jre + 33.2.1-jre @@ -157,13 +158,6 @@ spring-boot-starter-validation - - - com.vladmihalcea - hibernate-types-52 - 2.21.1 - - org.postgresql @@ -232,4 +226,29 @@ + + + maven_central + Maven Central + https://repo.maven.apache.org/maven2/ + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + diff --git a/src/main/java/com/lucasjosino/hawapi/configs/security/SecurityConfig.java b/src/main/java/com/lucasjosino/hawapi/configs/security/SecurityConfig.java index c11785d..9da49fc 100644 --- a/src/main/java/com/lucasjosino/hawapi/configs/security/SecurityConfig.java +++ b/src/main/java/com/lucasjosino/hawapi/configs/security/SecurityConfig.java @@ -3,8 +3,10 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configurers.oauth2.server.resource.OAuth2ResourceServerConfigurer; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; @@ -36,31 +38,27 @@ public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http - .headers(req -> - req.frameOptions().sameOrigin() + .headers(req -> req + .frameOptions((HeadersConfigurer.FrameOptionsConfig::sameOrigin)) ) - .cors() - .and() - .csrf().disable() - .sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests(req -> req + .csrf((AbstractHttpConfigurer::disable)) + .sessionManagement((session) -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .authorizeHttpRequests(req -> req // API Docs - .antMatchers(HttpMethod.GET, "/v3/api-docs", "/v3/api-docs/**").permitAll() + .requestMatchers(HttpMethod.GET, "/v3/api-docs", "/v3/api-docs/**").permitAll() // Errors - .antMatchers(HttpMethod.GET, "/error").permitAll() + .requestMatchers(HttpMethod.GET, "/error").permitAll() // Auth - .antMatchers(HttpMethod.POST, "/api/v1/auth/**").permitAll() + .requestMatchers(HttpMethod.POST, "/api/v1/auth/**").permitAll() // API - .antMatchers(HttpMethod.GET, "/api/**").permitAll() - .antMatchers(HttpMethod.PATCH, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") - .antMatchers(HttpMethod.POST, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") - .antMatchers(HttpMethod.DELETE, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") + .requestMatchers(HttpMethod.GET, "/api/**").permitAll() + .requestMatchers(HttpMethod.PATCH, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") + .requestMatchers(HttpMethod.POST, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") + .requestMatchers(HttpMethod.DELETE, "/api/**").hasAnyRole("ADMIN", "MAINTAINER") // Others endpoints .anyRequest().permitAll() ) - .oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt) + .oauth2ResourceServer((oauth2) -> oauth2.jwt(Customizer.withDefaults())) .build(); } diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/advisor/ControllerAdvisor.java b/src/main/java/com/lucasjosino/hawapi/controllers/advisor/ControllerAdvisor.java index 311417e..5ef3b9d 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/advisor/ControllerAdvisor.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/advisor/ControllerAdvisor.java @@ -10,8 +10,10 @@ import com.lucasjosino.hawapi.exceptions.auth.UserUnauthorizedException; import com.lucasjosino.hawapi.exceptions.specification.OperatorNotFoundException; import com.lucasjosino.hawapi.models.http.ExceptionResponse; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.validation.ObjectError; import org.springframework.web.bind.MethodArgumentNotValidException; @@ -23,7 +25,6 @@ import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; -import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Map; @@ -75,7 +76,7 @@ public ResponseEntity handleBadRequestException( protected ResponseEntity handleMethodArgumentNotValid( MethodArgumentNotValidException ex, HttpHeaders headers, - HttpStatus status, + HttpStatusCode status, WebRequest request ) { Optional error = ex.getBindingResult().getAllErrors().stream().findFirst(); @@ -92,7 +93,6 @@ protected ResponseEntity handleMethodArgumentNotValid( return handleBadRequestException(new BadRequestException(message), servletRequest); } - @ExceptionHandler(SaveConflictException.class) public ResponseEntity handleConflictException( SaveConflictException ex, diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/api/v1/OverviewController.java b/src/main/java/com/lucasjosino/hawapi/controllers/api/v1/OverviewController.java index c99106f..1036983 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/api/v1/OverviewController.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/api/v1/OverviewController.java @@ -21,7 +21,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; + import java.io.IOException; import java.util.Collections; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseAuthControllerInterface.java b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseAuthControllerInterface.java index 0bf3a8f..77ca0ca 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseAuthControllerInterface.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseAuthControllerInterface.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * A base auth controller interface with all required endpoints. diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseControllerInterface.java b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseControllerInterface.java index f902db7..60fef3b 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseControllerInterface.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseControllerInterface.java @@ -10,7 +10,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; + import java.io.IOException; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseOverviewControllerInterface.java b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseOverviewControllerInterface.java index 5e78c71..285b687 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseOverviewControllerInterface.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseOverviewControllerInterface.java @@ -9,7 +9,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; + import java.io.IOException; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseTranslationInterface.java b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseTranslationInterface.java index d07d37f..b78b59e 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseTranslationInterface.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/BaseTranslationInterface.java @@ -9,7 +9,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; + import java.io.IOException; import java.util.List; import java.util.UUID; diff --git a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/SocialControllerInterface.java b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/SocialControllerInterface.java index 667ba0b..991051e 100644 --- a/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/SocialControllerInterface.java +++ b/src/main/java/com/lucasjosino/hawapi/controllers/interfaces/SocialControllerInterface.java @@ -8,7 +8,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; + import java.io.IOException; import java.util.List; import java.util.UUID; diff --git a/src/main/java/com/lucasjosino/hawapi/filters/http/SnakeCaseFilter.java b/src/main/java/com/lucasjosino/hawapi/filters/http/SnakeCaseFilter.java index a0f98b5..b8ae08c 100644 --- a/src/main/java/com/lucasjosino/hawapi/filters/http/SnakeCaseFilter.java +++ b/src/main/java/com/lucasjosino/hawapi/filters/http/SnakeCaseFilter.java @@ -4,11 +4,12 @@ import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.OncePerRequestFilter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletResponse; + import java.io.IOException; import java.util.Collections; import java.util.Enumeration; diff --git a/src/main/java/com/lucasjosino/hawapi/filters/http/TrailingSlashHandlerFilter.java b/src/main/java/com/lucasjosino/hawapi/filters/http/TrailingSlashHandlerFilter.java new file mode 100644 index 0000000..8faa453 --- /dev/null +++ b/src/main/java/com/lucasjosino/hawapi/filters/http/TrailingSlashHandlerFilter.java @@ -0,0 +1,32 @@ +package com.lucasjosino.hawapi.filters.http; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; +import org.springframework.web.filter.UrlHandlerFilter; + +import java.io.IOException; + +/** + * Request filter to handle url trailing slash forwarding using {@link UrlHandlerFilter} + * + * @author Lucas Josino + * @since 1.3.0 + */ +@Component +@SuppressWarnings("NullableProblems") +public class TrailingSlashHandlerFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal( + HttpServletRequest request, + HttpServletResponse response, + FilterChain filterChain + ) throws ServletException, IOException { + UrlHandlerFilter filter = UrlHandlerFilter.trimTrailingSlash("/**").andHandleRequest().build(); + filter.doFilter(request, response, filterChain); + } +} diff --git a/src/main/java/com/lucasjosino/hawapi/models/ActorModel.java b/src/main/java/com/lucasjosino/hawapi/models/ActorModel.java index 57e0924..e949d0b 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/ActorModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/ActorModel.java @@ -2,9 +2,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseModel; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.time.LocalDate; import java.util.List; import java.util.Set; @@ -21,7 +22,7 @@ public class ActorModel extends BaseModel { @Column(name = "last_name", nullable = false) private String lastName; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List nicknames; @@ -39,11 +40,11 @@ public class ActorModel extends BaseModel { @Column private String nationality; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List seasons; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List awards; @@ -54,7 +55,7 @@ public class ActorModel extends BaseModel { @JoinColumn(name = "actor_uuid", referencedColumnName = "uuid", insertable = false, updatable = false) private Set socials; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/ActorSocialModel.java b/src/main/java/com/lucasjosino/hawapi/models/ActorSocialModel.java index 1712de0..f88b897 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/ActorSocialModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/ActorSocialModel.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.persistence.*; -import javax.persistence.*; import java.io.Serializable; import java.util.UUID; diff --git a/src/main/java/com/lucasjosino/hawapi/models/CharacterModel.java b/src/main/java/com/lucasjosino/hawapi/models/CharacterModel.java index 9610f42..1323657 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/CharacterModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/CharacterModel.java @@ -2,11 +2,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseModel; -import org.hibernate.annotations.Type; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; import java.time.LocalDate; import java.util.List; @@ -22,7 +23,7 @@ public class CharacterModel extends BaseModel { @Column(name = "last_name") private String lastName; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List nicknames; @@ -40,7 +41,7 @@ public class CharacterModel extends BaseModel { @Column private String actor; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/EpisodeModel.java b/src/main/java/com/lucasjosino/hawapi/models/EpisodeModel.java index 0c63eb8..519dd7f 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/EpisodeModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/EpisodeModel.java @@ -3,9 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseModel; import com.lucasjosino.hawapi.models.translations.EpisodeTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.util.List; @Entity @@ -30,7 +31,7 @@ public class EpisodeModel extends BaseModel { @Column(nullable = false) private String season; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/GameModel.java b/src/main/java/com/lucasjosino/hawapi/models/GameModel.java index dbec5dc..c97cf6e 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/GameModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/GameModel.java @@ -2,9 +2,10 @@ import com.lucasjosino.hawapi.models.base.BaseModel; import com.lucasjosino.hawapi.models.translations.GameTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.time.LocalDate; import java.util.List; @@ -18,27 +19,27 @@ public class GameModel extends BaseModel { @Column(name = "age_rating") private String ageRating; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List stores; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List modes; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List platforms; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List publishers; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List developers; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List tags; @@ -48,7 +49,7 @@ public class GameModel extends BaseModel { @Column(nullable = false) private String website; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/LocationModel.java b/src/main/java/com/lucasjosino/hawapi/models/LocationModel.java index 0276692..ba6c829 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/LocationModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/LocationModel.java @@ -2,16 +2,17 @@ import com.lucasjosino.hawapi.models.base.BaseModel; import com.lucasjosino.hawapi.models.translations.LocationTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.util.List; @Entity @Table(name = "locations") public class LocationModel extends BaseModel { - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/OverviewModel.java b/src/main/java/com/lucasjosino/hawapi/models/OverviewModel.java index c82a41f..c3bd91e 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/OverviewModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/OverviewModel.java @@ -2,20 +2,21 @@ import com.lucasjosino.hawapi.models.base.BaseModel; import com.lucasjosino.hawapi.models.translations.OverviewTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.util.List; @Entity @Table(name = "overviews") public class OverviewModel extends BaseModel { - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List languages; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List creators; diff --git a/src/main/java/com/lucasjosino/hawapi/models/SeasonModel.java b/src/main/java/com/lucasjosino/hawapi/models/SeasonModel.java index f3f0345..d82fc2b 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/SeasonModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/SeasonModel.java @@ -3,9 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseModel; import com.lucasjosino.hawapi.models.translations.SeasonTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.time.LocalDate; import java.util.List; @@ -33,18 +34,18 @@ public class SeasonModel extends BaseModel { @Column(name = "prev_season") private String prevSeason; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List episodes; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List soundtracks; @Column private Integer budget; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List images; diff --git a/src/main/java/com/lucasjosino/hawapi/models/SoundtrackModel.java b/src/main/java/com/lucasjosino/hawapi/models/SoundtrackModel.java index 9a4c2fb..0a8d268 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/SoundtrackModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/SoundtrackModel.java @@ -2,11 +2,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseModel; -import org.hibernate.annotations.Type; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; import java.time.LocalDate; import java.util.List; @@ -30,7 +31,7 @@ public class SoundtrackModel extends BaseModel { @Column(nullable = false, name = "release_date") private LocalDate releaseDate; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List urls; diff --git a/src/main/java/com/lucasjosino/hawapi/models/base/BaseDTO.java b/src/main/java/com/lucasjosino/hawapi/models/base/BaseDTO.java index 3346eb7..cf49400 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/base/BaseDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/base/BaseDTO.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.persistence.MappedSuperclass; -import javax.persistence.MappedSuperclass; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/base/BaseModel.java b/src/main/java/com/lucasjosino/hawapi/models/base/BaseModel.java index 173d534..d84d3fd 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/base/BaseModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/base/BaseModel.java @@ -3,15 +3,14 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.vladmihalcea.hibernate.type.array.ListArrayType; +import jakarta.persistence.Column; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; import org.hibernate.annotations.CreationTimestamp; -import org.hibernate.annotations.Type; -import org.hibernate.annotations.TypeDef; +import org.hibernate.annotations.JdbcTypeCode; import org.hibernate.annotations.UpdateTimestamp; +import org.hibernate.type.SqlTypes; -import javax.persistence.Column; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; @@ -19,7 +18,6 @@ @MappedSuperclass @JsonInclude(JsonInclude.Include.NON_NULL) -@TypeDef(name = "list-array", typeClass = ListArrayType.class) abstract public class BaseModel implements Serializable { @JsonIgnore @@ -38,7 +36,7 @@ abstract public class BaseModel implements Serializable { @Column private String thumbnail; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List sources; diff --git a/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslation.java index ba629d4..40ac350 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslation.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; +import jakarta.persistence.*; -import javax.persistence.*; import java.io.Serializable; @MappedSuperclass diff --git a/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslationDTO.java index 287384e..71e5c46 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/base/BaseTranslationDTO.java @@ -1,10 +1,10 @@ package com.lucasjosino.hawapi.models.base; import com.fasterxml.jackson.annotation.JsonInclude; +import jakarta.persistence.MappedSuperclass; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; -import javax.persistence.MappedSuperclass; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; import java.io.Serializable; @MappedSuperclass diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/ActorDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/ActorDTO.java index afe58bd..b1d3c01 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/ActorDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/ActorDTO.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.*; -import javax.validation.constraints.*; import java.time.LocalDate; import java.util.List; import java.util.Set; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/ActorSocialDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/ActorSocialDTO.java index 79c8908..e6e157d 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/ActorSocialDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/ActorSocialDTO.java @@ -1,8 +1,8 @@ package com.lucasjosino.hawapi.models.dto; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; -import javax.validation.constraints.NotBlank; import java.io.Serializable; public class ActorSocialDTO implements Serializable { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/CharacterDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/CharacterDTO.java index db83513..7a824df 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/CharacterDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/CharacterDTO.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.*; -import javax.validation.constraints.*; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/EpisodeDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/EpisodeDTO.java index f6217a3..afc4355 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/EpisodeDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/EpisodeDTO.java @@ -3,10 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.util.List; public class EpisodeDTO extends BaseDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/GameDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/GameDTO.java index 3b8eac4..e779e10 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/GameDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/GameDTO.java @@ -3,11 +3,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.PositiveOrZero; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.PositiveOrZero; -import javax.validation.constraints.Size; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/LocationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/LocationDTO.java index ec2cf49..404104c 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/LocationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/LocationDTO.java @@ -2,9 +2,9 @@ import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; import java.util.List; public class LocationDTO extends BaseDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/OverviewDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/OverviewDTO.java index 8360432..4a360ff 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/OverviewDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/OverviewDTO.java @@ -3,10 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.repositories.OverviewRepository; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Size; import java.io.Serializable; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/SeasonDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/SeasonDTO.java index 02dc650..37eca78 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/SeasonDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/SeasonDTO.java @@ -3,11 +3,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Positive; -import javax.validation.constraints.Size; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/SoundtrackDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/SoundtrackDTO.java index 2807691..5bf100b 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/SoundtrackDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/SoundtrackDTO.java @@ -3,10 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.base.BaseDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserAuthDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserAuthDTO.java index 24a9af1..42927a3 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserAuthDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserAuthDTO.java @@ -1,8 +1,8 @@ package com.lucasjosino.hawapi.models.dto.auth; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; public class UserAuthDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserDTO.java index 8819bba..c1869d1 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserDTO.java @@ -2,11 +2,11 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; import java.time.LocalDateTime; @JsonInclude(JsonInclude.Include.NON_NULL) diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserRegistrationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserRegistrationDTO.java index ca88379..dfa728f 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserRegistrationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/auth/UserRegistrationDTO.java @@ -2,11 +2,10 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; - -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; @JsonInclude(JsonInclude.Include.NON_NULL) public class UserRegistrationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/EpisodeTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/EpisodeTranslationDTO.java index a968deb..84d5ea3 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/EpisodeTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/EpisodeTranslationDTO.java @@ -1,9 +1,8 @@ package com.lucasjosino.hawapi.models.dto.translation; import com.lucasjosino.hawapi.models.base.BaseTranslationDTO; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; public class EpisodeTranslationDTO extends BaseTranslationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/GameTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/GameTranslationDTO.java index 026dbbf..1a75daf 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/GameTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/GameTranslationDTO.java @@ -2,9 +2,9 @@ import com.lucasjosino.hawapi.models.base.BaseTranslationDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; import java.util.List; public class GameTranslationDTO extends BaseTranslationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/LocationTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/LocationTranslationDTO.java index 7d45343..95693c0 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/LocationTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/LocationTranslationDTO.java @@ -1,9 +1,8 @@ package com.lucasjosino.hawapi.models.dto.translation; import com.lucasjosino.hawapi.models.base.BaseTranslationDTO; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; public class LocationTranslationDTO extends BaseTranslationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/OverviewTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/OverviewTranslationDTO.java index 5a28930..3af26d1 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/OverviewTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/OverviewTranslationDTO.java @@ -1,9 +1,8 @@ package com.lucasjosino.hawapi.models.dto.translation; import com.lucasjosino.hawapi.models.base.BaseTranslationDTO; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; public class OverviewTranslationDTO extends BaseTranslationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/SeasonTranslationDTO.java b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/SeasonTranslationDTO.java index 57611c9..c5175a1 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/dto/translation/SeasonTranslationDTO.java +++ b/src/main/java/com/lucasjosino/hawapi/models/dto/translation/SeasonTranslationDTO.java @@ -2,10 +2,10 @@ import com.lucasjosino.hawapi.models.base.BaseTranslationDTO; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Size; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Size; import java.util.List; public class SeasonTranslationDTO extends BaseTranslationDTO { diff --git a/src/main/java/com/lucasjosino/hawapi/models/translations/EpisodeTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/translations/EpisodeTranslation.java index dd66471..f83d2a4 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/translations/EpisodeTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/translations/EpisodeTranslation.java @@ -5,8 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.EpisodeModel; import com.lucasjosino.hawapi.models.base.BaseTranslation; +import jakarta.persistence.*; -import javax.persistence.*; import java.util.UUID; @Entity diff --git a/src/main/java/com/lucasjosino/hawapi/models/translations/GameTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/translations/GameTranslation.java index 4cab9a9..83cf885 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/translations/GameTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/translations/GameTranslation.java @@ -5,9 +5,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.GameModel; import com.lucasjosino.hawapi.models.base.BaseTranslation; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.util.List; import java.util.UUID; @@ -26,7 +27,7 @@ public class GameTranslation extends BaseTranslation { @Column private String description; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List genres; diff --git a/src/main/java/com/lucasjosino/hawapi/models/translations/LocationTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/translations/LocationTranslation.java index 06c9ded..b322d5e 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/translations/LocationTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/translations/LocationTranslation.java @@ -5,8 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.LocationModel; import com.lucasjosino.hawapi.models.base.BaseTranslation; +import jakarta.persistence.*; -import javax.persistence.*; import java.util.UUID; @Entity diff --git a/src/main/java/com/lucasjosino/hawapi/models/translations/OverviewTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/translations/OverviewTranslation.java index e522182..aef630f 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/translations/OverviewTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/translations/OverviewTranslation.java @@ -5,8 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.lucasjosino.hawapi.models.OverviewModel; import com.lucasjosino.hawapi.models.base.BaseTranslation; +import jakarta.persistence.*; -import javax.persistence.*; import java.util.UUID; @Entity diff --git a/src/main/java/com/lucasjosino/hawapi/models/translations/SeasonTranslation.java b/src/main/java/com/lucasjosino/hawapi/models/translations/SeasonTranslation.java index dcaef92..e6f8190 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/translations/SeasonTranslation.java +++ b/src/main/java/com/lucasjosino/hawapi/models/translations/SeasonTranslation.java @@ -6,9 +6,10 @@ import com.lucasjosino.hawapi.models.SeasonModel; import com.lucasjosino.hawapi.models.base.BaseTranslation; import com.lucasjosino.hawapi.validators.annotations.BasicURL; -import org.hibernate.annotations.Type; +import jakarta.persistence.*; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; -import javax.persistence.*; import java.util.List; import java.util.UUID; @@ -27,11 +28,11 @@ public class SeasonTranslation extends BaseTranslation { @Column private String description; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "varchar[]") private List genres; - @Type(type = "list-array") + @JdbcTypeCode(SqlTypes.ARRAY) @Column(columnDefinition = "text[]") private List<@BasicURL String> trailers; diff --git a/src/main/java/com/lucasjosino/hawapi/models/user/UserModel.java b/src/main/java/com/lucasjosino/hawapi/models/user/UserModel.java index f3e56d6..51ec91f 100644 --- a/src/main/java/com/lucasjosino/hawapi/models/user/UserModel.java +++ b/src/main/java/com/lucasjosino/hawapi/models/user/UserModel.java @@ -3,13 +3,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; import java.time.LocalDateTime; import java.util.UUID; diff --git a/src/main/java/com/lucasjosino/hawapi/repositories/base/impl/BaseRepositoryImpl.java b/src/main/java/com/lucasjosino/hawapi/repositories/base/impl/BaseRepositoryImpl.java index e46caf2..3a3f370 100644 --- a/src/main/java/com/lucasjosino/hawapi/repositories/base/impl/BaseRepositoryImpl.java +++ b/src/main/java/com/lucasjosino/hawapi/repositories/base/impl/BaseRepositoryImpl.java @@ -11,11 +11,12 @@ import org.springframework.data.jpa.repository.support.SimpleJpaRepository; import org.springframework.data.support.PageableExecutionUtils; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Root; + import java.util.UUID; public class BaseRepositoryImpl extends SimpleJpaRepository implements BaseRepository { diff --git a/src/main/java/com/lucasjosino/hawapi/repositories/specification/SpecificationBuilder.java b/src/main/java/com/lucasjosino/hawapi/repositories/specification/SpecificationBuilder.java index f9990b8..7d55f23 100644 --- a/src/main/java/com/lucasjosino/hawapi/repositories/specification/SpecificationBuilder.java +++ b/src/main/java/com/lucasjosino/hawapi/repositories/specification/SpecificationBuilder.java @@ -4,11 +4,11 @@ import com.lucasjosino.hawapi.filters.base.BaseFilter; import com.lucasjosino.hawapi.filters.base.BaseTranslationFilter; import com.lucasjosino.hawapi.models.base.BaseModel; +import jakarta.persistence.criteria.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.jpa.domain.Specification; -import javax.persistence.criteria.*; import java.lang.reflect.Field; import java.time.LocalDate; import java.util.ArrayList; @@ -70,8 +70,8 @@ public Specification withTranslation(String language) { // Add translation language filter. return builder.and(builder.equal(translation.get("language"), language)); } catch (Exception exception) { - String message = "Something went wrong while trying to build specification"; - log.error(message + ": {}", exception.getMessage()); + String message = "Something went wrong while creating specification with translation"; + log.error("{}: {}", message, exception.getMessage()); throw new InternalServerErrorException(message, exception); } }; @@ -140,7 +140,7 @@ public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuild } } catch (Exception exception) { String message = "Something went wrong while trying to build specification"; - log.error(message + ": {}", exception.getMessage()); + log.error("{}: {}", message, exception.getMessage()); throw new InternalServerErrorException(message, exception); } @@ -240,31 +240,19 @@ private > Predicate createPredicate( String value = fieldValue.substring(operator.getValue().length()); log.debug("Predicate type '{}' defined with '{}' and value '{}'", operator, operator.getValue(), value); - switch (operator) { - case LIKE: - return builder.like(expression, "%" + value + "%"); - case NOT_LIKE: - return builder.notLike(expression, "%" + value + "%"); - case BETWEEN: - return createBetweenPredicate(expression, fieldValue, fieldType); - case NOT_IN: - return createInPredicate(expression, value, fieldType, false); - case IN: - return createInPredicate(expression, value, fieldType, true); - case GREATER_THAN: - return builder.greaterThan(expression, (Y) value); - case LESS_THAN: - return builder.lessThan(expression, (Y) value); - case GREATER_OR_EQUALS_TO: - return builder.greaterThanOrEqualTo(expression, (Y) value); - case LESS_OR_EQUALS_TO: - return builder.lessThanOrEqualTo(expression, (Y) value); - case NOT_EQUALS: - return builder.notEqual(expression, value); - case EQUALS: - default: - return builder.equal(expression, value); - } + return switch (operator) { + case LIKE -> builder.like(expression, "%" + value + "%"); + case NOT_LIKE -> builder.notLike(expression, "%" + value + "%"); + case BETWEEN -> createBetweenPredicate(expression, fieldValue, fieldType); + case NOT_IN -> createInPredicate(expression, value, fieldType, false); + case IN -> createInPredicate(expression, value, fieldType, true); + case GREATER_THAN -> builder.greaterThan(expression, (Y) value); + case LESS_THAN -> builder.lessThan(expression, (Y) value); + case GREATER_OR_EQUALS_TO -> builder.greaterThanOrEqualTo(expression, (Y) value); + case LESS_OR_EQUALS_TO -> builder.lessThanOrEqualTo(expression, (Y) value); + case NOT_EQUALS -> builder.notEqual(expression, value); + default -> builder.equal(expression, value); + }; } /** diff --git a/src/main/java/com/lucasjosino/hawapi/resolvers/IndexFallbackResourceResolver.java b/src/main/java/com/lucasjosino/hawapi/resolvers/IndexFallbackResourceResolver.java index 4292126..047ed90 100644 --- a/src/main/java/com/lucasjosino/hawapi/resolvers/IndexFallbackResourceResolver.java +++ b/src/main/java/com/lucasjosino/hawapi/resolvers/IndexFallbackResourceResolver.java @@ -5,7 +5,8 @@ import org.springframework.web.servlet.resource.PathResourceResolver; import org.springframework.web.servlet.resource.ResourceResolverChain; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; + import java.util.List; /** diff --git a/src/main/java/com/lucasjosino/hawapi/validators/BasicURLValidator.java b/src/main/java/com/lucasjosino/hawapi/validators/BasicURLValidator.java index 471a411..3aac27f 100644 --- a/src/main/java/com/lucasjosino/hawapi/validators/BasicURLValidator.java +++ b/src/main/java/com/lucasjosino/hawapi/validators/BasicURLValidator.java @@ -1,10 +1,11 @@ package com.lucasjosino.hawapi.validators; import com.lucasjosino.hawapi.validators.annotations.BasicURL; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.regex.Pattern; @@ -41,7 +42,7 @@ public boolean isValid(String value, ConstraintValidatorContext context) { if (isImage) return Pattern.compile(".(jpg|png|jpeg|webp)$").matcher(value).find(); try { - new URL(value).toURI(); + URL uri = new URI(value).toURL(); return Pattern.compile("^(http(s)://)").matcher(value).find(); } catch (MalformedURLException | URISyntaxException e) { return false; diff --git a/src/main/java/com/lucasjosino/hawapi/validators/annotations/BasicURL.java b/src/main/java/com/lucasjosino/hawapi/validators/annotations/BasicURL.java index eb65c64..eae0eea 100644 --- a/src/main/java/com/lucasjosino/hawapi/validators/annotations/BasicURL.java +++ b/src/main/java/com/lucasjosino/hawapi/validators/annotations/BasicURL.java @@ -2,8 +2,9 @@ import com.lucasjosino.hawapi.validators.BasicURLValidator; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + import java.lang.annotation.*; /** diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/auth/AuthRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/auth/AuthRepositoryTest.java index 0b73998..4e8221d 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/auth/AuthRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/auth/AuthRepositoryTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import javax.persistence.EntityManager; +import jakarta.persistence.EntityManager; + import java.time.LocalDateTime; import java.util.Optional; import java.util.UUID; diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/translation/EpisodeTranslationRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/translation/EpisodeTranslationRepositoryTest.java index 27dc5cf..d7603a8 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/translation/EpisodeTranslationRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/translation/EpisodeTranslationRepositoryTest.java @@ -5,6 +5,7 @@ import com.lucasjosino.hawapi.models.EpisodeModel; import com.lucasjosino.hawapi.models.translations.EpisodeTranslation; import com.lucasjosino.hawapi.repositories.EpisodeRepository; +import jakarta.persistence.EntityManager; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -12,7 +13,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import javax.persistence.EntityManager; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; @@ -76,7 +76,7 @@ private void deleteAndFlushRepositories() { @Test void shouldFindAllByEpisodeUuid() { List res = translationRepository.findAllByEpisodeUuid(translationModel.getEpisodeUuid()); - EpisodeTranslation first = res.get(0); + EpisodeTranslation first = res.getFirst(); assertEquals(1, res.size()); assertEquals(translationModel.getEpisodeUuid(), first.getEpisodeUuid()); @@ -101,7 +101,7 @@ void shouldFindAllByEpisodeUuidUsingPageable() { translationModel.getEpisodeUuid(), pageable ); - EpisodeTranslation first = res.getContent().get(0); + EpisodeTranslation first = res.getContent().getFirst(); assertEquals(1, res.getContent().size()); assertEquals(translationModel.getEpisodeUuid(), first.getEpisodeUuid()); diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/translation/GameTranslationRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/translation/GameTranslationRepositoryTest.java index c1f1e7d..12e0941 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/translation/GameTranslationRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/translation/GameTranslationRepositoryTest.java @@ -5,6 +5,7 @@ import com.lucasjosino.hawapi.models.GameModel; import com.lucasjosino.hawapi.models.translations.GameTranslation; import com.lucasjosino.hawapi.repositories.GameRepository; +import jakarta.persistence.EntityManager; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -12,7 +13,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import javax.persistence.EntityManager; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Arrays; @@ -84,7 +84,7 @@ private void deleteAndFlushRepositories() { @Test void shouldFindAllByGameUuid() { List res = translationRepository.findAllByGameUuid(translationModel.getGameUuid()); - GameTranslation first = res.get(0); + GameTranslation first = res.getFirst(); assertEquals(1, res.size()); assertEquals(translationModel.getGameUuid(), first.getGameUuid()); @@ -109,7 +109,7 @@ void shouldFindAllByGameUuidUsingPageable() { translationModel.getGameUuid(), pageable ); - GameTranslation first = res.getContent().get(0); + GameTranslation first = res.getContent().getFirst(); assertEquals(1, res.getContent().size()); assertEquals(translationModel.getGameUuid(), first.getGameUuid()); diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/translation/LocationTranslationRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/translation/LocationTranslationRepositoryTest.java index 002743f..a4897b9 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/translation/LocationTranslationRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/translation/LocationTranslationRepositoryTest.java @@ -5,6 +5,7 @@ import com.lucasjosino.hawapi.models.LocationModel; import com.lucasjosino.hawapi.models.translations.LocationTranslation; import com.lucasjosino.hawapi.repositories.LocationRepository; +import jakarta.persistence.EntityManager; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -12,7 +13,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import javax.persistence.EntityManager; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; @@ -71,7 +71,7 @@ private void deleteAndFlushRepositories() { @Test void shouldFindAllByLocationUuid() { List res = translationRepository.findAllByLocationUuid(translationModel.getLocationUuid()); - LocationTranslation first = res.get(0); + LocationTranslation first = res.getFirst(); assertEquals(1, res.size()); assertEquals(translationModel.getLocationUuid(), first.getLocationUuid()); @@ -96,7 +96,7 @@ void shouldFindAllByLocationUuidUsingPageable() { translationModel.getLocationUuid(), pageable ); - LocationTranslation first = res.getContent().get(0); + LocationTranslation first = res.getContent().getFirst(); assertEquals(1, res.getContent().size()); assertEquals(translationModel.getLocationUuid(), first.getLocationUuid()); diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/translation/OverviewTranslationRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/translation/OverviewTranslationRepositoryTest.java index 77e5b16..c48b5f9 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/translation/OverviewTranslationRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/translation/OverviewTranslationRepositoryTest.java @@ -9,7 +9,8 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import javax.persistence.EntityManager; +import jakarta.persistence.EntityManager; + import java.time.LocalDateTime; import java.util.Arrays; import java.util.Collections; diff --git a/src/test/java/com/lucasjosino/hawapi/repositories/translation/SeasonTranslationRepositoryTest.java b/src/test/java/com/lucasjosino/hawapi/repositories/translation/SeasonTranslationRepositoryTest.java index 80c2b2c..d1d653e 100644 --- a/src/test/java/com/lucasjosino/hawapi/repositories/translation/SeasonTranslationRepositoryTest.java +++ b/src/test/java/com/lucasjosino/hawapi/repositories/translation/SeasonTranslationRepositoryTest.java @@ -5,6 +5,7 @@ import com.lucasjosino.hawapi.models.SeasonModel; import com.lucasjosino.hawapi.models.translations.SeasonTranslation; import com.lucasjosino.hawapi.repositories.SeasonRepository; +import jakarta.persistence.EntityManager; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -12,7 +13,6 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import javax.persistence.EntityManager; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Arrays; @@ -85,7 +85,7 @@ private void deleteAndFlushRepositories() { @Test void shouldFindAllBySeasonUuid() { List res = translationRepository.findAllBySeasonUuid(translationModel.getSeasonUuid()); - SeasonTranslation first = res.get(0); + SeasonTranslation first = res.getFirst(); assertEquals(1, res.size()); assertEquals(translationModel.getSeasonUuid(), first.getSeasonUuid()); @@ -110,7 +110,7 @@ void shouldFindAllBySeasonUuidUsingPageable() { translationModel.getSeasonUuid(), pageable ); - SeasonTranslation first = res.getContent().get(0); + SeasonTranslation first = res.getContent().getFirst(); assertEquals(1, res.getContent().size()); assertEquals(translationModel.getSeasonUuid(), first.getSeasonUuid()); From d0750064a9195e7de264ffee2ea11b86fce9792c Mon Sep 17 00:00:00 2001 From: Lucas Josino Date: Sat, 22 Jun 2024 11:56:27 -0300 Subject: [PATCH 2/2] feat: increase rate limit from all roles --- src/main/resources/bucket4j.properties | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/bucket4j.properties b/src/main/resources/bucket4j.properties index d0639bf..7bede51 100644 --- a/src/main/resources/bucket4j.properties +++ b/src/main/resources/bucket4j.properties @@ -11,7 +11,7 @@ bucket4j.filters[0].http-response-body={"code": 429, "status": "Too Many Request ### Global (ROLE_ANONYMOUS) bucket4j.filters[0].rate-limits[0].cache-key=getRemoteAddr() bucket4j.filters[0].rate-limits[0].execute-condition=@authServiceImpl.getRole() == 'ROLE_ANONYMOUS' -bucket4j.filters[0].rate-limits[0].bandwidths[0].capacity=16 +bucket4j.filters[0].rate-limits[0].bandwidths[0].capacity=28 bucket4j.filters[0].rate-limits[0].bandwidths[0].time=1 bucket4j.filters[0].rate-limits[0].bandwidths[0].unit=minutes bucket4j.filters[0].rate-limits[0].bandwidths[0].refill-speed=greedy @@ -19,7 +19,7 @@ bucket4j.filters[0].rate-limits[0].bandwidths[0].refill-speed=greedy ### Dev (ROLE_BASIC) bucket4j.filters[0].rate-limits[1].cache-key=getRemoteAddr() bucket4j.filters[0].rate-limits[1].execute-condition=@authServiceImpl.getRole() == 'ROLE_BASIC' -bucket4j.filters[0].rate-limits[1].bandwidths[0].capacity=20 +bucket4j.filters[0].rate-limits[1].bandwidths[0].capacity=32 bucket4j.filters[0].rate-limits[1].bandwidths[0].time=1 bucket4j.filters[0].rate-limits[1].bandwidths[0].unit=minutes bucket4j.filters[0].rate-limits[1].bandwidths[0].refill-speed=greedy @@ -27,7 +27,7 @@ bucket4j.filters[0].rate-limits[1].bandwidths[0].refill-speed=greedy ### Dev (ROLE_DEV) bucket4j.filters[0].rate-limits[2].cache-key=getRemoteAddr() bucket4j.filters[0].rate-limits[2].execute-condition=@authServiceImpl.getRole() == 'ROLE_DEV' -bucket4j.filters[0].rate-limits[2].bandwidths[0].capacity=24 +bucket4j.filters[0].rate-limits[2].bandwidths[0].capacity=38 bucket4j.filters[0].rate-limits[2].bandwidths[0].time=1 bucket4j.filters[0].rate-limits[2].bandwidths[0].unit=minutes bucket4j.filters[0].rate-limits[2].bandwidths[0].refill-speed=greedy @@ -35,7 +35,7 @@ bucket4j.filters[0].rate-limits[2].bandwidths[0].refill-speed=greedy ### Maintainer (ROLE_MAINTAINER) bucket4j.filters[0].rate-limits[3].cache-key=getRemoteAddr() bucket4j.filters[0].rate-limits[3].execute-condition=@authServiceImpl.getRole() == 'ROLE_MAINTAINER' -bucket4j.filters[0].rate-limits[3].bandwidths[0].capacity=30 +bucket4j.filters[0].rate-limits[3].bandwidths[0].capacity=46 bucket4j.filters[0].rate-limits[3].bandwidths[0].time=1 bucket4j.filters[0].rate-limits[3].bandwidths[0].unit=minutes bucket4j.filters[0].rate-limits[3].bandwidths[0].refill-speed=greedy @@ -43,7 +43,7 @@ bucket4j.filters[0].rate-limits[3].bandwidths[0].refill-speed=greedy ### Admin (ROLE_ADMIN) bucket4j.filters[0].rate-limits[4].cache-key=getRemoteAddr() bucket4j.filters[0].rate-limits[4].skip-condition=@authServiceImpl.getRole() == 'ROLE_ADMIN' -bucket4j.filters[0].rate-limits[4].bandwidths[0].capacity=60 +bucket4j.filters[0].rate-limits[4].bandwidths[0].capacity=200 bucket4j.filters[0].rate-limits[4].bandwidths[0].time=1 bucket4j.filters[0].rate-limits[4].bandwidths[0].unit=minutes bucket4j.filters[0].rate-limits[4].bandwidths[0].refill-speed=greedy @@ -54,7 +54,7 @@ bucket4j.filters[1].url=/api/(v[1-9])/auth.* bucket4j.filters[1].strategy=first bucket4j.filters[1].filter-order=1 bucket4j.filters[1].http-response-body={"code": 429, "status": "Too Many Requests", "method": "GET", "cause": "You have exhausted your API request quota", "message": "See more on: ${hawapi.docs}/guides/rate-limiting"} -bucket4j.filters[1].rate-limits[0].bandwidths[0].capacity=3 +bucket4j.filters[1].rate-limits[0].bandwidths[0].capacity=6 bucket4j.filters[1].rate-limits[0].bandwidths[0].time=12 bucket4j.filters[1].rate-limits[0].bandwidths[0].unit=hours bucket4j.filters[1].rate-limits[0].bandwidths[0].refill-speed=greedy \ No newline at end of file