1
0
Fork 1
mirror of https://gitlab.com/mangadex-pub/mangadex_at_home.git synced 2024-01-19 02:48:37 +00:00

Merge branch 'update-gradle' into 'master'

Update to Gradle 7 and Kotlin 1.5.10

See merge request mangadex-pub/mangadex_at_home!90
This commit is contained in:
carbotaniuman 2021-07-11 19:27:49 +00:00
commit dd8e434024
15 changed files with 93 additions and 45 deletions

1
.gitattributes vendored
View file

@ -1 +1,2 @@
CHANGELOG.md merge=union CHANGELOG.md merge=union
* text=auto eol=lf

View file

@ -1,12 +1,12 @@
plugins { plugins {
id "jacoco" id "jacoco"
id "java" id "java"
id "org.jetbrains.kotlin.jvm" version "1.4.30" id "org.jetbrains.kotlin.jvm" version "1.5.10"
id "org.jetbrains.kotlin.kapt" version "1.4.0" id "org.jetbrains.kotlin.kapt" version "1.5.10"
id "application" id "application"
id "com.github.johnrengelman.shadow" version "5.2.0" id "com.github.johnrengelman.shadow" version "5.2.0"
id "com.diffplug.spotless" version "5.8.2" id "com.diffplug.spotless" version "5.8.2"
id "dev.afanasev.sekret" version "0.0.7" id "net.afanasev.sekret" version "0.1.0"
} }
group = "com.mangadex" group = "com.mangadex"
@ -15,7 +15,6 @@ mainClassName = "mdnet.MainKt"
repositories { repositories {
mavenCentral() mavenCentral()
jcenter()
} }
configurations { configurations {
@ -23,7 +22,9 @@ configurations {
} }
dependencies { dependencies {
compileOnly group: "dev.afanasev", name: "sekret-annotation", version: "0.0.7" implementation "org.jetbrains.kotlin:kotlin-reflect"
compileOnly group: "net.afanasev", name: "sekret-annotation", version: "0.1.0"
implementation group: "commons-io", name: "commons-io", version: "2.8.0" implementation group: "commons-io", name: "commons-io", version: "2.8.0"
implementation group: "org.apache.commons", name: "commons-compress", version: "1.20" implementation group: "org.apache.commons", name: "commons-compress", version: "1.20"
@ -63,11 +64,13 @@ dependencies {
testImplementation "io.mockk:mockk:1.10.4" testImplementation "io.mockk:mockk:1.10.4"
} }
test { tasks.withType(Test) {
useJUnitPlatform() useJUnitPlatform()
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(8)
} }
}
task testDev(type: Test) { tasks.register("testDev", Test) {
group = "verification" group = "verification"
useJUnitPlatform() useJUnitPlatform()
filter { filter {
@ -116,9 +119,11 @@ tasks.register("generateVersion", Copy) {
into "$buildDir/generated/java" into "$buildDir/generated/java"
expand templateContext expand templateContext
} }
//tasks.named(":kaptKotlin").dependsOn generateVersion
compileJava.dependsOn generateVersion
sourceSets.main.java.srcDir generateVersion
sourceSets.main.java.srcDir generateVersion.outputs.files // https://gist.github.com/medvedev/968119d7786966d9ed4442ae17aca279
tasks.register("depsize") { tasks.register("depsize") {
description = 'Prints dependencies for "default" configuration' description = 'Prints dependencies for "default" configuration'
doLast() { doLast() {

View file

@ -1,4 +1,4 @@
http_4k_version=4.3.0.0 http_4k_version=4.3.0.0
kotest_version=4.4.1 kotest_version=4.6.0
ktorm_version=3.3.0 ktorm_version=3.3.0
picocli_version=4.6.1 picocli_version=4.6.1

Binary file not shown.

View file

@ -1,6 +1,5 @@
#Thu Jul 02 11:52:16 CDT 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

53
gradlew vendored
View file

@ -1,5 +1,21 @@
#!/usr/bin/env sh #!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
############################################################################## ##############################################################################
## ##
## Gradle start up script for UN*X ## Gradle start up script for UN*X
@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD="maximum"
@ -66,6 +82,7 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@ -109,10 +126,11 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi fi
# For Cygwin, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if $cygwin ; then if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"` APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"` JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath # We build the pattern for arguments to be converted via cygpath
@ -138,19 +156,19 @@ if $cygwin ; then
else else
eval `echo args$i`="\"$arg\"" eval `echo args$i`="\"$arg\""
fi fi
i=$((i+1)) i=`expr $i + 1`
done done
case $i in case $i in
(0) set -- ;; 0) set -- ;;
(1) set -- "$args0" ;; 1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;; 2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;; 3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;; 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac esac
fi fi
@ -159,14 +177,9 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " " echo " "
} }
APP_ARGS=$(save "$@") APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules # Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

22
gradlew.bat vendored
View file

@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%" == "" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe @rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome if defined JAVA_HOME goto findJavaFromJavaHome
@ -65,6 +84,7 @@ set CMD_LINE_ARGS=%*
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

View file

@ -1,7 +1,6 @@
pluginManagement { pluginManagement {
repositories { repositories {
gradlePluginPortal() gradlePluginPortal()
jcenter()
google() google()
} }
resolutionStrategy { resolutionStrategy {

View file

@ -80,3 +80,13 @@ server_settings:
# 0 defaults to (2 * your available processors) # 0 defaults to (2 * your available processors)
# https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runtime.html#availableProcessors() # https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runtime.html#availableProcessors()
threads: 0 threads: 0
# Settings intended for advanced use cases or tinkering
dev_settings:
# The url to override the MD@H backend with
dev_url: ~
# Whether to disable the sni check for mangadex.network and localhost
disable_sni_check: false
# Whether to send the server header or not, defaults to false
send_server_header: false

View file

@ -28,7 +28,7 @@ class PostTransactionLabeler : HttpTransactionLabeler {
"method" to transaction.request.method.toString(), "method" to transaction.request.method.toString(),
"status" to transaction.response.status.code.toString(), "status" to transaction.response.status.code.toString(),
"path" to transaction.routingGroup, "path" to transaction.routingGroup,
"cache" to (transaction.response.header("X-Cache") ?: "MISS").toUpperCase() "cache" to (transaction.response.header("X-Cache") ?: "MISS").uppercase()
) )
) )
} }

View file

@ -104,7 +104,7 @@ sealed class NettyTransport(threads: Int) {
private fun defaultNumThreads() = Runtime.getRuntime().availableProcessors() * 2 private fun defaultNumThreads() = Runtime.getRuntime().availableProcessors() * 2
fun bestForPlatform(threads: Int): NettyTransport { fun bestForPlatform(threads: Int): NettyTransport {
val name = SystemPropertyUtil.get("os.name").toLowerCase(Locale.UK).trim { it <= ' ' } val name = SystemPropertyUtil.get("os.name").lowercase(Locale.US).trim { it <= ' ' }
val threadsToUse = if (threads == 0) defaultNumThreads() else threads val threadsToUse = if (threads == 0) defaultNumThreads() else threads
LOGGER.info { "Choosing a transport with $threadsToUse threads" } LOGGER.info { "Choosing a transport with $threadsToUse threads" }
@ -188,7 +188,8 @@ class Netty(
override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) { override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) {
if (evt is SniCompletionEvent) { if (evt is SniCompletionEvent) {
if (!devSettings.disableSniCheck) { if (!devSettings.disableSniCheck) {
if (!evt.hostname().endsWith(hostToTest) && if (evt.hostname() != null &&
!evt.hostname().endsWith(hostToTest) &&
!evt.hostname().endsWith("localhost") !evt.hostname().endsWith("localhost")
) { ) {
ctx.close() ctx.close()

View file

@ -20,7 +20,7 @@ package mdnet.settings
import com.fasterxml.jackson.databind.PropertyNamingStrategies import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming import com.fasterxml.jackson.databind.annotation.JsonNaming
import dev.afanasev.sekret.Secret import net.afanasev.sekret.Secret
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class) @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class)
data class ClientSettings( data class ClientSettings(

View file

@ -20,7 +20,7 @@ package mdnet.settings
import com.fasterxml.jackson.databind.PropertyNamingStrategies import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming import com.fasterxml.jackson.databind.annotation.JsonNaming
import dev.afanasev.sekret.Secret import net.afanasev.sekret.Secret
import org.http4k.core.Uri import org.http4k.core.Uri
sealed class PingResult sealed class PingResult

View file

@ -20,7 +20,7 @@ package mdnet.settings
import com.fasterxml.jackson.databind.PropertyNamingStrategies import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.annotation.JsonNaming import com.fasterxml.jackson.databind.annotation.JsonNaming
import dev.afanasev.sekret.Secret import net.afanasev.sekret.Secret
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class) @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class)
data class SettingsRequest( data class SettingsRequest(

View file

@ -32,8 +32,8 @@ import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldBe
import org.apache.commons.io.IOUtils import org.apache.commons.io.IOUtils
import org.ktorm.database.Database import org.ktorm.database.Database
import kotlin.time.Duration
import kotlin.time.ExperimentalTime import kotlin.time.ExperimentalTime
import kotlin.time.minutes
class ImageStorageTest : FreeSpec() { class ImageStorageTest : FreeSpec() {
override fun isolationMode() = IsolationMode.InstancePerTest override fun isolationMode() = IsolationMode.InstancePerTest
@ -171,7 +171,7 @@ class ImageStorageSlowTest : FreeSpec() {
writer.stream.write(ByteArray(4096)) writer.stream.write(ByteArray(4096))
writer.commit(4096).shouldBeTrue() writer.commit(4096).shouldBeTrue()
eventually(5.minutes) { eventually(Duration.minutes(5)) {
imageStorage.size.shouldBeGreaterThan(0) imageStorage.size.shouldBeGreaterThan(0)
} }
} }
@ -185,7 +185,7 @@ class ImageStorageSlowTest : FreeSpec() {
writer.stream.write(ByteArray(8192)) writer.stream.write(ByteArray(8192))
writer.commit(8192).shouldBeTrue() writer.commit(8192).shouldBeTrue()
eventually(5.minutes) { eventually(Duration.minutes(5)) {
imageStorage.size.shouldBeZero() imageStorage.size.shouldBeZero()
} }
} }