public class PageLoaderImpl extends Object implements PageLoader, ComponentAssemblerSource
ComponentAssembler
and
EmbeddedComponentAssembler
to perform more static analysis, but
that may no longer be necessary, given the switch to shared (non-pooled) pages in 5.2.
Loading a page involves a recursive process of creating
ComponentAssembler
s: for the root component, then down the tree for
each embedded component. A ComponentAssembler is largely a collection of
PageAssemblyAction
s. Once created, a ComponentAssembler can quickly
assemble any number of component instances. All of the expensive logic, such as fitting template tokens together and
matching parameters to bindings, is done as part of the one-time construction of the ComponentAssembler. The end
result removes a huge amount of computational redundancy that was present in Tapestry 5.0, but to understand this,
you need to split your mind into two phases: construction (of the ComponentAssemblers) and assembly.
And truly, This is the Tapestry Heart, This is the Tapestry Soul...Constructor and Description |
---|
PageLoaderImpl(ComponentInstantiatorSource instantiatorSource,
ComponentTemplateSource templateSource,
PageElementFactory elementFactory,
ComponentPageElementResourcesSource resourcesSource,
ComponentClassResolver componentClassResolver,
PersistentFieldManager persistentFieldManager,
StringInterner interner,
OperationTracker tracker,
PerthreadManager perThreadManager,
org.slf4j.Logger logger,
MetaDataLocator metaDataLocator,
RequestGlobals requestGlobals) |
Modifier and Type | Method and Description |
---|---|
void |
clearCache() |
org.apache.tapestry5.internal.pageload.ComponentAssembler |
getAssembler(String className,
ComponentResourceSelector selector)
Gets (and possibly creates) a component assembler for the indicated class name and selector.
|
Page |
loadPage(String logicalPageName,
ComponentResourceSelector selector)
Loads the page for the indicated selector.
|
void |
setupInvalidation(InvalidationEventHub classesHub,
InvalidationEventHub templatesHub,
InvalidationEventHub messagesHub) |
public PageLoaderImpl(ComponentInstantiatorSource instantiatorSource, ComponentTemplateSource templateSource, PageElementFactory elementFactory, ComponentPageElementResourcesSource resourcesSource, ComponentClassResolver componentClassResolver, PersistentFieldManager persistentFieldManager, StringInterner interner, OperationTracker tracker, PerthreadManager perThreadManager, org.slf4j.Logger logger, MetaDataLocator metaDataLocator, RequestGlobals requestGlobals)
@PostInjection public void setupInvalidation(@ComponentClasses InvalidationEventHub classesHub, @ComponentTemplates InvalidationEventHub templatesHub, @ComponentMessages InvalidationEventHub messagesHub)
public void clearCache()
public Page loadPage(String logicalPageName, ComponentResourceSelector selector)
PageLoader
loadPage
in interface PageLoader
logicalPageName
- the canonicalized logical name of the page, which will be made available via
Page.getName()
and ComponentResourcesCommon.getPageName()
(for any component within
the page).selector
- Encapsulates the locale and other information used to select the component's
template and message catalog resources.public org.apache.tapestry5.internal.pageload.ComponentAssembler getAssembler(String className, ComponentResourceSelector selector)
ComponentAssemblerSource
getAssembler
in interface ComponentAssemblerSource
5.6.3 - Copyright © 2003-2021 The Apache Software Foundation.