Completed upgraded the Spring Boot 3.x and Configuration
Some checks reported errors
continuous-integration/drone/push Build was killed

This commit is contained in:
Sambo Chea 2022-12-05 20:45:16 +07:00
parent 48e8f38ba8
commit abb35e94c0
Signed by: sombochea
GPG Key ID: 3C7CF22A05D95490
11 changed files with 51 additions and 35 deletions

2
.gitignore vendored
View File

@ -37,3 +37,5 @@ out/
.vscode/
.DS_Store
uploads/

View File

@ -9,9 +9,9 @@
### Language and Framework
- Spring Boot: 2.7.4
- Kotlin: 1.7.20
- Gradle: 7.5
- Spring Boot: 3.0.0
- Kotlin: 1.7.22
- Gradle: 7.5.1
# Modules

View File

@ -8,8 +8,8 @@ plugins {
kotlin("plugin.jpa")
}
val kotlinVersion = "1.7.20"
val springBootVersion = "2.7.4"
val kotlinVersion = "1.7.22"
val springBootVersion = "3.0.0"
// find the last commit
fun getGitHashLastCommit(): String {
@ -25,9 +25,9 @@ fun getGitHashLastCommit(): String {
springBoot {
buildInfo {
properties {
additional["commitId"] = getGitHashLastCommit()
additional["springBootVersion"] = springBootVersion
additional["kotlinVersion"] = kotlinVersion
this.additional.put("commitId", getGitHashLastCommit())
this.additional.put("springBootVersion", springBootVersion)
this.additional.put("kotlinVersion", kotlinVersion)
}
}
}
@ -36,9 +36,10 @@ dependencies {
// Spring Data JPA (Required for Database Layer)
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("org.springframework.boot:spring-boot-starter-validation")
// Migrating from SpringFox
implementation("org.springdoc:springdoc-openapi-ui:1.6.13")
// Migrating from SpringDoc API (Swagger) for Support Spring Boot 3.x
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.0")
// SPRING FRAMEWORK AND CORE
implementation("org.springframework.boot:spring-boot-starter-web")

View File

@ -6,12 +6,12 @@ import io.swagger.v3.oas.annotations.security.SecurityScheme
import io.swagger.v3.oas.models.OpenAPI
import io.swagger.v3.oas.models.info.Info
import io.swagger.v3.oas.models.info.License
import org.springdoc.core.GroupedOpenApi
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import io.swagger.v3.oas.annotations.OpenAPIDefinition
import io.swagger.v3.oas.annotations.servers.Server
import org.springdoc.core.models.GroupedOpenApi
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
//import org.springdoc.core.SpringDocUtils

View File

@ -10,6 +10,6 @@ import org.springframework.web.servlet.view.RedirectView
class ApiDoc {
@GetMapping(value = [ "/api-doc", "/api-docs"])
fun redirect(): RedirectView {
return RedirectView("/swagger-ui/")
return RedirectView("/swagger-ui/index.html")
}
}

View File

@ -14,7 +14,7 @@ import org.springframework.util.FileCopyUtils
import org.springframework.web.bind.annotation.*
import org.springframework.web.multipart.MultipartFile
import java.util.*
import javax.servlet.http.HttpServletResponse
import jakarta.servlet.http.HttpServletResponse
@UploaderModule
@Tag(name = "Uploader Controller")

View File

@ -12,40 +12,47 @@ import java.io.InputStream
import java.io.Serializable
import java.nio.file.Files
import java.util.*
import javax.persistence.*
import jakarta.persistence.*
import org.hibernate.annotations.GenericGenerator
@UploaderModule
@Entity
@Table(name = "uploader")
@Table(name = "`uploader`")
@EntityListeners(AuditingEntityListener::class)
open class UploaderEntity(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(generator = "custom-uuid")
@GenericGenerator(
name = "custom-uuid",
strategy = "org.hibernate.id.UUIDGenerator",
parameters = [org.hibernate.annotations.Parameter(name = "uuid_gen_strategy_class", value = "org.hibernate.id.uuid.CustomVersionOneStrategy")]
)
@Column(columnDefinition = "BINARY(16)")
open var id: UUID? = null,
@Column(name = "filename")
@Column(name = "`filename`")
open var filename: String? = null,
@Column(name = "content_type")
@Column(name = "`content_type`")
open var contentType: String? = null,
@Column(name = "content_length")
@Column(name = "`content_length`")
open var contentLength: Long? = null,
@Column(name = "path", length = 300)
@Column(name = "`path`", length = 300)
open var path: String? = null,
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at")
@Column(name = "`created_at`")
@CreatedDate
open var createdAt: Date? = null,
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_at")
@Column(name = "`updated_at`")
@LastModifiedDate
open var updatedAt: Date? = null,
@Column(length = 30)
@Column(length = 30, name = "`provider_type`")
open var providerType: String? = null,
) : Serializable {
@Transient

View File

@ -3,20 +3,27 @@ package com.cubetiqs.web.modules.user
import org.hibernate.Hibernate
import java.io.Serializable
import java.util.*
import javax.persistence.*
import jakarta.persistence.*
import org.hibernate.annotations.GenericGenerator
@UserModule
@Entity
@Table(name = "user")
@Table(name = "`user`")
open class UserEntity(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(generator = "custom-uuid")
@GenericGenerator(
name = "custom-uuid",
strategy = "org.hibernate.id.UUIDGenerator",
parameters = [org.hibernate.annotations.Parameter(name = "uuid_gen_strategy_class", value = "org.hibernate.id.uuid.CustomVersionOneStrategy")]
)
@Column(columnDefinition = "BINARY(16)")
open var id: UUID? = null,
@Column(name = "name", length = 50)
@Column(name = "`name`", length = 50)
open var name: String? = null,
@Column(name = "username", length = 50, unique = true)
@Column(name = "`username`", length = 50, unique = true)
open var username: String? = null,
) : Serializable {
override fun equals(other: Any?): Boolean {

View File

@ -27,8 +27,9 @@ spring:
password: ${DATASOURCE_PASSWORD:password}
jpa:
hibernate:
ddl-auto: ${JPA_HIBERNATE_DDL_AUTO:update}
ddl-auto: ${JPA_HIBERNATE_DDL_AUTO:create-drop}
open-in-view: ${JPA_OPEN_IN_VIEW:false}
database-platform: ${JPA_DATABASE_PLATFORM:org.hibernate.dialect.H2Dialect}
data:
redis:
repositories:
@ -55,5 +56,3 @@ logging:
springdoc:
api-docs:
enabled: ${API_DOCS_ENABLED:true}
swagger-ui:
path: /swagger-ui

View File

@ -3,9 +3,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "3.0.0" apply false
id("io.spring.dependency-management") version "1.1.0" apply false
kotlin("jvm") version "1.7.21" apply false
kotlin("jvm") version "1.7.22" apply false
kotlin("plugin.spring") version "1.7.22" apply false
kotlin("plugin.jpa") version "1.7.21" apply false
kotlin("plugin.jpa") version "1.7.22" apply false
}
allprojects {

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists