Skip to content

Commit

Permalink
Merge pull request #694 from hexagonkt/develop
Browse files Browse the repository at this point in the history
Update dependencies and fix warnings
  • Loading branch information
jaguililla committed Mar 17, 2024
2 parents 830a9ec + e02615f commit c97a317
Show file tree
Hide file tree
Showing 16 changed files with 82 additions and 52 deletions.
6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ import org.gradle.api.tasks.wrapper.Wrapper.DistributionType.ALL
*/

plugins {
kotlin("jvm") version("1.9.22") apply(false)
kotlin("jvm") version("1.9.23") apply(false)

id("idea")
id("eclipse")
id("project-report")
id("org.jetbrains.dokka") version("1.9.10")
id("com.github.jk1.dependency-license-report") version("2.5")
id("org.jetbrains.dokka") version("1.9.20")
id("com.github.jk1.dependency-license-report") version("2.6")
id("org.jetbrains.kotlinx.binary-compatibility-validator") version("0.14.0")
id("org.graalvm.buildtools.native") version("0.10.1") apply(false)
id("io.gitlab.arturbosch.detekt") version("1.23.5") apply(false)
Expand Down
1 change: 1 addition & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ apply(from = "$rootDir/gradle/publish.gradle")
apply(from = "$rootDir/gradle/dokka.gradle")
apply(from = "$rootDir/gradle/native.gradle")
apply(from = "$rootDir/gradle/detekt.gradle")
apply(from = "$rootDir/gradle/resources.gradle")

description = "Hexagon core utilities. Includes logging helpers."

Expand Down
18 changes: 9 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ org.gradle.warning.mode=all
org.gradle.console=plain

# Gradle
version=3.5.0
version=3.5.1
group=com.hexagonkt
description=The atoms of your platform

Expand All @@ -31,33 +31,33 @@ logoSmall=assets/img/logo.svg
iconsDirectory=content

# VERSIONS
kotlinVersion=1.9.22
dokkaVersion=1.9.10
mockkVersion=1.13.9
kotlinVersion=1.9.23
dokkaVersion=1.9.20
mockkVersion=1.13.10
junitVersion=5.10.2
gatlingVersion=3.10.4
slf4jVersion=2.0.12
jmhVersion=1.37
mkdocsMaterialVersion=9.5.11
mkdocsMaterialVersion=9.5.13
mermaidDokkaVersion=0.6.0
nativeToolsVersion=0.10.1

# http_server_netty
nettyVersion=4.1.107.Final
nettyTcNativeVersion=2.0.63.Final
nettyTcNativeVersion=2.0.65.Final

# http_server_helidon
helidonVersion=4.0.5
helidonVersion=4.0.6

# http_server_servlet
servletVersion=6.0.0
jettyVersion=12.0.6
jettyVersion=12.0.7

# rest_tools
swaggerRequestValidatorVersion=2.40.0

# serialization
jacksonVersion=2.16.1
jacksonVersion=2.17.0
dslJsonVersion=2.0.2

# serverless_http_google
Expand Down
35 changes: 5 additions & 30 deletions gradle/kotlin.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,40 +35,13 @@ repositories {
}

dependencies {
final String scriptJunitVersion = findProperty("junitVersion") ?: "5.10.1"
final String scriptJunitVersion = findProperty("junitVersion") ?: "5.10.2"

implementation("org.jetbrains.kotlin:kotlin-stdlib")

testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.junit.jupiter:junit-jupiter:$scriptJunitVersion")
}

// Replace build variables in resource files
processResources {
[ "properties", "ini", "cfg", "txt", "html", "xml", "json", "yaml", "svg" ].each { String ext ->
final Map<String, ?> projectStringProperties = project.getProperties()
.findAll { it.value instanceof String }
final Map<String, ?> rootStringProperties = rootProject.getProperties()
.findAll { it.value instanceof String }

filesMatching("**/*.$ext") {
filter {
String content = it

projectStringProperties.entrySet().forEach { entry ->
content = content.replace("\${project.${entry.key}}", entry.value.toString())
}

rootStringProperties.entrySet().forEach { entry ->
final String k = entry.key
final String v = entry.value.toString()
content = content.replace("\${rootProject.$k}", v.toString())
}

content
}
}
}
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

tasks.withType(JavaCompile) {
Expand All @@ -84,7 +57,7 @@ tasks.compileTestKotlin.kotlinOptions.jvmTarget = tasks.compileKotlin.kotlinOpti
tasks.compileTestKotlin.kotlinOptions.apiVersion = tasks.compileKotlin.kotlinOptions.apiVersion

clean {
delete("log", "out", ".vertx", "file-uploads", "kotlin-js-store")
delete("log", "out", ".vertx", "file-uploads", "kotlin-js-store", ".kotlin")
delete(
"$rootDir/build",
"$rootDir/log",
Expand Down Expand Up @@ -113,6 +86,8 @@ tasks.register("verify", Test) {

shouldRunAfter(test)
include("**/*IT.*")
testClassesDirs = testing.suites.test.sources.output.classesDirs
classpath = testing.suites.test.sources.runtimeClasspath
}

check.dependsOn("test", "verify")
Expand Down
3 changes: 3 additions & 0 deletions gradle/native.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/*
* Check usage information at: http://hexagonkt.com/gradle/#native
*/

apply(plugin: "org.graalvm.buildtools.native")

Expand Down
33 changes: 33 additions & 0 deletions gradle/resources.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Check usage information at: http://hexagonkt.com/gradle/#resources
*/

apply(plugin: "java")

// Replace build variables in resource files
processResources {
[ "properties", "ini", "cfg", "txt", "html", "xml", "json", "yaml", "svg" ].each { String ext ->
final Map<String, ?> projectStringProperties = project.getProperties()
.findAll { it.value instanceof String }
final Map<String, ?> rootStringProperties = rootProject.getProperties()
.findAll { it.value instanceof String }

filesMatching("**/*.$ext") {
filter {
String content = it

projectStringProperties.entrySet().forEach { entry ->
content = content.replace("\${project.${entry.key}}", entry.value.toString())
}

rootStringProperties.entrySet().forEach { entry ->
final String k = entry.key
final String v = entry.value.toString()
content = content.replace("\${rootProject.$k}", v.toString())
}

content
}
}
}
}
2 changes: 2 additions & 0 deletions http/http_server/api/http_server.api
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ public final class com/hexagonkt/http/server/callbacks/DateCallback : kotlin/jvm

public final class com/hexagonkt/http/server/callbacks/FileCallback : kotlin/jvm/functions/Function1 {
public fun <init> (Ljava/io/File;)V
public fun <init> (Ljava/lang/String;)V
public fun invoke (Lcom/hexagonkt/http/handlers/HttpContext;)Lcom/hexagonkt/http/handlers/HttpContext;
public synthetic fun invoke (Ljava/lang/Object;)Ljava/lang/Object;
}
Expand All @@ -117,6 +118,7 @@ public final class com/hexagonkt/http/server/callbacks/LoggingCallback : kotlin/
}

public final class com/hexagonkt/http/server/callbacks/UrlCallback : kotlin/jvm/functions/Function1 {
public fun <init> (Ljava/lang/String;)V
public fun <init> (Ljava/net/URL;)V
public fun invoke (Lcom/hexagonkt/http/handlers/HttpContext;)Lcom/hexagonkt/http/handlers/HttpContext;
public synthetic fun invoke (Ljava/lang/Object;)Ljava/lang/Object;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import java.io.File
* @param file Base file used to resolve paths passed on the request.
*/
class FileCallback(private val file: File) : (HttpContext) -> HttpContext {

constructor(file: String) : this(File(file))

private companion object {
val logger: Logger = Logger(FileCallback::class)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import com.hexagonkt.http.handlers.HttpContext
import java.net.URL

class UrlCallback(private val url: URL) : (HttpContext) -> HttpContext {

constructor(url: String) : this(urlOf(url))

private companion object {
val logger: Logger = Logger(UrlCallback::class)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ internal class FileCallbackTest {
requestPath: String,
pathPattern: String
): HttpResponsePort =
FileCallback(File(filePath))(
FileCallback(filePath)(
HttpContext(
request = HttpRequest(path = requestPath),
predicate = HttpPredicate(pathPattern = TemplatePathPattern(pathPattern)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ internal class UrlCallbackTest {
requestPath: String,
pathPattern: String
): HttpResponsePort =
UrlCallback(urlOf(url))(
UrlCallback(url)(
HttpContext(
HttpCall(HttpRequest(path = requestPath)),
HttpPredicate(pathPattern = TemplatePathPattern(pathPattern))
Expand Down
4 changes: 1 addition & 3 deletions http/http_server_netty/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ dependencies {

"api"(project(":http:http_server"))
"api"("io.netty:netty-codec-http2:$nettyVersion") { exclude(group = "org.slf4j") }

if (System.getProperty("os.name").lowercase().contains("mac"))
"api"("io.netty:netty-tcnative:$nettyTcNativeVersion:osx-x86_64")
"api"("io.netty:netty-tcnative-boringssl-static:$nettyTcNativeVersion")

"testImplementation"(project(":http:http_test"))
"testImplementation"(project(":http:http_client_jetty_ws"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.hexagonkt.serialization.jackson.json.Json
import com.hexagonkt.serialization.jackson.yaml.Yaml
import org.junit.jupiter.api.condition.DisabledInNativeImage
import org.junit.jupiter.api.condition.DisabledOnOs
import org.junit.jupiter.api.condition.OS.MAC
import org.junit.jupiter.api.condition.OS.WINDOWS

// TODO Assert context methods (request.method, request.protocol...)
Expand All @@ -20,7 +21,7 @@ internal class AdapterBooksTest : BooksTest(clientAdapter, serverAdapter)
internal class AdapterErrorsTest : ErrorsTest(clientAdapter, serverAdapter)
internal class AdapterFiltersTest : FiltersTest(clientAdapter, serverAdapter)
internal class AdapterClientTest : ClientTest(clientAdapter, serverAdapter, formats)
@DisabledOnOs(WINDOWS) // TODO Make this work on GitHub runners
@DisabledOnOs(WINDOWS, MAC) // TODO Make this work on GitHub runners
internal class AdapterHttpsTest : HttpsTest(clientAdapter, serverAdapter)
internal class AdapterZipTest : ZipTest(clientAdapter, serverAdapter)
internal class AdapterCookiesTest : CookiesTest(clientAdapter, serverAdapter)
Expand All @@ -44,7 +45,10 @@ val liteServerAdapter: () -> NettyServerAdapter = {
internal class LiteAdapterBooksTest : BooksTest(clientAdapter, liteServerAdapter)
internal class LiteAdapterErrorsTest : ErrorsTest(clientAdapter, liteServerAdapter)
internal class LiteAdapterFiltersTest : FiltersTest(clientAdapter, liteServerAdapter)
@DisabledOnOs(WINDOWS) // TODO Make this work on GitHub runners
@DisabledOnOs(WINDOWS, MAC) // TODO Make this work on GitHub runners
//@DisabledIf(
// "java.lang.System.getProperty('os.name').toLowerCase().contains('mac') && !java.lang.System.getProperty('org.graalvm.nativeimage.imagecode').isBlank()"
//)
internal class LiteAdapterHttpsTest : HttpsTest(clientAdapter, liteServerAdapter)
internal class LiteAdapterZipTest : ZipTest(clientAdapter, liteServerAdapter)
internal class LiteAdapterCookiesTest : CookiesTest(clientAdapter, liteServerAdapter)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import com.hexagonkt.serialization.SerializationManager
import com.hexagonkt.serialization.serialize
import org.junit.jupiter.api.*
import org.junit.jupiter.api.condition.DisabledOnOs
import org.junit.jupiter.api.condition.OS.MAC
import org.junit.jupiter.api.condition.OS.WINDOWS

import java.math.BigInteger
Expand Down Expand Up @@ -387,7 +388,7 @@ abstract class ClientTest(
}

@Test
@DisabledOnOs(WINDOWS) // TODO Make this work on GitHub runners
@DisabledOnOs(WINDOWS, MAC) // TODO Make this work on GitHub runners
fun `Request HTTPS example`() {

val serverAdapter = serverAdapter()
Expand Down
5 changes: 4 additions & 1 deletion http/rest_tools/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ dependencies {
"api"(project(":http:rest"))
"api"(project(":http:http_server"))
"api"(project(":http:http_client"))
"api"("com.atlassian.oai:swagger-request-validator-core:$swaggerRequestValidatorVersion")
"api"("com.atlassian.oai:swagger-request-validator-core:$swaggerRequestValidatorVersion") {
exclude(module = "commons-compress")
exclude(module = "commons-codec")
}

"testImplementation"(project(":http:http_client_jetty"))
"testImplementation"(project(":http:http_server_jetty"))
Expand Down
6 changes: 5 additions & 1 deletion site/pages/gradle.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ It sets up:
- Java version
- Repositories
- Kotlin dependencies
- Resource processing (replacing build variables)
- Cleaning (deleting runtime files as logs and dump files)
- Tests run, handles properties, output, and mocks (test's output depends on Gradle logging level)
- Set up coverage report
Expand Down Expand Up @@ -265,3 +264,8 @@ plugins {
To set up this script's parameters, check the [build variables section]. These helper settings are:

* jmhVersion: JMH version to be used. If not specified a tested JMH version will be used.

## Resources
Process project resources (replacing build variables)

To use it, apply `$gradleScripts/resources.gradle` to the project's `build.gradle.kts` file.

0 comments on commit c97a317

Please sign in to comment.