libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 08b9a9d9103f6107f8c53cc4c91abfdae5015056
parent 3c513525298b7269890c43dcf30a7e7d88ce4c26
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Thu, 19 Sep 2019 02:05:53 +0200

Complete initial setup (#5888).

Diffstat:
Mbuild.gradle | 2+-
Asrc/main/java/tech/libeufin/GetLogger.java | 21+++++++++++++++++++++
Msrc/main/kotlin/Main.kt | 18++++++++----------
3 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/build.gradle b/build.gradle @@ -15,7 +15,7 @@ repositories { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" compile "io.ktor:ktor-server-netty:1.2.4" - compile "org.slf4j:slf4j-simple:1.7.28" + compile "ch.qos.logback:logback-classic:1.2.3" testCompile group: 'junit', name: 'junit', version: '4.12' } diff --git a/src/main/java/tech/libeufin/GetLogger.java b/src/main/java/tech/libeufin/GetLogger.java @@ -0,0 +1,21 @@ +package tech.libeufin; + +import ch.qos.logback.classic.Level; +import org.slf4j.LoggerFactory; +import ch.qos.logback.core.FileAppender; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; + +public class GetLogger { + public static Logger getLogger() { + FileAppender fa = new FileAppender<ILoggingEvent>(); + LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); + fa.setContext(lc); + fa.setFile("server.log"); + Logger logger = (Logger) LoggerFactory.getLogger("libeufin-sandbox"); + logger.addAppender(fa); + logger.setLevel(Level.DEBUG); + return logger; + } +} diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt @@ -21,33 +21,31 @@ package tech.libeufin import io.ktor.application.* import io.ktor.http.* -import io.ktor.http.content.TextContent import io.ktor.request.receiveText import io.ktor.response.* import io.ktor.routing.* import io.ktor.server.engine.* import io.ktor.server.netty.* -import tech.libeufin.XMLManagement; -import java.io.ByteArrayInputStream -import java.io.InputStream -import org.w3c.dom.Document; import tech.libeufin.messages.HEVResponse -import kotlin.reflect.jvm.internal.impl.load.kotlin.JvmType fun main(args: Array<String>) { var xmlProcess = XMLManagement(); + var logger = GetLogger.getLogger() + val server = embeddedServer(Netty, port = 5000) { routing { get("/") { + logger.debug("GET: not implemented") call.respondText("Hello LibEuFin!", ContentType.Text.Plain) } post("/") { val body: String = call.receiveText() - println("Body: $body") + logger.debug("Body: $body") + val isValid = xmlProcess.validate(body) if (!isValid) { - System.out.println("Invalid request received") + logger.error("Invalid request received") call.respondText(contentType = ContentType.Application.Xml, status = HttpStatusCode.BadRequest) {"Bad request"}; return@post @@ -57,7 +55,7 @@ fun main(args: Array<String>) { if (null == bodyDocument) { /* Should never happen. */ - System.out.println("A valid document failed to parse into DOM!") + logger.error("A valid document failed to parse into DOM!") call.respondText(contentType = ContentType.Application.Xml, status = HttpStatusCode.InternalServerError) {"Internal server error"}; return@post @@ -75,7 +73,7 @@ fun main(args: Array<String>) { } /* Log to console and return "unknown type" */ - System.out.println("Unknown message, just logging it!") + // logger.info("Unknown message, just logging it!") call.respondText(contentType = ContentType.Application.Xml, status = HttpStatusCode.NotFound) {"Not found"}; return@post