add Hibernate to kontor-javalin

This commit is contained in:
2025-12-22 00:22:42 +01:00
parent 66cbd4b2d1
commit ae66fe3c61
8 changed files with 193 additions and 47 deletions
@@ -0,0 +1,26 @@
package de.thpeetz.kontor;
import io.javalin.Javalin;
import static io.javalin.apibuilder.ApiBuilder.get;
import static io.javalin.apibuilder.ApiBuilder.path;
import java.util.HashMap;
import de.thpeetz.kontor.web.PersonHandler;
public class JavalinApp {
public static Javalin create() {
return Javalin.create((var config) -> config.router.apiBuilder(() -> {
path("/health", () -> get(ctx -> {
HashMap<String, String> status = new HashMap<>();
status.put("status", "ok");
ctx.json(status);
}));
path("/persons", () -> {
get(PersonHandler.listAll);
});
}));
}
}
@@ -0,0 +1,15 @@
package de.thpeetz.kontor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static Logger logger = LoggerFactory.getLogger(Main.class);
private static short port = 8400;
public static void main(String[] args) {
JavalinApp.create().start(port);
logger.info("API's alive for real :-)))");
}
}
@@ -1,37 +0,0 @@
package de.thpeetz.kontor.api;
import de.thpeetz.kontor.services.inmemory.InMemoryPersonReader;
import io.javalin.Javalin;
import java.util.HashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
private static Logger logger = LoggerFactory.getLogger(Main.class);
private static short port = 8400;
public static void main(String[] args) {
var personReader = new InMemoryPersonReader();
var objMapper = new ObjectMapper();
var result = objMapper.valueToTree(personReader.getAll());
logger.info("API: found {} people.", personReader.getAll().size());
var app = Javalin.create().start(port);
app.get("/ping", ctx -> ctx.result("pong"));
app.get("/health", ctx -> {
HashMap<String, String> status = new HashMap<>();
status.put("status", "ok");
ctx.json(status);
});
app.get("/persons", ctx -> {
logger.info("persons called");
ctx.json(result);
});
logger.info("API's alive for real :-)))");
}
}
@@ -0,0 +1,16 @@
package de.thpeetz.kontor.web;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.thpeetz.kontor.services.inmemory.InMemoryPersonReader;
import io.javalin.http.Handler;
public class PersonHandler {
public static Handler listAll = (context) -> {
var personReader = new InMemoryPersonReader();
var objMapper = new ObjectMapper();
var result = objMapper.valueToTree(personReader.getAll());
context.json(result);
};
}
@@ -0,0 +1,24 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
</root>
<logger name="org.hibernate.SQL" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<!-- <logger name="org.hibernate.orm.jdbc.bind" level="trace" additivity="false">-->
<!-- <appender-ref ref="STDOUT" />-->
<!-- </logger>-->
<!-- <logger name="org.hibernate.orm.jdbc.extract" level="trace" additivity="false">-->
<!-- <appender-ref ref="STDOUT" />-->
<!-- </logger>-->
</configuration>