From 64bd26abb8ff862a05549e173f529aaf4d309658 Mon Sep 17 00:00:00 2001 From: jaguililla Date: Thu, 22 Aug 2024 21:40:10 +0200 Subject: [PATCH] Remove incomplete :serverless module --- build.gradle.kts | 1 - gradle.properties | 2 +- serverless/serverless_http_google/README.md | 9 --- .../serverless_http_google/build.gradle.kts | 45 ------------ .../google/GoogleServerlessHttpAdapter.kt | 71 ------------------- .../google/GoogleServerlessHttpAdapterTest.kt | 39 ---------- settings.gradle.kts | 1 - site/build.gradle.kts | 1 - 8 files changed, 1 insertion(+), 168 deletions(-) delete mode 100644 serverless/serverless_http_google/README.md delete mode 100644 serverless/serverless_http_google/build.gradle.kts delete mode 100644 serverless/serverless_http_google/src/main/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapter.kt delete mode 100644 serverless/serverless_http_google/src/test/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapterTest.kt diff --git a/build.gradle.kts b/build.gradle.kts index 93810951a6..23f9da9837 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -159,7 +159,6 @@ apiValidation { // Experimental modules "rest", "rest_tools", - "serverless_http_google", "web", "templates_jte", ) diff --git a/gradle.properties b/gradle.properties index eb5a67415b..8800362338 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.warning.mode=all org.gradle.console=plain # Gradle -version=3.6.5 +version=3.6.6 group=com.hexagonkt description=The atoms of your platform diff --git a/serverless/serverless_http_google/README.md b/serverless/serverless_http_google/README.md deleted file mode 100644 index 8d20407471..0000000000 --- a/serverless/serverless_http_google/README.md +++ /dev/null @@ -1,9 +0,0 @@ - -# Module serverless_http_google -TODO - -## Install the Dependency -TODO - -# Package com.hexagonkt.serverless.http.google -TODO diff --git a/serverless/serverless_http_google/build.gradle.kts b/serverless/serverless_http_google/build.gradle.kts deleted file mode 100644 index f126f4f5bb..0000000000 --- a/serverless/serverless_http_google/build.gradle.kts +++ /dev/null @@ -1,45 +0,0 @@ - -plugins { - id("java-library") -} - -apply(from = "$rootDir/gradle/kotlin.gradle") -apply(from = "$rootDir/gradle/publish.gradle") -apply(from = "$rootDir/gradle/dokka.gradle") -apply(from = "$rootDir/gradle/detekt.gradle") - -description = "Google Functions Serverless adapter." - -private val target = "com.hexagonkt.serverless.http.google.GoogleServerlessHttpAdapter" -private val invoker by configurations.creating - -dependencies { - val functionsVersion = libs.versions.functions.get() - val invokerVersion = libs.versions.invoker.get() - - "api"(project(":http:http_handlers")) - "compileOnly"("com.google.cloud.functions:functions-framework-api:$functionsVersion") - - "testImplementation"("com.google.cloud.functions:functions-framework-api:$functionsVersion") - "testImplementation"("com.google.cloud.functions.invoker:java-function-invoker:$invokerVersion") - "testImplementation"(project(":http:http_client_java")) - - "invoker"("com.google.cloud.functions.invoker:java-function-invoker:$invokerVersion") -} - -tasks.register("runFunction") { - val classpath = files(configurations.runtimeClasspath, sourceSets["main"].output) - - classpath(invoker) - mainClass = "com.google.cloud.functions.invoker.runner.Invoker" - inputs.files(classpath) - - args( - "--target", properties["run.target"] ?: target, - "--port", properties["run.port"] ?: 8080 - ) - - doFirst { - args("--classpath", classpath.asPath) - } -} diff --git a/serverless/serverless_http_google/src/main/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapter.kt b/serverless/serverless_http_google/src/main/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapter.kt deleted file mode 100644 index 5da7ce3316..0000000000 --- a/serverless/serverless_http_google/src/main/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapter.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.hexagonkt.serverless.http.google - -import com.google.cloud.functions.HttpFunction -import com.google.cloud.functions.HttpRequest -import com.google.cloud.functions.HttpResponse -import com.hexagonkt.http.handlers.HttpContext -import com.hexagonkt.http.handlers.HttpHandler -import com.hexagonkt.http.model.* -import com.hexagonkt.http.parseContentType -import java.net.URI - -class GoogleServerlessHttpAdapter(private val handler: HttpHandler): HttpFunction { - - override fun service(request: HttpRequest, response: HttpResponse) { - val handlerRequest = createRequest(request) - val handlerContext = handler.process(handlerRequest) - writeResponse(response, handlerContext) - } - - private fun createRequest(request: HttpRequest): com.hexagonkt.http.model.HttpRequest { - val uri = URI(request.uri) - val qp = request.queryParameters?.map { (k, v) -> QueryParameter(k, v) } ?: emptyList() - val h = request.headers?.map { (k, v) -> Header(k, v) } ?: emptyList() - - request.parts.map { (k, v) -> - HttpPart( - name = k, - body = v.inputStream.readAllBytes(), - headers = Headers(), - contentType = v.contentType?.map { parseContentType(it) }?.orElse(null), - size = v.contentLength, - submittedFileName = v.fileName.orElse(null), - - /* - name: String, - body: Any, - headers: Headers = Headers(), - contentType: ContentType? = null, - size: Long = -1L, - submittedFileName: String? = null - */ - ) - } - - return HttpRequest( - method = HttpMethod.valueOf(request.method), - protocol = HttpProtocol.valueOf(uri.scheme.uppercase()), - host = uri.host, - port = uri.port, - path = request.path, - queryParameters = QueryParameters(qp), - headers = Headers(h), - body = request.inputStream.readAllBytes() ?: ByteArray(0), -// parts = pa, -// formParameters = fp, - contentType = request.contentType.map { parseContentType(it) }.orElse(null), -// accept = ac, - contentLength = request.contentLength, -// authorization = au, - ) - } - - private fun writeResponse(response: HttpResponse, context: HttpContext) { - val handlerResponse = context.response - - handlerResponse.contentType?.text?.let(response::setContentType) - handlerResponse.headers.forEach { (k, v) -> response.headers[k] = v.strings() } - response.setStatusCode(handlerResponse.status.code) - response.writer.write(handlerResponse.bodyString()) - } -} diff --git a/serverless/serverless_http_google/src/test/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapterTest.kt b/serverless/serverless_http_google/src/test/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapterTest.kt deleted file mode 100644 index 8730e22057..0000000000 --- a/serverless/serverless_http_google/src/test/kotlin/com/hexagonkt/serverless/http/google/GoogleServerlessHttpAdapterTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.hexagonkt.serverless.http.google - -import com.google.cloud.functions.HttpFunction -import com.google.cloud.functions.HttpRequest -import com.google.cloud.functions.HttpResponse -import com.google.cloud.functions.invoker.runner.Invoker -import com.hexagonkt.core.freePort -import com.hexagonkt.core.urlOf -import com.hexagonkt.http.client.HttpClient -import com.hexagonkt.http.client.HttpClientSettings -import com.hexagonkt.http.client.java.JavaClientAdapter -import kotlin.reflect.KClass -import kotlin.test.Test -import kotlin.test.assertEquals - -internal class GoogleServerlessHttpAdapterTest { - - class TestServerlessHttpAdapter: HttpFunction { - override fun service(request: HttpRequest, response: HttpResponse) { - response.writer.write("Hello World!") - } - } - - @Test fun `Google functions work ok`() { - val port = freePort() - val baseUrl = urlOf("http://localhost:${port}") - val client = HttpClient(JavaClientAdapter(), HttpClientSettings(baseUrl)) - - invoker(port, TestServerlessHttpAdapter::class) - client.start() - assertEquals("Hello World!", client.get().bodyString()) - } - - private fun invoker(port: Int, function: KClass<*>): Invoker { - val target = function.qualifiedName - val classLoader = ClassLoader.getSystemClassLoader() - return Invoker(port, target, null, classLoader).apply { startTestServer() } - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts index f7ddabb55a..49c69b954d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,7 +11,6 @@ include( includeNestedModules( "http", "serialization", - "serverless", "templates" ) diff --git a/site/build.gradle.kts b/site/build.gradle.kts index 92728427e6..3a12e5c90e 100644 --- a/site/build.gradle.kts +++ b/site/build.gradle.kts @@ -18,7 +18,6 @@ tasks.register("jacocoRootReport") { .filterNot { it.absolutePath.contains("http_test") } .filterNot { it.absolutePath.contains("serialization_test") } .filterNot { it.absolutePath.contains("templates_test") } - .filterNot { it.absolutePath.contains("serverless_http_google") } .toList() // TODO Include the filtered modules when they are ready