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.logging.QLogger;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.middleware.javalin.QApplicationJavalinServer;
import com.kingsrook.qqq.backend.javalin.QJavalinImplementation;
import com.kingsrook.sampleapp.metadata.SampleMetaDataProvider; 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 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) 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 try
{ {
qInstance = SampleMetaDataProvider.defineInstance(); new QApplicationJavalinServer(new SampleMetaDataProvider()).start();
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"));
} }
catch(Exception e) 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() void testStartStop()
{ {
SampleJavalinServer sampleJavalinServer = new SampleJavalinServer(); SampleJavalinServer sampleJavalinServer = new SampleJavalinServer();
sampleJavalinServer.startJavalinServer(); sampleJavalinServer.start();
sampleJavalinServer.stopJavalinServer();
} }
} }