Class QJavalinImplementation
java.lang.Object
com.kingsrook.qqq.backend.javalin.QJavalinImplementation
QQQ Javalin implementation. Given a QInstance, defines all routes needed
to respond to http requests and route down into the qqq backend.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionQJavalinImplementation(QInstance qInstance) QJavalinImplementation(QInstance qInstance, QJavalinMetaData javalinMetaData) QJavalinImplementation(String qInstanceFilePath) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddJavalinRoutes(io.javalin.apibuilder.EndpointGroup routes) voidif restarting this class, and you want to re-run addJavalinRoutes, but not create duplicates, well, you might want to call this method!static voidclearQContext(io.javalin.http.Context context) static QJavalinMetaDataGetter for javalinMetaDataio.javalin.Javalinstatic QInstanceGetter for qInstanceGetter for qInstanceHotSwapSupplierstatic ReportFormatgetReportFormat(io.javalin.http.Context context, Optional<String> optionalFilename, String format) io.javalin.apibuilder.EndpointGroupstatic longstatic voidhandleException(io.javalin.http.Context context, Exception e) static voidhotSwapQInstance(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.static voidstatic voidmetaData(io.javalin.http.Context context) static <T> voidrunStreamedExportOrReport(io.javalin.http.Context context, ReportFormat reportFormat, String filename, UnsafeFunction<PipedOutputStream, T, Exception> preAction, UnsafeConsumer<T, Exception> executor) static voidsetDefaultPort(int port) voidsetJavalinMetaData(QJavalinMetaData javalinMetaData) Setter for javalinMetaDatastatic voidsetMillisBetweenHotSwaps(long millisBetweenHotSwaps) static voidsetQInstance(QInstance qInstance) Setter for qInstancestatic voidsetQInstanceHotSwapSupplier(Supplier<QInstance> qInstanceHotSwapSupplier) Setter for qInstanceHotSwapSupplierstatic QSessionsetupSession(io.javalin.http.Context context, AbstractActionInput input) static QSessionsetupSession(io.javalin.http.Context context, AbstractActionInput input, QAuthenticationMetaData authMetaData) Setup session using the specified authentication metadata.voidstartJavalinServer(int port) void
-
Field Details
-
SESSION_COOKIE_AGE
public static final int SESSION_COOKIE_AGE- See Also:
-
SESSION_ID_COOKIE_NAME
- See Also:
-
SESSION_UUID_COOKIE_NAME
- See Also:
-
API_KEY_NAME
- See Also:
-
SLOW_LOG_THRESHOLD_MS
public static final long SLOW_LOG_THRESHOLD_MS- See Also:
-
-
Constructor Details
-
QJavalinImplementation
- Throws:
QInstanceValidationException
-
QJavalinImplementation
public QJavalinImplementation(QInstance qInstance, QJavalinMetaData javalinMetaData) throws QInstanceValidationException - Throws:
QInstanceValidationException
-
QJavalinImplementation
- Throws:
IOException
-
-
Method Details
-
main
- Throws:
QInstanceValidationException
-
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. -
setDefaultPort
public static void setDefaultPort(int port) -
setupSession
public static QSession setupSession(io.javalin.http.Context context, AbstractActionInput input) throws QModuleDispatchException, QAuthenticationException -
setupSession
public static QSession setupSession(io.javalin.http.Context context, AbstractActionInput input, QAuthenticationMetaData authMetaData) throws QModuleDispatchException, QAuthenticationException Setup session using the specified authentication metadata.- Parameters:
context- The Javalin contextinput- The action input (may be null)authMetaData- The authentication metadata to use- Returns:
- The created session
- Throws:
QModuleDispatchException- If module dispatch failsQAuthenticationException- If authentication fails
-
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, throws ExceptionException> preAction, UnsafeConsumer<T, Exception> executor) - Throws:
Exception
-
getReportFormat
public static ReportFormat getReportFormat(io.javalin.http.Context context, Optional<String> optionalFilename, String format) -
handleException
-
getJavalinMetaData
Getter for javalinMetaData -
setJavalinMetaData
Setter for javalinMetaData -
getQInstanceHotSwapSupplier
-
setQInstanceHotSwapSupplier
-
getQInstance
Getter for qInstance -
setQInstance
Setter for qInstance -
setMillisBetweenHotSwaps
public static void setMillisBetweenHotSwaps(long millisBetweenHotSwaps) -
getStartTimeMillis
public static long getStartTimeMillis() -
startJavalinServer
public void startJavalinServer(int port) -
getJavalinService
public io.javalin.Javalin getJavalinService() -
stopJavalinServer
public void stopJavalinServer() -
getRoutes
public io.javalin.apibuilder.EndpointGroup getRoutes() -
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!
-