Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-candidate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
- name: Login to Docker Registry
run: echo ${{ secrets.DOCKER_REGISTRY_PASSWORD }} | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} --password-stdin ${{ secrets.DOCKER_REGISTRY_URL }}

- name: Set up JDK 24
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: temurin

- name: Set up Gradle
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
- name: Login to Docker Registry
run: echo ${{ secrets.DOCKER_REGISTRY_PASSWORD }} | docker login -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} --password-stdin ${{ secrets.DOCKER_REGISTRY_URL }}

- name: Set up JDK 24
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: temurin

- name: Build OCI Image
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
- name: Check out Git repository
uses: actions/checkout@v5

- name: Set up Node.js 24
- name: Set up Node.js 25
uses: actions/setup-node@v4
with:
node-version: 24
node-version: 25

- name: Install Node.js dependencies
run: npm ci
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sonar-backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
- uses: actions/checkout@v5
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 24
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: 24
java-version: 25
distribution: temurin
- name: Cache SonarCloud packages
uses: actions/cache@v4
Expand Down
2 changes: 1 addition & 1 deletion backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM eclipse-temurin:24-jre-alpine
FROM eclipse-temurin:25-jre-alpine
MAINTAINER kir-dev@sch.bme.hu
COPY build/libs/cmsch.jar /opt/cmsch/
WORKDIR /opt/cmsch
Expand Down
2 changes: 1 addition & 1 deletion backend/Dockerfile-build
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle clean assemble bootJar

FROM eclipse-temurin:24-jre-alpine
FROM eclipse-temurin:25-jre-alpine
MAINTAINER kir-dev@sch.bme.hu
COPY --from=build /home/gradle/src/build/libs/cmsch.jar /opt/cmsch/
WORKDIR /opt/cmsch
Expand Down
26 changes: 13 additions & 13 deletions backend/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("org.springframework.boot") version "4.0.0"
id("org.springframework.boot") version "4.0.1"
id("io.spring.dependency-management") version "1.1.7"
id("org.owasp.dependencycheck") version "12.1.9"
kotlin("jvm") version "2.2.21"
kotlin("plugin.spring") version "2.2.21"
id("org.sonarqube") version "7.1.0.6387"
kotlin("jvm") version "2.3.0"
kotlin("plugin.spring") version "2.3.0"
id("org.sonarqube") version "7.2.2.6593"
}

group = "hu.bme.sch"
Expand All @@ -17,7 +17,7 @@ group = "hu.bme.sch"
val ghRef: String? = System.getenv("GITHUB_REF")
version = if (ghRef != null && ghRef.startsWith("refs/tags/v")) ghRef.substring(11) else "dev"

java.sourceCompatibility = JavaVersion.VERSION_24
java.sourceCompatibility = JavaVersion.VERSION_25

springBoot {
buildInfo()
Expand Down Expand Up @@ -46,7 +46,7 @@ dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
implementation("tools.jackson.dataformat:jackson-dataformat-csv")
implementation("tools.jackson.module:jackson-module-kotlin")
implementation("com.fasterxml.uuid:java-uuid-generator:5.1.1")
implementation("com.fasterxml.uuid:java-uuid-generator:5.2.0")
implementation("com.github.spullara.mustache.java:compiler:0.9.14")
implementation("com.google.firebase:firebase-admin:9.7.0")
implementation("com.google.zxing:core:3.5.4")
Expand All @@ -57,7 +57,7 @@ dependencies {
runtimeOnly("io.jsonwebtoken:jjwt-impl")
runtimeOnly("io.jsonwebtoken:jjwt-jackson")
implementation("io.jsonwebtoken:jjwt-api")
implementation(platform("io.micrometer:micrometer-bom:1.16.0"))
implementation(platform("io.micrometer:micrometer-bom:1.16.1"))
runtimeOnly("io.micrometer:micrometer-core")
runtimeOnly("io.micrometer:micrometer-observation")
runtimeOnly("io.micrometer:micrometer-registry-prometheus")
Expand All @@ -71,7 +71,7 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.0")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.1")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
Expand All @@ -81,11 +81,11 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-webclient")
implementation("org.springframework.session:spring-session-jdbc")
implementation("software.amazon.awssdk:s3:2.39.3")
implementation("software.amazon.awssdk:s3:2.41.1")
runtimeOnly("com.h2database:h2")
runtimeOnly("org.postgresql:postgresql")
testApi("org.springframework.boot:spring-boot-starter-test")
testApi("org.springframework.security:spring-security-test")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
}

