From 3b2646c04c37d017446638e465106412b3d6bcb8 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 8 Nov 2021 22:06:34 -0600 Subject: [PATCH] Initial code commit --- .gitignore | 7 + checkstyle.xml | 242 ++++++++++++++++++ pom.xml | 136 ++++++++++ .../com/kingsrook/sampleapp/SampleCli.java | 33 +++ .../sampleapp/SampleJavalinServer.java | 45 ++++ .../sampleapp/SampleMetaDataProvider.java | 96 +++++++ 6 files changed, 559 insertions(+) create mode 100644 checkstyle.xml create mode 100644 pom.xml create mode 100644 src/main/java/com/kingsrook/sampleapp/SampleCli.java create mode 100644 src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java create mode 100644 src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java diff --git a/.gitignore b/.gitignore index a1c2a238..39736a21 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ +target/ +*.iml + + +############################################# +## Original contents from github template: ## +############################################# # Compiled class file *.class diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 00000000..fadf2cda --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..4a6308f6 --- /dev/null +++ b/pom.xml @@ -0,0 +1,136 @@ + + + 4.0.0 + + com.kingsrook.qqq + qqq-sample-deployment + 0.0-SNAPSHOT + + + + + + + UTF-8 + UTF-8 + 17 + 17 + true + true + + + + + + com.kingsrook.qqq + qqq-backend-core + 0.0-SNAPSHOT + compile + + + com.kingsrook.qqq + qqq-backend-module-rdbms + 0.0-SNAPSHOT + compile + + + com.kingsrook.qqq + qqq-middleware-javalin + 0.0-SNAPSHOT + compile + + + com.kingsrook.qqq + qqq-middleware-picocli + 0.0-SNAPSHOT + compile + + + + + org.slf4j + slf4j-simple + 1.8.0-beta4 + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.1.2 + + + org.apache.logging.log4j + log4j-api + 2.14.1 + + + org.apache.logging.log4j + log4j-core + 2.14.1 + + + org.junit.jupiter + junit-jupiter-engine + 5.8.1 + test + + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + -Xlint:unchecked + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.1.2 + + + com.puppycrawl.tools + checkstyle + 9.0 + + + + + validate + validate + + checkstyle.xml + + UTF-8 + true + false + true + warning + **/target/generated-sources/*.* + + + + check + + + + + + + + diff --git a/src/main/java/com/kingsrook/sampleapp/SampleCli.java b/src/main/java/com/kingsrook/sampleapp/SampleCli.java new file mode 100644 index 00000000..3be09a5f --- /dev/null +++ b/src/main/java/com/kingsrook/sampleapp/SampleCli.java @@ -0,0 +1,33 @@ +package com.kingsrook.sampleapp; + + +import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.frontend.picocli.QPicoCliImplementation; + + +/******************************************************************************* + ** + *******************************************************************************/ +public class SampleCli +{ + /******************************************************************************* + ** + *******************************************************************************/ + public static void main(String[] args) + { + new SampleCli().run(args); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + private void run(String[] args) + { + QInstance qInstance = SampleMetaDataProvider.defineInstance(); + QPicoCliImplementation qPicoCliImplementation = new QPicoCliImplementation(qInstance); + int exitCode = qPicoCliImplementation.runCli("my-sample-cli", args); + System.exit(exitCode); + } +} diff --git a/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java b/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java new file mode 100644 index 00000000..c48e2f14 --- /dev/null +++ b/src/main/java/com/kingsrook/sampleapp/SampleJavalinServer.java @@ -0,0 +1,45 @@ +package com.kingsrook.sampleapp; + + +import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.javalin.QJavalinImplementation; +import io.javalin.Javalin; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + + +/******************************************************************************* + ** + *******************************************************************************/ +public class SampleJavalinServer +{ + private static final Logger LOG = LogManager.getLogger(SampleJavalinServer.class); + + private static final int PORT = 8000; + + private QInstance qInstance; + + + /******************************************************************************* + ** + *******************************************************************************/ + public static void main(String[] args) + { + new SampleJavalinServer().startJavalinServer(); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public void startJavalinServer() + { + qInstance = SampleMetaDataProvider.defineInstance(); + + QJavalinImplementation qJavalinImplementation = new QJavalinImplementation(qInstance); + Javalin service = Javalin.create().start(PORT); + service.routes(qJavalinImplementation.getRoutes()); + } + +} diff --git a/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java b/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java new file mode 100644 index 00000000..9802bb47 --- /dev/null +++ b/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java @@ -0,0 +1,96 @@ +package com.kingsrook.sampleapp; + + +import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData; +import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData; +import com.kingsrook.qqq.backend.core.model.metadata.QFieldType; +import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData; + + +/******************************************************************************* + ** + *******************************************************************************/ +public class SampleMetaDataProvider +{ + private static final String BACKEND_NAME = "default"; + + + + /******************************************************************************* + ** + *******************************************************************************/ + public static QInstance defineInstance() + { + QInstance qInstance = new QInstance(); + qInstance.addBackend(SampleMetaDataProvider.defineBackend()); + qInstance.addTable(SampleMetaDataProvider.defineTableCarrier()); + qInstance.addTable(SampleMetaDataProvider.defineTablePerson()); + return (qInstance); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public static QBackendMetaData defineBackend() + { + QBackendMetaData backend = new QBackendMetaData(); + backend.setName(BACKEND_NAME); + backend.setType("rdbms"); + backend.setValue("vendor", "mysql"); + backend.setValue("hostName", "127.0.0.1"); + backend.setValue("port", "3306"); + backend.setValue("databaseName", "opspath"); + backend.setValue("username", "root"); + backend.setValue("password", "8BNWyoav8s79oi}Lqk"); + return (backend); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public static QTableMetaData defineTableCarrier() + { + QTableMetaData table = new QTableMetaData(); + table.setName("carrier"); + table.setBackendName(BACKEND_NAME); + table.setPrimaryKeyField("id"); + + table.addField(new QFieldMetaData("id", QFieldType.INTEGER)); + + table.addField(new QFieldMetaData("name", QFieldType.STRING)); + + table.addField(new QFieldMetaData("company_code", QFieldType.STRING) // todo enum + .withLabel("Company") + .withBackendName("comp_code")); + + table.addField(new QFieldMetaData("service_level", QFieldType.STRING)); // todo enum + + return (table); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public static QTableMetaData defineTablePerson() + { + return new QTableMetaData() + .withName("person") + .withLabel("Person") + .withBackendName(BACKEND_NAME) + .withPrimaryKeyField("id") + .withField(new QFieldMetaData("id", QFieldType.INTEGER)) + .withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME).withBackendName("create_date")) + .withField(new QFieldMetaData("modifyDate", QFieldType.DATE_TIME).withBackendName("modify_date")) + .withField(new QFieldMetaData("firstName", QFieldType.STRING).withBackendName("first_name")) + .withField(new QFieldMetaData("lastName", QFieldType.STRING).withBackendName("last_name")) + .withField(new QFieldMetaData("birthDate", QFieldType.DATE).withBackendName("birth_date")) + .withField(new QFieldMetaData("email", QFieldType.STRING)); + } +}