com.vaadin.flow.server.communication.
Class JavaScriptBootstrapHandler
- java.lang.Object
-
- com.vaadin.flow.server.SynchronizedRequestHandler
-
- com.vaadin.flow.server.BootstrapHandler
-
- com.vaadin.flow.server.communication.JavaScriptBootstrapHandler
-
All Implemented Interfaces:
Direct Known Subclasses:
public class JavaScriptBootstrapHandler extends BootstrapHandler
Processes a 'start' request type from the client to initialize server session and UI. It returns a JSON response with everything needed to bootstrapping flow views.
The handler is for client driven projects where `index.html` does not contain bootstrap data. Bootstraping is the responsability of the `@vaadin/flow` client that is able to ask the server side to create the vaadin session and do the boostrapping lazily.
For internal use only. May be renamed or removed in a future release.
See Also:
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JavaScriptBootstrapHandler.JavaScriptBootstrapContext
Custom BootstrapContext for
JavaScriptBootstrapHandler
.-
Nested classes/interfaces inherited from class com.vaadin.flow.server.BootstrapHandler
BootstrapHandler.BootstrapContext, BootstrapHandler.BootstrapPageBuilder, BootstrapHandler.BootstrapUriResolver, BootstrapHandler.PageBuilder
-
-
Field Summary
-
Fields inherited from class com.vaadin.flow.server.BootstrapHandler
SERVICE_WORKER_HEADER
-
-
Constructor Summary
Constructors Constructor Description JavaScriptBootstrapHandler()
Creates a new bootstrap handler with default page builder.
-
Method Summary
All Methods Modifier and Type Method Description protected boolean
canHandleRequest(VaadinRequest request)
Check whether a request may be handled by this handler.
protected BootstrapHandler.BootstrapContext
createAndInitUI(Class<? extends UI> uiClass, VaadinRequest request, VaadinResponse response, VaadinSession session)
protected BootstrapHandler.BootstrapContext
createBootstrapContext(VaadinRequest request, VaadinResponse response, UI ui, Function<VaadinRequest,String> callback)
Creates a new instance of
BootstrapHandler.BootstrapContext
for givenrequest
,response
andui
.protected elemental.json.JsonObject
getInitialJson(VaadinRequest request, VaadinResponse response, VaadinSession session)
Returns the JSON object with the application config and UIDL info that can be used in the bootstrapper to embed that info in the initial page.
protected String
getRequestUrl(VaadinRequest request)
protected static String
getServiceUrl(VaadinRequest vaadinRequest)
Gets the service URL as a URL relative to the request URI.
protected void
initializeUIWithRouter(BootstrapHandler.BootstrapContext context, UI ui)
boolean
synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
Identical to
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.-
Methods inherited from class com.vaadin.flow.server.BootstrapHandler
getInitialUidl, getPageBuilder, getPushScript, getUIClass, isFrameworkInternalRequest, isRequestForHtml, isVaadinStaticFileRequest, readResource, resolvePageTitle, setupErrorDialogs, setupPushConnectionFactory, setupPwa, showWebpackErrors, writeErrorCodeIfRequestLocationIsInvalid
-
Methods inherited from class com.vaadin.flow.server.SynchronizedRequestHandler
handleRequest
-
-
-
-
Method Detail
-
canHandleRequest
protected boolean canHandleRequest(VaadinRequest request)
Description copied from class:
SynchronizedRequestHandler
Check whether a request may be handled by this handler. This can be used as an optimization to avoid locking the session just to investigate some method property. The default implementation just returns
true
which means that all requests will be handled by callingSynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
with the session locked.Overrides:
canHandleRequest
in classBootstrapHandler
Parameters:
request
- the request to handleReturns:
true
if the request handling should continue once the session has been locked;false
if there's no need to lock the session since the request would still not be handled.
-
getRequestUrl
protected String getRequestUrl(VaadinRequest request)
-
createAndInitUI
protected BootstrapHandler.BootstrapContext createAndInitUI(Class<? extends UI> uiClass, VaadinRequest request, VaadinResponse response, VaadinSession session)
Overrides:
createAndInitUI
in classBootstrapHandler
-
initializeUIWithRouter
protected void initializeUIWithRouter(BootstrapHandler.BootstrapContext context, UI ui)
Overrides:
initializeUIWithRouter
in classBootstrapHandler
-
createBootstrapContext
protected BootstrapHandler.BootstrapContext createBootstrapContext(VaadinRequest request, VaadinResponse response, UI ui, Function<VaadinRequest,String> callback)
Description copied from class:
BootstrapHandler
Creates a new instance of
BootstrapHandler.BootstrapContext
for givenrequest
,response
andui
.Overrides:
createBootstrapContext
in classBootstrapHandler
Parameters:
request
- the request objectresponse
- the response objectui
- the UI objectReturns:
a new bootstrap context instance
-
synchronizedHandleRequest
public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
Description copied from class:
SynchronizedRequestHandler
Identical to
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except theVaadinSession
is locked before this is called and unlocked after this has completed.Overrides:
synchronizedHandleRequest
in classBootstrapHandler
Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.Returns:
true if a response has been written and no further request handlers should be called, otherwise false
Throws:
IOException
- If an IO error occurredSee Also:
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
-
getServiceUrl
protected static String getServiceUrl(VaadinRequest vaadinRequest)
Gets the service URL as a URL relative to the request URI.
Parameters:
vaadinRequest
- the requestReturns:
the relative service URL
-
getInitialJson
protected elemental.json.JsonObject getInitialJson(VaadinRequest request, VaadinResponse response, VaadinSession session)
Returns the JSON object with the application config and UIDL info that can be used in the bootstrapper to embed that info in the initial page.
Parameters:
request
- the vaadin request.response
- the response.session
- the vaadin session.Returns:
the initial application JSON.
-
-