From 6b49abb7491382157012ca02eacbfd6dc50f0f11 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 23 Jan 2025 10:11:47 -0600 Subject: [PATCH] Checkpoint - serving static site --- .../javalin/QApplicationJavalinServer.java | 18 +++++++++++++++++- .../sampleapp/SampleJavalinServer.java | 6 +++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/QApplicationJavalinServer.java b/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/QApplicationJavalinServer.java index ec486239..78bd118a 100644 --- a/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/QApplicationJavalinServer.java +++ b/qqq-middleware-javalin/src/main/java/com/kingsrook/qqq/middleware/javalin/QApplicationJavalinServer.java @@ -22,6 +22,7 @@ package com.kingsrook.qqq.middleware.javalin; +import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import com.kingsrook.qqq.backend.core.exceptions.QException; @@ -111,7 +112,7 @@ public class QApplicationJavalinServer //////////////////////////////////////////////////////////////////////////////////////// try(Resource resource = Resource.newClassPathResource("/material-dashboard-overlay")) { - if(resource !=null) + if(resource != null) { config.staticFiles.add("/material-dashboard-overlay"); } @@ -460,6 +461,21 @@ public class QApplicationJavalinServer + /******************************************************************************* + ** Fluent setter to add a single additionalRouteProvider + *******************************************************************************/ + public QApplicationJavalinServer withAdditionalRouteProvider(QJavalinRouteProviderInterface additionalRouteProvider) + { + if(this.additionalRouteProviders == null) + { + this.additionalRouteProviders = new ArrayList<>(); + } + this.additionalRouteProviders.add(additionalRouteProvider); + return (this); + } + + + /******************************************************************************* ** Getter for MILLIS_BETWEEN_HOT_SWAPS *******************************************************************************/ diff --git a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java index 4ab4f375..da244c99 100644 --- a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java +++ b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java @@ -22,8 +22,10 @@ package com.kingsrook.sampleapp; +import java.util.List; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.middleware.javalin.QApplicationJavalinServer; +import com.kingsrook.qqq.middleware.javalin.routeproviders.SimpleFileSystemDirectoryRouter; import com.kingsrook.sampleapp.metadata.SampleMetaDataProvider; @@ -53,7 +55,9 @@ public class SampleJavalinServer { try { - new QApplicationJavalinServer(new SampleMetaDataProvider()).start(); + QApplicationJavalinServer javalinServer = new QApplicationJavalinServer(new SampleMetaDataProvider()); + javalinServer.withAdditionalRouteProvider(new SimpleFileSystemDirectoryRouter("/static-site", "/Users/dkelkhoff/tmp/static-site")); + javalinServer.start(); } catch(Exception e) {