Class QJavalinImplementation

java.lang.Object
com.kingsrook.qqq.backend.javalin.QJavalinImplementation

public class QJavalinImplementation extends Object
QQQ Javalin implementation. Given a QInstance, defines all routes needed to respond to http requests and route down into the qqq backend.
  • Field Details

  • Constructor Details

  • Method Details

    • main

      public static void main(String[] args) throws QInstanceValidationException
      Throws:
      QInstanceValidationException
    • startJavalinServer

      public void startJavalinServer(int port)
    • getJavalinService

      public io.javalin.Javalin getJavalinService()
    • clearQContext

      public static void clearQContext(io.javalin.http.Context context)
    • hotSwapQInstance

      public static void hotSwapQInstance(io.javalin.http.Context context)
      If there's a qInstanceHotSwapSupplier, and its been a little while, replace the qInstance with a new one from the supplier. Meant to be used while doing development.
    • stopJavalinServer

      public void stopJavalinServer()
    • setDefaultPort

      public static void setDefaultPort(int port)
    • getRoutes

      public io.javalin.apibuilder.EndpointGroup getRoutes()
    • setupSession

      public static QSession setupSession(io.javalin.http.Context context, AbstractActionInput input) throws QModuleDispatchException, QAuthenticationException
      Throws:
      QModuleDispatchException
      QAuthenticationException
    • metaData

      public static void metaData(io.javalin.http.Context context)
    • runStreamedExportOrReport

      public static <T> void runStreamedExportOrReport(io.javalin.http.Context context, ReportFormat reportFormat, String filename, UnsafeFunction<PipedOutputStream,T,Exception> preAction, UnsafeConsumer<T,Exception> executor) throws Exception
      Throws:
      Exception
    • getReportFormat

      public static ReportFormat getReportFormat(io.javalin.http.Context context, Optional<String> optionalFilename, String format)
    • handleException

      public static void handleException(io.javalin.http.Context context, Exception e)
    • setQInstanceHotSwapSupplier

      public static void setQInstanceHotSwapSupplier(Supplier<QInstance> qInstanceHotSwapSupplier)
      Setter for qInstanceHotSwapSupplier
    • getJavalinMetaData

      public static QJavalinMetaData getJavalinMetaData()
      Getter for javalinMetaData
    • setJavalinMetaData

      public void setJavalinMetaData(QJavalinMetaData javalinMetaData)
      Setter for javalinMetaData
    • getQInstanceHotSwapSupplier

      public static Supplier<QInstance> getQInstanceHotSwapSupplier()
      Getter for qInstanceHotSwapSupplier
    • getQInstance

      public static QInstance getQInstance()
      Getter for qInstance
    • setQInstance

      public static void setQInstance(QInstance qInstance)
      Setter for qInstance
    • setMillisBetweenHotSwaps

      public static void setMillisBetweenHotSwaps(long millisBetweenHotSwaps)
    • getStartTimeMillis

      public static long getStartTimeMillis()
    • addJavalinRoutes

      public void addJavalinRoutes(io.javalin.apibuilder.EndpointGroup routes)
    • clearJavalinRoutes

      public void clearJavalinRoutes()
      if restarting this class, and you want to re-run addJavalinRoutes, but not create duplicates, well, you might want to call this method!