Class QApplicationJavalinServer
java.lang.Object
com.kingsrook.qqq.middleware.javalin.QApplicationJavalinServer
Second-generation qqq javalin server.
An evolution over the original QJavalinImplementation, which both managed
the javalin instance itself, but also provided all of the endpoint handlers...
This class instead just configures invalid input: '&' starts the server.
Makes several setters available, to let application-developer choose what
standard qqq endpoints are served (e.g., frontend-material-dashboard, the
legacy-unversioned middleware, newer versioned-middleware, and additional qqq
modules or application-defined services (both provided as instances of
QJavalinRouteProviderInterface).
System property `qqq.javalin.hotSwapInstance` (defaults to false), causes the
QInstance to be re-loaded every X millis, to avoid some server restarts while
doing dev.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGetter for additionalRouteProvidersGetter for frontendMaterialDashboardHostedPathGetter for hotSwapCustomizerConsumer<io.javalin.Javalin> Getter for javalinConfigurationCustomizerGetter for javalinMetaDataGetter for middlewareVersionListlongGetter for MILLIS_BETWEEN_HOT_SWAPSgetPort()Getter for portbooleanGetter for serveFrontendMaterialDashboardbooleanGetter for serveLegacyUnversionedMiddlewareAPIvoidIf there's a qInstanceHotSwapSupplier, and its been a little while, replace the qInstance with a new one from the supplier.voidsetAdditionalRouteProviders(List<QJavalinRouteProviderInterface> additionalRouteProviders) Setter for additionalRouteProvidersvoidsetFrontendMaterialDashboardHostedPath(String frontendMaterialDashboardHostedPath) Setter for frontendMaterialDashboardHostedPathvoidsetHotSwapCustomizer(Consumer<QInstance> hotSwapCustomizer) Setter for hotSwapCustomizervoidsetJavalinConfigurationCustomizer(Consumer<io.javalin.Javalin> javalinConfigurationCustomizer) Setter for javalinConfigurationCustomizervoidsetJavalinMetaData(QJavalinMetaData javalinMetaData) Setter for javalinMetaDatavoidsetMiddlewareVersionList(List<AbstractMiddlewareVersion> middlewareVersionList) Setter for middlewareVersionListvoidsetMillisBetweenHotSwaps(long millisBetweenHotSwaps) voidSetter for portvoidsetServeFrontendMaterialDashboard(boolean serveFrontendMaterialDashboard) Setter for serveFrontendMaterialDashboardvoidsetServeLegacyUnversionedMiddlewareAPI(boolean serveLegacyUnversionedMiddlewareAPI) Setter for serveLegacyUnversionedMiddlewareAPIvoidstart()voidstop()withAdditionalRouteProvider(QJavalinRouteProviderInterface additionalRouteProvider) Deprecated.withAdditionalRouteProviders(List<QJavalinRouteProviderInterface> additionalRouteProviders) Fluent setter for additionalRouteProviderswithFrontendMaterialDashboardHostedPath(String frontendMaterialDashboardHostedPath) Fluent setter for frontendMaterialDashboardHostedPathwithHotSwapCustomizer(Consumer<QInstance> hotSwapCustomizer) Fluent setter for hotSwapCustomizerwithIsolatedSpaRouteProvider(String spaPath, String staticFilesPath) Fluent setter to add an IsolatedSpaRouteProvider.withIsolatedSpaRouteProvider(String spaPath, String staticFilesPath, String spaIndexFile) Fluent setter to add an IsolatedSpaRouteProvider with full configuration.withJavalinConfigurationCustomizer(Consumer<io.javalin.Javalin> javalinConfigurationCustomizer) Fluent setter for javalinConfigurationCustomizerwithJavalinMetaData(QJavalinMetaData javalinMetaData) Fluent setter for javalinMetaDatawithMiddlewareVersionList(List<AbstractMiddlewareVersion> middlewareVersionList) Fluent setter for middlewareVersionListwithMillisBetweenHotSwaps(long millisBetweenHotSwaps) Fluent setter for MILLIS_BETWEEN_HOT_SWAPSFluent setter for portwithServeFrontendMaterialDashboard(boolean serveFrontendMaterialDashboard) Fluent setter for serveFrontendMaterialDashboardwithServeLegacyUnversionedMiddlewareAPI(boolean serveLegacyUnversionedMiddlewareAPI) Fluent setter for serveLegacyUnversionedMiddlewareAPI
-
Constructor Details
-
QApplicationJavalinServer
Constructor
-
-
Method Details
-
start
- Throws:
QException
-
stop
public void stop() -
hotSwapQInstance
public void hotSwapQInstance()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. -
getPort
Getter for port -
setPort
Setter for port -
withPort
Fluent setter for port -
getServeFrontendMaterialDashboard
public boolean getServeFrontendMaterialDashboard()Getter for serveFrontendMaterialDashboard -
setServeFrontendMaterialDashboard
public void setServeFrontendMaterialDashboard(boolean serveFrontendMaterialDashboard) Setter for serveFrontendMaterialDashboard -
withServeFrontendMaterialDashboard
public QApplicationJavalinServer withServeFrontendMaterialDashboard(boolean serveFrontendMaterialDashboard) Fluent setter for serveFrontendMaterialDashboard -
getFrontendMaterialDashboardHostedPath
Getter for frontendMaterialDashboardHostedPath -
setFrontendMaterialDashboardHostedPath
Setter for frontendMaterialDashboardHostedPath -
withFrontendMaterialDashboardHostedPath
public QApplicationJavalinServer withFrontendMaterialDashboardHostedPath(String frontendMaterialDashboardHostedPath) Fluent setter for frontendMaterialDashboardHostedPath -
getServeLegacyUnversionedMiddlewareAPI
public boolean getServeLegacyUnversionedMiddlewareAPI()Getter for serveLegacyUnversionedMiddlewareAPI -
setServeLegacyUnversionedMiddlewareAPI
public void setServeLegacyUnversionedMiddlewareAPI(boolean serveLegacyUnversionedMiddlewareAPI) Setter for serveLegacyUnversionedMiddlewareAPI -
withServeLegacyUnversionedMiddlewareAPI
public QApplicationJavalinServer withServeLegacyUnversionedMiddlewareAPI(boolean serveLegacyUnversionedMiddlewareAPI) Fluent setter for serveLegacyUnversionedMiddlewareAPI -
getMiddlewareVersionList
Getter for middlewareVersionList -
setMiddlewareVersionList
Setter for middlewareVersionList -
withMiddlewareVersionList
public QApplicationJavalinServer withMiddlewareVersionList(List<AbstractMiddlewareVersion> middlewareVersionList) Fluent setter for middlewareVersionList -
getAdditionalRouteProviders
Getter for additionalRouteProviders -
setAdditionalRouteProviders
public void setAdditionalRouteProviders(List<QJavalinRouteProviderInterface> additionalRouteProviders) Setter for additionalRouteProviders -
withAdditionalRouteProviders
public QApplicationJavalinServer withAdditionalRouteProviders(List<QJavalinRouteProviderInterface> additionalRouteProviders) Fluent setter for additionalRouteProviders -
withAdditionalRouteProvider
@Deprecated public QApplicationJavalinServer withAdditionalRouteProvider(QJavalinRouteProviderInterface additionalRouteProvider) Deprecated.As of QQQ 0.x, use metadata producers withQJavalinMetaData.withAdditionalRouteProviderReference(QCodeReference)to register route providers declaratively. This method remains for backward compatibility but will be removed in a future release. Migration example:// OLD (programmatic): .withAdditionalRouteProvider(new JavalinHealthRouteProvider()) // NEW (metadata-driven): // Create a MetaDataProducer that returns QJavalinMetaData: public class HealthMetaDataProducer extends MetaDataProducer<QJavalinMetaData> { public QJavalinMetaData produce(QInstance qInstance) { return QJavalinMetaData.ofOrWithNew(qInstance) .withAdditionalRouteProviderReference( new QCodeReference(JavalinHealthRouteProvider.class) ); } }Fluent setter to add a single additionalRouteProvider -
withIsolatedSpaRouteProvider
public QApplicationJavalinServer withIsolatedSpaRouteProvider(String spaPath, String staticFilesPath) Fluent setter to add an IsolatedSpaRouteProvider. Creates a basic SPA route provider for serving a single-page application with deep linking support at the specified path.- Parameters:
spaPath- The path where the SPA will be hosted (e.g., "/admin", "/")staticFilesPath- The classpath location of static files (e.g., "admin-spa/dist/")- Returns:
- this server instance for method chaining
-
withIsolatedSpaRouteProvider
public QApplicationJavalinServer withIsolatedSpaRouteProvider(String spaPath, String staticFilesPath, String spaIndexFile) Fluent setter to add an IsolatedSpaRouteProvider with full configuration. Creates an SPA route provider with an explicit index file path for serving a single-page application with deep linking support.- Parameters:
spaPath- The path where the SPA will be hosted (e.g., "/admin", "/")staticFilesPath- The classpath location of static files (e.g., "admin-spa/dist/")spaIndexFile- The classpath location of the index.html file (e.g., "admin-spa/dist/index.html")- Returns:
- this server instance for method chaining
-
getMillisBetweenHotSwaps
public long getMillisBetweenHotSwaps()Getter for MILLIS_BETWEEN_HOT_SWAPS -
setMillisBetweenHotSwaps
public void setMillisBetweenHotSwaps(long millisBetweenHotSwaps) -
withMillisBetweenHotSwaps
Fluent setter for MILLIS_BETWEEN_HOT_SWAPS -
getHotSwapCustomizer
-
setHotSwapCustomizer
-
withHotSwapCustomizer
Fluent setter for hotSwapCustomizer -
getJavalinConfigurationCustomizer
Getter for javalinConfigurationCustomizer -
setJavalinConfigurationCustomizer
public void setJavalinConfigurationCustomizer(Consumer<io.javalin.Javalin> javalinConfigurationCustomizer) Setter for javalinConfigurationCustomizer -
withJavalinConfigurationCustomizer
public QApplicationJavalinServer withJavalinConfigurationCustomizer(Consumer<io.javalin.Javalin> javalinConfigurationCustomizer) Fluent setter for javalinConfigurationCustomizer -
getJavalinMetaData
Getter for javalinMetaData -
setJavalinMetaData
Setter for javalinMetaData -
withJavalinMetaData
Fluent setter for javalinMetaData
-
QJavalinMetaData.withAdditionalRouteProviderReference(QCodeReference)to register route providers declaratively.