Compare commits

..

No commits in common. "abb35e94c0ef813084fc16a1caf1fefbec12c87e" and "d404e84a4f5c9360ca1088f3a71920a08dd715b9" have entirely different histories.

11 changed files with 38 additions and 54 deletions

2
.gitignore vendored
View File

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

View File

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

View File

@ -8,8 +8,8 @@ plugins {
kotlin("plugin.jpa") kotlin("plugin.jpa")
} }
val kotlinVersion = "1.7.22" val kotlinVersion = "1.7.20"
val springBootVersion = "3.0.0" val springBootVersion = "2.7.4"
// find the last commit // find the last commit
fun getGitHashLastCommit(): String { fun getGitHashLastCommit(): String {
@ -25,9 +25,9 @@ fun getGitHashLastCommit(): String {
springBoot { springBoot {
buildInfo { buildInfo {
properties { properties {
this.additional.put("commitId", getGitHashLastCommit()) additional["commitId"] = getGitHashLastCommit()
this.additional.put("springBootVersion", springBootVersion) additional["springBootVersion"] = springBootVersion
this.additional.put("kotlinVersion", kotlinVersion) additional["kotlinVersion"] = kotlinVersion
} }
} }
} }
@ -36,10 +36,9 @@ dependencies {
// Spring Data JPA (Required for Database Layer) // Spring Data JPA (Required for Database Layer)
implementation("org.springframework.boot:spring-boot-starter-data-jpa") 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-data-redis")
implementation("org.springframework.boot:spring-boot-starter-validation")
// Migrating from SpringDoc API (Swagger) for Support Spring Boot 3.x // Migrating from SpringFox
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.0") implementation("org.springdoc:springdoc-openapi-ui:1.6.11")
// SPRING FRAMEWORK AND CORE // SPRING FRAMEWORK AND CORE
implementation("org.springframework.boot:spring-boot-starter-web") 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.OpenAPI
import io.swagger.v3.oas.models.info.Info import io.swagger.v3.oas.models.info.Info
import io.swagger.v3.oas.models.info.License import io.swagger.v3.oas.models.info.License
import org.springdoc.core.GroupedOpenApi
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Configuration
import io.swagger.v3.oas.annotations.OpenAPIDefinition import io.swagger.v3.oas.annotations.OpenAPIDefinition
import io.swagger.v3.oas.annotations.servers.Server import io.swagger.v3.oas.annotations.servers.Server
import org.springdoc.core.models.GroupedOpenApi
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
//import org.springdoc.core.SpringDocUtils //import org.springdoc.core.SpringDocUtils

View File

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

View File

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

View File

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

View File

@ -3,27 +3,20 @@ package com.cubetiqs.web.modules.user
import org.hibernate.Hibernate import org.hibernate.Hibernate
import java.io.Serializable import java.io.Serializable
import java.util.* import java.util.*
import jakarta.persistence.* import javax.persistence.*
import org.hibernate.annotations.GenericGenerator
@UserModule @UserModule
@Entity @Entity
@Table(name = "`user`") @Table(name = "user")
open class UserEntity( open class UserEntity(
@Id @Id
@GeneratedValue(generator = "custom-uuid") @GeneratedValue(strategy = GenerationType.AUTO)
@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, open var id: UUID? = null,
@Column(name = "`name`", length = 50) @Column(name = "name", length = 50)
open var name: String? = null, open var name: String? = null,
@Column(name = "`username`", length = 50, unique = true) @Column(name = "username", length = 50, unique = true)
open var username: String? = null, open var username: String? = null,
) : Serializable { ) : Serializable {
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {

View File

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

View File

@ -1,11 +1,11 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins { plugins {
id("org.springframework.boot") version "3.0.0" apply false id("org.springframework.boot") version "2.7.4" apply false
id("io.spring.dependency-management") version "1.1.0" apply false id("io.spring.dependency-management") version "1.0.14.RELEASE" apply false
kotlin("jvm") version "1.7.22" apply false kotlin("jvm") version "1.7.20" apply false
kotlin("plugin.spring") version "1.7.22" apply false kotlin("plugin.spring") version "1.7.20" apply false
kotlin("plugin.jpa") version "1.7.22" apply false kotlin("plugin.jpa") version "1.7.20" apply false
} }
allprojects { allprojects {

View File

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