Merge branch 'dev' into feature/QQQ-38-app-home-widgets

This commit is contained in:
2022-08-25 10:14:26 -05:00
41 changed files with 1273 additions and 410 deletions

View File

@ -22,7 +22,6 @@
package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.frontend.picocli.QPicoCliImplementation;
@ -37,7 +36,8 @@ public class SampleCli
*******************************************************************************/
public static void main(String[] args)
{
new SampleCli().run(args);
int exitCode = new SampleCli().run(args);
System.exit(exitCode);
}
@ -45,31 +45,20 @@ public class SampleCli
/*******************************************************************************
**
*******************************************************************************/
private void run(String[] args)
int run(String[] args)
{
try
{
int exitCode = runForExitCode(args);
System.exit(exitCode);
QInstance qInstance = SampleMetaDataProvider.defineInstance();
QPicoCliImplementation qPicoCliImplementation = new QPicoCliImplementation(qInstance);
return (qPicoCliImplementation.runCli("my-sample-cli", args));
}
catch(Exception e)
{
e.printStackTrace();
System.exit(-1);
return (-1);
}
}
/*******************************************************************************
**
*******************************************************************************/
int runForExitCode(String[] args) throws QException
{
QInstance qInstance = SampleMetaDataProvider.defineInstance();
QPicoCliImplementation qPicoCliImplementation = new QPicoCliImplementation(qInstance);
int exitCode = qPicoCliImplementation.runCli("my-sample-cli", args);
return exitCode;
}
}

View File

@ -22,7 +22,6 @@
package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.instances.QInstanceValidator;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.javalin.QJavalinImplementation;
import io.javalin.Javalin;
@ -71,6 +70,24 @@ public class SampleJavalinServer
config.enableCorsForAllOrigins();
}).start(PORT);
javalinService.routes(qJavalinImplementation.getRoutes());
/////////////////////////////////////////////////////////////////
// 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"));
}

View File

@ -25,6 +25,7 @@ package com.kingsrook.sampleapp;
import com.kingsrook.qqq.backend.core.exceptions.QException;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
/*******************************************************************************
@ -37,10 +38,21 @@ class SampleCliTest
**
*******************************************************************************/
@Test
void test() throws QException
void testExitSuccess() throws QException
{
int exitCode = new SampleCli().runForExitCode(new String[] { "--meta-data" });
int exitCode = new SampleCli().run(new String[] { "--meta-data" });
assertEquals(0, exitCode);
}
/*******************************************************************************
**
*******************************************************************************/
@Test
void testNotExitSuccess() throws QException
{
int exitCode = new SampleCli().run(new String[] { "asdfasdf" });
assertNotEquals(0, exitCode);
}
}

View File

@ -43,7 +43,6 @@ import com.kingsrook.qqq.backend.module.filesystem.local.actions.FilesystemQuery
import com.kingsrook.qqq.backend.module.filesystem.local.model.metadata.FilesystemTableBackendDetails;
import com.kingsrook.qqq.backend.module.rdbms.jdbc.ConnectionManager;
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
import junit.framework.Assert;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Assertions;
@ -84,7 +83,7 @@ class SampleMetaDataProviderTest
try(Connection connection = connectionManager.getConnection(SampleMetaDataProvider.defineRdbmsBackend()))
{
InputStream primeTestDatabaseSqlStream = SampleMetaDataProviderTest.class.getResourceAsStream("/" + sqlFileName);
Assert.assertNotNull(primeTestDatabaseSqlStream);
assertNotNull(primeTestDatabaseSqlStream);
List<String> lines = (List<String>) IOUtils.readLines(primeTestDatabaseSqlStream);
lines = lines.stream().filter(line -> !line.startsWith("-- ")).toList();
String joinedSQL = String.join("\n", lines);