dependencyCheck {
Expand All @@ -95,8 +95,8 @@ dependencyCheck {
tasks.withType<KotlinCompile> {
compilerOptions {
freeCompilerArgs.add("-Xjsr305=strict")
apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_2)
jvmTarget.set(JvmTarget.JVM_24)
apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_3)
jvmTarget.set(JvmTarget.JVM_25)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class CountdownApiFilter(

override fun doFilterInternal(req: HttpServletRequest, res: HttpServletResponse, filterChain: FilterChain) {
if (req.servletPath.startsWith("/api/") && !req.servletPath.startsWith("/api/app")) {
val cmschUser = SecurityContextHolder.getContext()?.authentication?.getUserOrNull()
val cmschUser = SecurityContextHolder.getContext().authentication?.getUserOrNull()
val role = cmschUser?.role ?: RoleType.GUEST
if (countdown.isBlockedAt(clock.getTimeInSeconds(), role)) {
res.sendError(HttpServletResponse.SC_BAD_REQUEST, "Countdown is not finished")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class SessionIncreaseFilter(
val request = servletRequest as HttpServletRequest
if (request.servletPath.startsWith("/admin/")) {
val session = request.getSession(true)
val user = SecurityContextHolder.getContext()?.authentication?.getUserOrNull()
val user = SecurityContextHolder.getContext().authentication?.getUserOrNull()
if (user?.let { ControlPermissions.PERMISSION_INCREASED_SESSION_DURATION.validate(it) } == true) {
log.debug(
"Increasing session time for user {} is {}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class ScriptingContext(
@Suppress("UNCHECKED_CAST")
class ModifyingScriptingDbContext(private val supportedRepos: List<CrudRepository<*, *>>, private val readOnly: Boolean) {

fun <T, ID, R : CrudRepository<T, ID>> repository(selectedRepo: KClass<out R>): R {
fun <T : Any, ID, R : CrudRepository<T, ID>> repository(selectedRepo: KClass<out R>): R {
if (readOnly)
error("modifyingDb cannot be used in a read-only context")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class SheetsUpdaterService(
throw IOException("Unexpected code $response")
}

return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body?.string())?.status
return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body.string())?.status
?: SheetsUpdateStatus.CONNECTION_ERROR
}
} catch (e: Exception) {
Expand All @@ -92,7 +92,7 @@ class SheetsUpdaterService(
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")

return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body?.string())?.status
return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body.string())?.status
?: SheetsUpdateStatus.CONNECTION_ERROR
}
} catch (e: Exception) {
Expand All @@ -117,7 +117,7 @@ class SheetsUpdaterService(
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")

return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body?.string())?.status
return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body.string())?.status
?: SheetsUpdateStatus.CONNECTION_ERROR
}
} catch (e: Exception) {
Expand All @@ -142,7 +142,7 @@ class SheetsUpdaterService(
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")

return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body?.string())?.status
return sheetsUpdateResponseReader.readValue<SheetsUpdateResponse>(response.body.string())?.status
?: SheetsUpdateStatus.CONNECTION_ERROR
}
} catch (e: Exception) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class AppConfig {
}

override fun getConvertibleTypes(): MutableSet<GenericConverter.ConvertiblePair>? {
return Collections.singleton(GenericConverter.ConvertiblePair(Object::class.java, URL::class.java))
return Collections.singleton(GenericConverter.ConvertiblePair(Any::class.java, URL::class.java))
}
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,10 @@ class InstanceInfoDashboard(
listOf("Time zone id", startupPropertyConfig.zoneId),
listOf("Storage implementation", startupPropertyConfig.storageImplementation.toString()),
listOf("Filesystem storage path", startupPropertyConfig.filesystemStoragePath),
listOf("S3 endpoint", startupPropertyConfig.s3Endpoint.toString()),
listOf("S3 public endpoint", startupPropertyConfig.s3PublicEndpoint.toString()),
listOf("S3 bucket", startupPropertyConfig.s3Bucket.toString()),
listOf("S3 region", startupPropertyConfig.s3Region.toString()),
listOf("S3 endpoint", startupPropertyConfig.s3Endpoint),
listOf("S3 public endpoint", startupPropertyConfig.s3PublicEndpoint),
listOf("S3 bucket", startupPropertyConfig.s3Bucket),
listOf("S3 region", startupPropertyConfig.s3Region),
listOf("Mailgun token length", startupPropertyConfig.mailgunToken.length.toString()),
listOf("Session validity seconds", startupPropertyConfig.sessionValiditySeconds.toString()),
listOf("Increased session time (ms)", startupPropertyConfig.increasedSessionTime.toString()),
Expand Down
15 changes: 0 additions & 15 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading