public class BootstrapHandler extends SynchronizedRequestHandler
Modifier and Type | Class and Description |
---|---|
protected static class |
BootstrapHandler.BootstrapContext
Provides context information for the bootstrap process.
|
protected static class |
BootstrapHandler.BootstrapPageBuilder
Builds bootstrap pages.
|
static class |
BootstrapHandler.BootstrapUriResolver
The URI resolver used in the bootstrap process.
|
static interface |
BootstrapHandler.PageBuilder
Interface for objects capable of building the bootstrap page.
|
Modifier and Type | Field and Description |
---|---|
static String |
POLYFILLS_JS |
static String |
SERVICE_WORKER_HEADER |
Modifier | Constructor and Description |
---|---|
|
BootstrapHandler()
Creates an instance of the handler with default
BootstrapHandler.PageBuilder . |
protected |
BootstrapHandler(BootstrapHandler.PageBuilder pageBuilder)
Creates an instance of the handler using provided page builder.
|
Modifier and Type | Method and Description |
---|---|
static void |
addLicenseChecker(org.jsoup.nodes.Document indexDocument,
DeploymentConfiguration config)
Adds the needed overrides for the license checker to work when in
development mode.
|
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> contextPathCallback)
|
protected elemental.json.JsonObject |
getInitialUidl(UI ui)
Generates the initial UIDL message which is included in the initial
bootstrap page.
|
protected BootstrapHandler.PageBuilder |
getPageBuilder()
Returns the current page builder object.
|
protected static String |
getServiceUrl(BootstrapHandler.BootstrapContext context)
Gets the service URL as a URL relative to the request URI.
|
protected static Class<? extends UI> |
getUIClass(VaadinRequest request)
Returns the UI class mapped for servlet that handles the given request.
|
protected void |
initializeUIWithRouter(VaadinRequest request,
UI ui) |
protected static String |
readResource(String fileName) |
protected static Optional<String> |
resolvePageTitle(BootstrapHandler.BootstrapContext context)
Resolves the initial page title for the given bootstrap context and
cancels any pending JS execution for it.
|
protected void |
setupPushConnectionFactory(PushConfiguration pushConfiguration,
BootstrapHandler.BootstrapContext context) |
boolean |
synchronizedHandleRequest(VaadinSession session,
VaadinRequest request,
VaadinResponse response)
Identical to
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except the VaadinSession is locked before this is called and
unlocked after this has completed. |
protected boolean |
writeErrorCodeIfRequestLocationIsInvalid(VaadinRequest request,
VaadinResponse response)
Checks whether the request is for a valid location, and if not, writes
the error code for the response.
|
handleRequest
public static final String POLYFILLS_JS
public static final String SERVICE_WORKER_HEADER
public BootstrapHandler()
BootstrapHandler.PageBuilder
.protected BootstrapHandler(BootstrapHandler.PageBuilder pageBuilder)
pageBuilder
- Page builder to use.protected BootstrapHandler.PageBuilder getPageBuilder()
protected boolean canHandleRequest(VaadinRequest request)
SynchronizedRequestHandler
true
which means that all requests will be handled by
calling
SynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
with the session locked.canHandleRequest
in class SynchronizedRequestHandler
request
- the request to handletrue
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.public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
SynchronizedRequestHandler
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
except the VaadinSession
is locked before this is called and
unlocked after this has completed.synchronizedHandleRequest
in class SynchronizedRequestHandler
session
- The session for the requestrequest
- The request to handleresponse
- The response object to which a response can be written.IOException
- If an IO error occurredSynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
public static void addLicenseChecker(org.jsoup.nodes.Document indexDocument, DeploymentConfiguration config)
protected boolean writeErrorCodeIfRequestLocationIsInvalid(VaadinRequest request, VaadinResponse response) throws IOException
request
- the request to checkresponse
- the response to writetrue
if location was invalid and error code was written,
false
if not (location was valid)IOException
- in case writing to response failsprotected static String getServiceUrl(BootstrapHandler.BootstrapContext context)
context
- the bootstrap contextprotected static Optional<String> resolvePageTitle(BootstrapHandler.BootstrapContext context)
context
- the bootstrap contextprotected BootstrapHandler.BootstrapContext createAndInitUI(Class<? extends UI> uiClass, VaadinRequest request, VaadinResponse response, VaadinSession session)
protected void initializeUIWithRouter(VaadinRequest request, UI ui)
protected BootstrapHandler.BootstrapContext createBootstrapContext(VaadinRequest request, VaadinResponse response, UI ui, Function<VaadinRequest,String> contextPathCallback)
request
- the request objectresponse
- the response objectui
- the UI objectprotected void setupPushConnectionFactory(PushConfiguration pushConfiguration, BootstrapHandler.BootstrapContext context)
protected static Class<? extends UI> getUIClass(VaadinRequest request)
This method is protected for testing purposes.
request
- the request for the UIprotected elemental.json.JsonObject getInitialUidl(UI ui)
ui
- the UI for which the UIDL should be generatedCopyright © 2023. All rights reserved.