Update to use QApplicationJavalinServer instead of QJavalinImplementation

This commit is contained in:
2025-01-06 08:40:30 -06:00
parent 37aaea3452
commit 8601347d97
2 changed files with 5 additions and 53 deletions

View File

@ -23,10 +23,8 @@ package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.logging.QLogger;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.javalin.QJavalinImplementation;
import com.kingsrook.qqq.middleware.javalin.QApplicationJavalinServer;
import com.kingsrook.sampleapp.metadata.SampleMetaDataProvider;
import io.javalin.Javalin;
/*******************************************************************************
@ -36,12 +34,6 @@ public class SampleJavalinServer
{
private static final QLogger LOG = QLogger.getLogger(SampleJavalinServer.class);
private static final int PORT = 8000;
private QInstance qInstance;
private Javalin javalinService;
/*******************************************************************************
@ -49,7 +41,7 @@ public class SampleJavalinServer
*******************************************************************************/
public static void main(String[] args)
{
new SampleJavalinServer().startJavalinServer();
new SampleJavalinServer().start();
}
@ -57,38 +49,11 @@ public class SampleJavalinServer
/*******************************************************************************
**
*******************************************************************************/
public void startJavalinServer()
public void start()
{
try
{
qInstance = SampleMetaDataProvider.defineInstance();
QJavalinImplementation qJavalinImplementation = new QJavalinImplementation(qInstance);
javalinService = Javalin.create(config ->
{
config.router.apiBuilder(qJavalinImplementation.getRoutes());
// todo - not all?
config.bundledPlugins.enableCors(cors -> cors.addRule(corsRule -> corsRule.anyHost()));
}).start(PORT);
/////////////////////////////////////////////////////////////////
// set the server to hot-swap the q instance before all routes //
/////////////////////////////////////////////////////////////////
QJavalinImplementation.setQInstanceHotSwapSupplier(() ->
{
try
{
return (SampleMetaDataProvider.defineInstance());
}
catch(Exception e)
{
LOG.warn("Error hot-swapping meta data", e);
return (null);
}
});
javalinService.before(QJavalinImplementation::hotSwapQInstance);
javalinService.after(ctx -> ctx.res().setHeader("Access-Control-Allow-Origin", "http://localhost:3000"));
new QApplicationJavalinServer(new SampleMetaDataProvider()).start();
}
catch(Exception e)
{
@ -96,16 +61,4 @@ public class SampleJavalinServer
}
}
/*******************************************************************************
**
*******************************************************************************/
public void stopJavalinServer()
{
if(javalinService != null)
{
javalinService.stop();
}
}
}

View File

@ -38,8 +38,7 @@ class SampleJavalinServerTest
void testStartStop()
{
SampleJavalinServer sampleJavalinServer = new SampleJavalinServer();
sampleJavalinServer.startJavalinServer();
sampleJavalinServer.stopJavalinServer();
sampleJavalinServer.start();
}
}