mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-17 20:50:44 +00:00
CE-1955 Update to use new AbstractQQQApplication and QApplicationJavalinServer
This commit is contained in:
@ -23,11 +23,9 @@ 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.backend.javalin.QJavalinMetaData;
|
||||
import com.kingsrook.qqq.middleware.javalin.QApplicationJavalinServer;
|
||||
import com.kingsrook.sampleapp.metadata.SampleMetaDataProvider;
|
||||
import io.javalin.Javalin;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
@ -39,9 +37,7 @@ public class SampleJavalinServer
|
||||
|
||||
private static final int PORT = 8000;
|
||||
|
||||
private QInstance qInstance;
|
||||
|
||||
private Javalin javalinService;
|
||||
private QApplicationJavalinServer qApplicationJavalinServer;
|
||||
|
||||
|
||||
|
||||
@ -59,42 +55,28 @@ public class SampleJavalinServer
|
||||
**
|
||||
*******************************************************************************/
|
||||
public void startJavalinServer()
|
||||
{
|
||||
startJavalinServer(PORT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public void startJavalinServer(int port)
|
||||
{
|
||||
try
|
||||
{
|
||||
qInstance = SampleMetaDataProvider.defineInstance();
|
||||
|
||||
SampleMetaDataProvider.primeTestDatabase("prime-test-database.sql");
|
||||
|
||||
QJavalinImplementation qJavalinImplementation = new QJavalinImplementation(qInstance);
|
||||
qJavalinImplementation.setJavalinMetaData(new QJavalinMetaData()
|
||||
qApplicationJavalinServer = new QApplicationJavalinServer(new SampleMetaDataProvider());
|
||||
qApplicationJavalinServer.setServeFrontendMaterialDashboard(true);
|
||||
qApplicationJavalinServer.setServeLegacyUnversionedMiddlewareAPI(true);
|
||||
qApplicationJavalinServer.setPort(port);
|
||||
qApplicationJavalinServer.setJavalinMetaData(new QJavalinMetaData()
|
||||
.withUploadedFileArchiveTableName(SampleMetaDataProvider.UPLOAD_FILE_ARCHIVE_TABLE_NAME));
|
||||
|
||||
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"));
|
||||
qApplicationJavalinServer.start();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
@ -109,9 +91,9 @@ public class SampleJavalinServer
|
||||
*******************************************************************************/
|
||||
public void stopJavalinServer()
|
||||
{
|
||||
if(javalinService != null)
|
||||
if(qApplicationJavalinServer != null)
|
||||
{
|
||||
javalinService.stop();
|
||||
qApplicationJavalinServer.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ import com.kingsrook.qqq.backend.core.actions.dashboard.widgets.QuickSightChartR
|
||||
import com.kingsrook.qqq.backend.core.actions.processes.BackendStep;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QValueException;
|
||||
import com.kingsrook.qqq.backend.core.instances.AbstractQQQApplication;
|
||||
import com.kingsrook.qqq.backend.core.instances.QInstanceEnricher;
|
||||
import com.kingsrook.qqq.backend.core.instances.QMetaDataVariableInterpreter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.processes.RunBackendStepInput;
|
||||
@ -94,7 +95,7 @@ import org.apache.commons.io.IOUtils;
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public class SampleMetaDataProvider
|
||||
public class SampleMetaDataProvider extends AbstractQQQApplication
|
||||
{
|
||||
public static boolean USE_MYSQL = false;
|
||||
|
||||
@ -128,6 +129,17 @@ public class SampleMetaDataProvider
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
**
|
||||
***************************************************************************/
|
||||
@Override
|
||||
public QInstance defineQInstance() throws QException
|
||||
{
|
||||
return defineInstance();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
|
Reference in New Issue
Block a user