Package org.apache.tapestry5.modules

# Class TapestryModule

java.lang.Object
org.apache.tapestry5.modules.TapestryModule

@Marker(Core.class) @ImportModule({InternalModule.class,AssetsModule.class,PageLoadModule.class,JavaScriptModule.class,CompatibilityModule.class,DashboardModule.class,TapestryHttpModule.class,JSONModule.class}) public final class TapestryModule extends Object
The root module for Tapestry.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TapestryModule(PipelineBuilder pipelineBuilder, PropertyShadowBuilder shadowBuilder, RequestGlobals requestGlobals, ChainBuilder chainBuilder, Environment environment, StrategyBuilder strategyBuilder, PropertyAccess propertyAccess, Request request, Response response, EnvironmentalShadowBuilder environmentalBuilder, EndOfRequestEventHub endOfRequestEventHub)`
  We inject all sorts of common dependencies (including builders) into the module itself (note: even though some of these service are defined by the module itself, that's ok because services are always lazy proxies).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> configuration)`
  `static void`
  `addBuiltInOpenApiDocumentationGenerator(OrderedConfiguration<OpenApiDescriptionGenerator> configuration)`
  `static void`
  `addBuiltInOpenApiTypeDescriber(OrderedConfiguration<OpenApiTypeDescriber> configuration)`
  `static void`
  `adviseLazy(LazyAdvisor advisor, MethodAdviceReceiver receiver)`
  Advises the `ComponentMessagesSource` service so that the creation of `Messages` instances can be deferred.
  `static void`
  `bind(ServiceBinder binder)`
  `ComponentEventRequestHandler`
  `buildAjaxComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, AjaxComponentEventRequestHandler terminator)`
  Builds the action request handler for Ajax requests, based on a pipeline around `AjaxComponentEventRequestHandler` .
  `ComponentEventResultProcessor`
  `buildAjaxComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, InvalidationEventHub hub)`
  The component event result processor used for Ajax-oriented component requests.
  `ClientBehaviorSupport`
  `buildClientBehaviorSupport()`
  Builds a proxy to the current `ClientBehaviorSupport` inside this thread's `Environment`.
  `PersistentFieldStrategy`
  `buildClientPersistentFieldStrategy(LinkCreationHub linkCreationHub, ClientPersistentFieldStrategy service)`
  `static InvalidationEventHub`
  `buildComponentClassesInvalidationEventHub(InternalComponentInvalidationEventHub trueHub)`
  Exposes the public portion of the internal `InternalComponentInvalidationEventHub` service.
  `static ComponentClassResolver`
  `buildComponentClassResolver(ComponentClassResolverImpl service, InvalidationEventHub hub)`
  `ComponentClassTransformWorker2`
  `buildComponentClassTransformWorker(List<ComponentClassTransformWorker2> configuration)`
  Allows the exact steps in the component class transformation process to be defined.
  `ComponentEventLinkTransformer`
  `buildComponentEventLinkTransformer(List<ComponentEventLinkTransformer> configuration)`
  Builds `ComponentEventLinkTransformer` service as a chain of command.
  `ComponentEventRequestHandler`
  `buildComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, ComponentEventRequestHandlerImpl terminator)`
  Builds the component action request handler for traditional (non-Ajax) requests.
  `ComponentEventResultProcessor`
  `buildComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, InvalidationEventHub hub)`
  The component event result processor used for normal component requests.
  `static ComponentLibraryInfoSource`
  `buildComponentLibraryInfoSource(List<ComponentLibraryInfoSource> configuration, ChainBuilder chainBuilder)`
  `static InvalidationEventHub`
  `buildComponentMessagesInvalidationEventHub(ComponentMessagesSource messagesSource)`
  `static ComponentMessagesSource`
  `buildComponentMessagesSource(UpdateListenerHub updateListenerHub, ComponentMessagesSourceImpl service)`
  `PlasticProxyFactory`
  `buildComponentProxyFactory(ComponentInstantiatorSource source)`
  Returns a `PlasticProxyFactory` that can be used to create extra classes around component classes.
  `ComponentRequestHandler`
  `buildComponentRequestHandler(List<ComponentRequestFilter> configuration, ComponentRequestHandlerTerminator terminator, org.slf4j.Logger logger)`
  `ComponentTemplateLocator`
  `buildComponentTemplateLocator(List<ComponentTemplateLocator> configuration)`
  Builds the `ComponentTemplateLocator` as a chain of command.
  `static InvalidationEventHub`
  `buildComponentTemplatesInvalidationEventHub(ComponentTemplateSource templateSource)`
  `Context`
  `buildContext(ApplicationGlobals globals)`
  `DataTypeAnalyzer`
  `buildDataTypeAnalyzer(List<DataTypeAnalyzer> configuration)`
  Analyzes properties to determine the data types, used to provideDefaultBeanBlocks(org.apache.tapestry5.commons.Configuration) locale display and edit blocks for properties.
  `static DataTypeAnalyzer`
  `buildDefaultDataTypeAnalyzer(DefaultDataTypeAnalyzer service, InvalidationEventHub hub)`
  The default data type analyzer is the final analyzer consulted and identifies the type entirely pased on the property type, working against its own configuration (mapping property type class to data type).
  `Environment`
  `buildEnvironment(PerthreadManager perthreadManager)`
  `FormSupport`
  `buildFormSupport()`
  Builds a proxy to the current `FormSupport` inside this thread's `Environment`.
  `Heartbeat`
  `buildHeartbeat()`
  Exposes the Environmental `Heartbeat` as an injectable service.
  `InjectionProvider2`
  `buildInjectionProvider(List<InjectionProvider2> configuration)`
  A chain of command for providing values for `Inject`-ed fields in component classes.
  `static LinkCreationHub`
  `buildLinkCreationHub(LinkSource source)`
  `MarkupRenderer`
  `buildMarkupRenderer(org.slf4j.Logger logger, MarkupRendererTerminator terminator, List<MarkupRendererFilter> configuration)`
  The MarkupRenderer service is used to render a full page as markup.
  `StackTraceElementAnalyzer`
  `buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration)`
  `ObjectRenderer`
  `buildObjectRenderer(Map<Class,ObjectRenderer> configuration)`
  `static OpenApiDescriptionGenerator`
  `buildOpenApiDocumentationGenerator(List<OpenApiDescriptionGenerator> configuration, ChainBuilder chainBuilder)`
  `static OpenApiTypeDescriber`
  `buildOpenApiTypeDescriber(List<OpenApiTypeDescriber> configuration, ChainBuilder chainBuilder)`
  `PageRenderLinkTransformer`
  `buildPageRenderLinkTransformer(List<PageRenderLinkTransformer> configuration)`
  Builds `PageRenderLinkTransformer` service as a chain of command.
  `PageRenderRequestHandler`
  `buildPageRenderRequestHandler(List<PageRenderRequestFilter> configuration, org.slf4j.Logger logger, PageRenderRequestHandlerImpl terminator)`
  `PartialMarkupRenderer`
  `buildPartialMarkupRenderer(org.slf4j.Logger logger, List<PartialMarkupRendererFilter> configuration, PartialMarkupRendererTerminator terminator)`
  A wrapper around `PageRenderQueue` used for partial page renders.
  `BindingFactory`
  `buildPropBindingFactory(List<BindingFactory> configuration, PropBindingFactory service)`
  Builds the PropBindingFactory as a chain of command.
  `static TranslatorSource`
  `buildTranslatorSource(Map<Class,Translator> configuration, TranslatorAlternatesSource alternatesSource, InvalidationEventHub hub)`
  `ValueLabelProvider<?>`
  `buildValueLabelProvider(Map<Class,ValueLabelProvider> configuration)`
  `static void`
  `componentReplacer(MethodAdviceReceiver methodAdviceReceiver, ComponentOverride componentReplacer)`
  `static void`
  `contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration)`
  Contributes: AjaxFormUpdate `AjaxFormUpdateFilter`
  `void`
  `contributeApplicationInitializer(OrderedConfiguration<ApplicationInitializerFilter> configuration, TypeCoercer typeCoercer, ComponentClassResolver componentClassResolver, InvalidationEventHub invalidationEventHub, RestoreDirtySessionObjects restoreDirtySessionObjects)`
  Adds a listener to the `ComponentInstantiatorSource` that clears the `PropertyAccess` and `TypeCoercer` caches on a class loader invalidation.
  `void`
  `contributeApplicationStatePersistenceStrategySource(MappedConfiguration<String,ApplicationStatePersistenceStrategy> configuration, ApplicationStatePersistenceStrategy sessionStategy)`
  Contributes the default "session" strategy.
  `static void`
  `contributeBindingSource(MappedConfiguration<String,BindingFactory> configuration, BindingFactory propBindingFactory, BindingFactory messageBindingFactory, BindingFactory validateBindingFactory, BindingFactory translateBindingFactory, BindingFactory assetBindingFactory, BindingFactory nullFieldStrategyBindingFactory, BindingFactory contextBindingFactory, BindingFactory symbolBindingFactory)`
  Contributes the factory for several built-in binding prefixes ("asset", "block", "component", "literal", prop", "nullfieldstrategy", "message", "validate", "translate", "var").
  `void`
  `contributeComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration, RequestSecurityManager requestSecurityManager, ComponentEventRequestHandler ajaxHandler)`
  Contributes filters: Ajax Determines if the request is Ajax oriented, and redirects to an alternative handler if so Secure Sends a redirect if an non-secure request accesses a secure page
  `void`
  `contributeComponentEventResultProcessor(ComponentEventResultProcessor componentInstanceProcessor, MappedConfiguration<Class,ComponentEventResultProcessor> configuration)`
  Contributes handlers for the following types: Object Failure case, added to provide a more useful exception message `Link` Sends a redirect to the link (which is typically a page render link) String Sends a page render redirect Class Interpreted as the class name of a page, sends a page render render redirect (this is more refactoring safe than the page name) `Component` A page's root component (though a non-root component will work, but will generate a warning).
  `void`
  `contributeComponentRequestHandler(OrderedConfiguration<ComponentRequestFilter> configuration, boolean productionMode)`
  Contributes: OperationTracker Tracks general information about the request using `OperationTracker` UnknownComponentFilter (production mode only) `ProductionModeUnknownComponentFilter` - Detects request with unknown component and aborts handling to ultimately deliver a 404 response InitializeActivePageName `InitializeActivePageName` DeferredResponseRenderer `DeferredResponseRenderer`
  `static void`
  `contributeComponentTemplateLocator(OrderedConfiguration<ComponentTemplateLocator> configuration, AssetFactory contextAssetFactory, String applicationFolder, ComponentClassResolver componentClassResolver)`
  Contributes two template locators: Default Searches for the template on the classpath (`DefaultTemplateLocator` Page Searches for page templates in the context (`PageTemplateLocator`)
  `static void`
  `contributeDataTypeAnalyzer(OrderedConfiguration<DataTypeAnalyzer> configuration, DataTypeAnalyzer defaultDataTypeAnalyzer)`
  Annotation Checks for `DataType` annotation Default (ordered last) `DefaultDataTypeAnalyzer` service ( `contributeDefaultDataTypeAnalyzer(org.apache.tapestry5.commons.MappedConfiguration)` )
  `static void`
  `contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class,String> configuration)`
  Maps property types to data type names: String --> text Number --> number Enum --> enum Boolean --> boolean Date --> date
  `static void`
  `contributeFactoryDefaults(MappedConfiguration<String,Object> configuration)`
  Contributes factory defaults that may be overridden.
  `static void`
  `contributeHiddenFieldLocationRules(MappedConfiguration<String,RelativeElementPosition> configuration)`
  Determines positioning of hidden fields relative to other elements (this is needed by `FormFragment` and others.
  `void`
  `contributeHttpServletRequestHandler(OrderedConfiguration<HttpServletRequestFilter> configuration, HttpServletRequestFilter ignoredPathsFilter)`
  StoreIntoGlobals Stores the request and response into `RequestGlobals` at the start of the pipeline IgnoredPaths Identifies requests that are known (via the IgnoredPathsFilter service's configuration) to be mapped to other applications GZip Handles GZIP compression of response streams (if supported by client)
  `static void`
  `contributeMappedEntityManager(Configuration<String> configuration, String appRootPackage)`
  Contributes the package "<root>.rest.entities" to the configuration, so that it will be scanned for mapped entity classes.
  `void`
  `contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter> configuration, ModuleManager moduleManager, boolean omitGeneratorMeta, String tapestryVersion, boolean productionMode, boolean includeCoreStack, boolean enablePageloadingMask, ValidationDecoratorFactory validationDecoratorFactory)`
  Adds page render filters, each of which provides an `Environmental` service.
  `static void`
  `contributeMasterDispatcher(OrderedConfiguration<Dispatcher> configuration, boolean publishOpenApiDefinition)`
  The MasterDispatcher is a chain-of-command of individual Dispatchers, each handling (like a servlet) a particular kind of incoming request.
  `static void`
  `contributeMasterObjectProvider(OrderedConfiguration<ObjectProvider> configuration, ObjectProvider assetObjectProvider, ObjectLocator locator)`
  Contributes two object providers: Asset Checks for the `Path` annotation, and injects an `Asset` Service Injects based on the `Service` annotation, if present ApplicationMessages Injects the global application messages
  `static void`
  `contributeMasterStackTraceElementAnalyzer(OrderedConfiguration<StackTraceElementAnalyzer> configuration)`
  Contributes: Application Checks for classes in the application package Proxies Checks for classes that appear to be generated proxies. SunReflect Checks for `sun.reflect` (which are omitted) TapestryAOP Omits stack frames for classes related to Tapestry AOP (such as advice, etc.) OperationTracker Omits stack frames related to `OperationTracker` Access Omits stack frames used to provide access to container class private members
  `static void`
  `contributeMetaWorker(MappedConfiguration<Class,MetaDataExtractor> configuration)`
  Contributes extractors for `Meta`, `Secure`, `ContentType` and `WhitelistAccessOnly` annotations.
  `static void`
  `contributeNullFieldStrategySource(MappedConfiguration<String,NullFieldStrategy> configuration)`
  Contributes strategies accessible via the `NullFieldStrategySource` service.
  `void`
  `contributeObjectRenderer(MappedConfiguration<Class,ObjectRenderer> configuration, ObjectRenderer locationRenderer, TypeCoercer typeCoercer)`
  Contributes a default object renderer for type Object, plus specialized renderers for `Request`, `Location`, `ComponentResources`, `EventContext`, `AvailableValues`, List, and Object[].
  `void`
  `contributePageRenderRequestHandler(OrderedConfiguration<PageRenderRequestFilter> configuration, RequestSecurityManager securityManager)`
  Contributes a single filter, "Secure", which checks for non-secure requests that access secure pages.
  `void`
  `contributePartialMarkupRenderer(OrderedConfiguration<PartialMarkupRendererFilter> configuration, ValidationDecoratorFactory validationDecoratorFactory)`
  Contributes `PartialMarkupRendererFilter`s used when rendering a partial Ajax response.
  `void`
  `contributePersistentFieldManager(MappedConfiguration<String,PersistentFieldStrategy> configuration, Request request, PersistentFieldStrategy clientStrategy)`
  Contributes several strategies: session Values are stored in the `Session` flash Values are stored in the `Session`, until the next request (for the page) client Values are encoded into URLs (or hidden form fields)
  `void`
  `contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, Context context, boolean productionMode, PageClassLoaderContextManager pageClassLoaderContextManager)`
  Continues a number of filters into the RequestHandler service: StaticFiles Checks to see if the request is for an actual file, if so, returns true to let the servlet container process the request CheckForUpdates Periodically fires events that checks to see if the file system sources for any cached data has changed (see `CheckForUpdatesFilter`).
  `static void`
  `contributeTemplateParser(MappedConfiguration<String,URL> config)`
  `static void`
  `contributeTranslatorSource(MappedConfiguration<Class,Translator> configuration, NumericTranslatorSupport support, Html5Support html5Support)`
  Contributes the basic set of translators: string byte short integer long float double BigInteger BigDecimal
  `static void`
  `contributeTypeCoercer(MappedConfiguration<CoercionTuple.Key,CoercionTuple> configuration, ObjectLocator objectLocator, ThreadLocale threadLocale, AssetSource assetSource, DynamicTemplateParser dynamicTemplateParser)`
  Adds coercions: String to `SelectModel` Map to `SelectModel` Collection to `GridDataSource` null to `GridDataSource` List to `SelectModel` `ComponentResourcesAware` (typically, a component) to `ComponentResources` `ComponentResources` to `PropertyOverrides` String to `Renderable` `Renderable` to `Block` String to `DateFormat` String to `Resource` (via `AssetSource.resourceForPath(String)`) `Renderable` to `RenderCommand` String to `Pattern` String to `DateFormat` `Resource` to `DynamicTemplate` `Asset` to `Resource` `ValueEncoder` to `ValueEncoderFactory`
  `static void`
  `contributeValidationConstraintGenerator(OrderedConfiguration<ValidationConstraintGenerator> configuration)`
  Adds built-in constraint generators: PrimtiveField -- primitive fields are always required ValidateAnnotation -- adds constraints from a `Validate` annotation
  `static void`
  `contributeValueEncoderSource(MappedConfiguration<Class,Object> configuration)`
  Contributes `ValueEncoder`s or `ValueEncoderFactory`s for types: Object String Enum
  `static FieldValidatorDefaultSource`
  `decorateFieldValidatorDefaultSource(FieldValidatorDefaultSource defaultSource, Environment environment)`
  Decorate FieldValidatorDefaultSource to setup the EnvironmentMessages object and place it in the environment.
  `ComponentEventLinkEncoder`
  `decorateLinkTransformer(LinkTransformer linkTransformer, ComponentEventLinkEncoder delegate)`
  Provides the "LinkTransformer" interceptor for the `ComponentEventLinkEncoder` service.
  `void`
  `defaultValueLabelProviders(MappedConfiguration<Class,ValueLabelProvider> configuration)`
  `static void`
  `defaultWhitelist(OrderedConfiguration<WhitelistAnalyzer> configuration)`
  Contributes a single default analyzer: LocalhostOnly Identifies requests from localhost as on client whitelist
  `static void`
  `gracefullyHandleFormsRequirePostException(MappedConfiguration<Class,Object> configuration, boolean productionMode)`
  `static void`
  `productionModeOverrides(MappedConfiguration<Class,Object> configuration, boolean productionMode)`
  In production mode, override `UpdateListenerHub` to be an empty placeholder.
  `static void`
  `provideBaseAjaxComponentEventResultProcessors(MappedConfiguration<Class,ComponentEventResultProcessor> configuration)`
  Contributes handlers for the following types: Object Failure case, added to provide more useful exception message `RenderCommand` Typically, a `Block` `Component` Renders the component and its body (unless its a page, in which case a redirect JSON response is sent) `JSONObject` or `JSONArray` The JSONObject is returned as a text/javascript response `StreamResponse` The stream response is sent as the actual response String Interprets the value as a logical page name and sends a client response to redirect to that page `Link` Sends a JSON response to redirect to the link `Class` Treats the class as a page class and sends a redirect for a page render for that page `MultiZoneUpdate` Sends a single JSON response to update the content of multiple zones In most cases, when you want to support a new type, you should convert it to one of the built-in supported types (such as `RenderCommand`.
  `static void`
  `provideCoreAndAppLibraries(Configuration<LibraryMapping> configuration, String appRootPackage)`
  `static void`
  `provideDefaultBeanBlocks(Configuration<BeanBlockContribution> configuration)`
  `static void`
  `provideStandardInjectionProviders(OrderedConfiguration<InjectionProvider2> configuration, SymbolSource symbolSource, AssetSource assetSource)`
  Default based on `MasterObjectProvider` Named Handles fields with the `Named` annotation Block injects fields of type `Block` CommonResources Access to properties of resources (log, messages, etc.) Asset injection of assets (triggered via `Path` annotation), with the path relative to the component class Service Ordered last, for use when Inject is present and nothing else works, matches field type against Tapestry IoC services
  `static void`
  `provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver, ComponentDependencyRegistry componentDependencyRegistry, PropertyValueProviderWorker propertyValueProviderWorker, boolean productionMode, boolean multipleClassloaders)`
  Adds a number of standard component class transform workers: Parameter Identifies parameters based on the `Parameter` annotation BindParameter Support for the `BindParameter` annotation Property Generates accessor methods if `Property` annotation is present Import Supports the `Import` annotation UnclaimedField Manages unclaimed fields, storing their value in a `PerThreadValue` OnEvent Handle the @OnEvent annotation, and related naming convention RenderCommand Ensures all components also implement `RenderCommand` SupportsInformalParameters Checks for the annotation RenderPhase Link in render phase methods Retain Allows fields to retain their values between requests Meta Checks for meta data annotations and adds it to the component model PageActivationContext Support for `PageActivationContext` annotation DiscardAfter Support for `DiscardAfter` method annotation MixinAfter Support for the `MixinAfter` mixin class annotation PageReset Checks for the `PageReset` annotation Mixin Adds a mixin as part of a component's implementation Cached Checks for the `Cached` annotation ActivationRequestParameter Support for the `ActivationRequestParameter` annotation PageLoaded, PageAttached, PageDetached Support for annotations `PageLoaded`, `PageAttached`, `PageDetached` InjectService Handles the `InjectService` annotation Component Defines embedded components based on the `Component` annotation Environment Allows fields to contain values extracted from the `Environment` service ApplicationState Converts fields that reference application state objects Persist Allows fields to store their their value persistently between requests via `Persist` SessionAttribute Support for the `SessionAttribute` Log Checks for the `Log` annotation HeartbeatDeferred Support for the `HeartbeatDeferred` annotation, which defers method invocation to the end of the `Heartbeat` Inject Used with the `Inject` annotation, when a value is supplied Operation Support for the `Operation` method annotation
  `static void`
  `registerToClearPlasticProxyFactoryOnInvalidation(InvalidationEventHub hub, PlasticProxyFactory proxyFactory)`
  `static void`
  `setupCoreFrameworkValidators(MappedConfiguration<String,Validator> configuration)`
  Contributes the basic set of validators: required minlength maxlength min max regexp email none

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TapestryModule

    public TapestryModule(PipelineBuilder pipelineBuilder, PropertyShadowBuilder shadowBuilder, RequestGlobals requestGlobals, ChainBuilder chainBuilder, Environment environment, StrategyBuilder strategyBuilder, PropertyAccess propertyAccess, Request request, Response response, EnvironmentalShadowBuilder environmentalBuilder, EndOfRequestEventHub endOfRequestEventHub)
    We inject all sorts of common dependencies (including builders) into the module itself (note: even though some of these service are defined by the module itself, that's ok because services are always lazy proxies). This isn't about efficiency (it may be slightly more efficient, but not in any noticeable way), it's about eliminating the need to keep injecting these dependencies into individual service builder and contribution methods.

- ## Method Details

  - ### bind

    public static void bind(ServiceBinder binder)

  - ### contributeBindingSource

    public static void contributeBindingSource(MappedConfiguration<String,BindingFactory> configuration, @InjectService("PropBindingFactory") BindingFactory propBindingFactory, @InjectService("MessageBindingFactory") BindingFactory messageBindingFactory, @InjectService("ValidateBindingFactory") BindingFactory validateBindingFactory, @InjectService("TranslateBindingFactory") BindingFactory translateBindingFactory, @InjectService("AssetBindingFactory") BindingFactory assetBindingFactory, @InjectService("NullFieldStrategyBindingFactory") BindingFactory nullFieldStrategyBindingFactory, @InjectService("ContextBindingFactory") BindingFactory contextBindingFactory, @InjectService("SymbolBindingFactory") BindingFactory symbolBindingFactory)
    Contributes the factory for several built-in binding prefixes ("asset", "block", "component", "literal", prop", "nullfieldstrategy", "message", "validate", "translate", "var").

  - ### provideCoreAndAppLibraries

    @Contribute(ComponentClassResolver.class) public static void provideCoreAndAppLibraries(Configuration<LibraryMapping> configuration, @Symbol("tapestry.app-package") String appRootPackage)

  - ### provideTransformWorkers

    @Contribute(ComponentClassTransformWorker2.class) @Primary public static void provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver, ComponentDependencyRegistry componentDependencyRegistry, PropertyValueProviderWorker propertyValueProviderWorker, @Symbol("tapestry.production-mode") boolean productionMode, @Symbol("tapestry.multiple-classloaders") boolean multipleClassloaders)
    Adds a number of standard component class transform workers:
    Parameter
      Identifies parameters based on the `Parameter` annotation
    BindParameter
      Support for the `BindParameter` annotation
    Property
      Generates accessor methods if `Property` annotation is present
    Import
      Supports the `Import` annotation
    UnclaimedField
      Manages unclaimed fields, storing their value in a `PerThreadValue`
    OnEvent
      Handle the @OnEvent annotation, and related naming convention
    RenderCommand
      Ensures all components also implement `RenderCommand`
    SupportsInformalParameters
      Checks for the annotation
    RenderPhase
      Link in render phase methods
    Retain
      Allows fields to retain their values between requests
    Meta
      Checks for meta data annotations and adds it to the component model
    PageActivationContext
      Support for `PageActivationContext` annotation
    DiscardAfter
      Support for `DiscardAfter` method annotation
    MixinAfter
      Support for the `MixinAfter` mixin class annotation
    PageReset
      Checks for the `PageReset` annotation
    Mixin
      Adds a mixin as part of a component's implementation
    Cached
      Checks for the `Cached` annotation
    ActivationRequestParameter
      Support for the `ActivationRequestParameter` annotation
    PageLoaded, PageAttached, PageDetached
      Support for annotations `PageLoaded`, `PageAttached`, `PageDetached`
    InjectService
      Handles the `InjectService` annotation
    Component
      Defines embedded components based on the `Component` annotation
    Environment
      Allows fields to contain values extracted from the `Environment` service
    ApplicationState
      Converts fields that reference application state objects
    Persist
      Allows fields to store their their value persistently between requests via `Persist`
    SessionAttribute
      Support for the `SessionAttribute`
    Log
      Checks for the `Log` annotation
    HeartbeatDeferred
      Support for the `HeartbeatDeferred` annotation, which defers method invocation to the end of the `Heartbeat`
    Inject
      Used with the `Inject` annotation, when a value is supplied
    Operation
      Support for the `Operation` method annotation

  - ### contributeDataTypeAnalyzer

    public static void contributeDataTypeAnalyzer(OrderedConfiguration<DataTypeAnalyzer> configuration, @InjectService("DefaultDataTypeAnalyzer") DataTypeAnalyzer defaultDataTypeAnalyzer)
    Annotation
      Checks for `DataType` annotation
    Default (ordered last)
      `DefaultDataTypeAnalyzer` service ( `contributeDefaultDataTypeAnalyzer(org.apache.tapestry5.commons.MappedConfiguration)` )

  - ### contributeDefaultDataTypeAnalyzer

    public static void contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class,String> configuration)
    Maps property types to data type names:
    - String --> text
    - Number --> number
    - Enum --> enum
    - Boolean --> boolean
    - Date --> date

  - ### provideDefaultBeanBlocks

    @Contribute(BeanBlockSource.class) public static void provideDefaultBeanBlocks(Configuration<BeanBlockContribution> configuration)

  - ### setupCoreFrameworkValidators

    @Contribute(FieldValidatorSource.class) public static void setupCoreFrameworkValidators(MappedConfiguration<String,Validator> configuration)
    Contributes the basic set of validators:
    - required
    - minlength
    - maxlength
    - min
    - max
    - regexp
    - email
    - none

  - ### provideStandardInjectionProviders

    @Contribute(InjectionProvider2.class) public static void provideStandardInjectionProviders(OrderedConfiguration<InjectionProvider2> configuration, SymbolSource symbolSource, AssetSource assetSource)
    Default
      based on `MasterObjectProvider`
    Named
      Handles fields with the `Named` annotation
    Block
      injects fields of type `Block`
    CommonResources
      Access to properties of resources (log, messages, etc.)
    Asset
      injection of assets (triggered via `Path` annotation), with the path relative to the component class
    Service
      Ordered last, for use when Inject is present and nothing else works, matches field type against Tapestry IoC services

  - ### contributeMasterObjectProvider

    public static void contributeMasterObjectProvider(OrderedConfiguration<ObjectProvider> configuration, @InjectService("AssetObjectProvider") ObjectProvider assetObjectProvider, ObjectLocator locator)
    Contributes two object providers:
    Asset
      Checks for the `Path` annotation, and injects an `Asset`
    Service
      Injects based on the `Service` annotation, if present
    ApplicationMessages
      Injects the global application messages

  - ### contributeHttpServletRequestHandler

    public void contributeHttpServletRequestHandler(OrderedConfiguration<HttpServletRequestFilter> configuration, @InjectService("IgnoredPathsFilter") HttpServletRequestFilter ignoredPathsFilter)
    StoreIntoGlobals
      Stores the request and response into `RequestGlobals` at the start of the pipeline
    IgnoredPaths
      Identifies requests that are known (via the IgnoredPathsFilter service's configuration) to be mapped to other applications
    GZip
      Handles GZIP compression of response streams (if supported by client)

  - ### contributeRequestHandler

    public void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, Context context, @Symbol("tapestry.production-mode") boolean productionMode, PageClassLoaderContextManager pageClassLoaderContextManager)
    Continues a number of filters into the RequestHandler service:
    StaticFiles
      Checks to see if the request is for an actual file, if so, returns true to let the servlet container process the request
    CheckForUpdates
      Periodically fires events that checks to see if the file system sources for any cached data has changed (see `CheckForUpdatesFilter`). Starting in 5.3, this filter will be null in production mode (it will only be active in development mode).
    ErrorFilter
      Catches request errors and lets the `RequestExceptionHandler` handle them
    StoreIntoGlobals
      Stores the request and response into the `RequestGlobals` service (this is repeated at the end of the pipeline, in case any filter substitutes the request or response).
    EndOfRequest
      Notifies internal services that the request has ended

  - ### contributeTranslatorSource

    public static void contributeTranslatorSource(MappedConfiguration<Class,Translator> configuration, NumericTranslatorSupport support, Html5Support html5Support)
    Contributes the basic set of translators:
    - string
    - byte
    - short
    - integer
    - long
    - float
    - double
    - BigInteger
    - BigDecimal

  - ### contributeTypeCoercer

    public static void contributeTypeCoercer(MappedConfiguration<CoercionTuple.Key,CoercionTuple> configuration, ObjectLocator objectLocator, @Builtin ThreadLocale threadLocale, @Core AssetSource assetSource, @Core DynamicTemplateParser dynamicTemplateParser)
    Adds coercions:
    - String to `SelectModel`
    - Map to `SelectModel`
    - Collection to `GridDataSource`
    - null to `GridDataSource`
    - List to `SelectModel`
    - `ComponentResourcesAware` (typically, a component) to `ComponentResources`
    - `ComponentResources` to `PropertyOverrides`
    - String to `Renderable`
    - `Renderable` to `Block`
    - String to `DateFormat`
    - String to `Resource` (via `AssetSource.resourceForPath(String)`)
    - `Renderable` to `RenderCommand`
    - String to `Pattern`
    - String to `DateFormat`
    - `Resource` to `DynamicTemplate`
    - `Asset` to `Resource`
    - `ValueEncoder` to `ValueEncoderFactory`

  - ### contributeValidationConstraintGenerator

    public static void contributeValidationConstraintGenerator(OrderedConfiguration<ValidationConstraintGenerator> configuration)
    Adds built-in constraint generators:
    - PrimtiveField -- primitive fields are always required
    - ValidateAnnotation -- adds constraints from a `Validate` annotation

  - ### buildContext

    public Context buildContext(ApplicationGlobals globals)

  - ### buildComponentClassResolver

    public static ComponentClassResolver buildComponentClassResolver(@Autobuild ComponentClassResolverImpl service, @ComponentClasses InvalidationEventHub hub)

  - ### buildPropBindingFactory

    public BindingFactory buildPropBindingFactory(List<BindingFactory> configuration, @Autobuild PropBindingFactory service)
    Builds the PropBindingFactory as a chain of command. The terminator of the chain is responsible for ordinary property names (and property paths). This mechanism has been replaced in 5.1 with a more sophisticated parser based on ANTLR. See TAP5-79 for details. There are no longer any built-in contributions to the configuration.
    Parameters:
      `configuration` - contributions of special factories for some constants, each contributed factory may return a binding if applicable, or null otherwise

  - ### buildClientPersistentFieldStrategy

    public PersistentFieldStrategy buildClientPersistentFieldStrategy(LinkCreationHub linkCreationHub, @Autobuild ClientPersistentFieldStrategy service)

  - ### buildClientBehaviorSupport

    public ClientBehaviorSupport buildClientBehaviorSupport()
    Builds a proxy to the current `ClientBehaviorSupport` inside this thread's `Environment`.
    Since:
      5.1.0.1

  - ### buildFormSupport

    public FormSupport buildFormSupport()
    Builds a proxy to the current `FormSupport` inside this thread's `Environment`.

  - ### buildComponentClassTransformWorker

    @Marker(Primary.class) public ComponentClassTransformWorker2 buildComponentClassTransformWorker(List<ComponentClassTransformWorker2> configuration)
    Allows the exact steps in the component class transformation process to be defined.

  - ### buildDataTypeAnalyzer

    @Marker(Primary.class) public DataTypeAnalyzer buildDataTypeAnalyzer(List<DataTypeAnalyzer> configuration)
    Analyzes properties to determine the data types, used to provideDefaultBeanBlocks(org.apache.tapestry5.commons.Configuration) locale display and edit blocks for properties. The default behaviors look for a `DataType` annotation before deriving the data type from the property type.

  - ### buildInjectionProvider

    public InjectionProvider2 buildInjectionProvider(List<InjectionProvider2> configuration)
    A chain of command for providing values for `Inject`-ed fields in component classes. The service's configuration can be extended to allow for different automatic injections (based on some combination of field type and field name).

  - ### buildComponentEventResultProcessor

    @Marker({Primary.class,Traditional.class}) public ComponentEventResultProcessor buildComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
    The component event result processor used for normal component requests.

  - ### buildAjaxComponentEventResultProcessor

    @Marker(Ajax.class) public ComponentEventResultProcessor buildAjaxComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
    The component event result processor used for Ajax-oriented component requests.

  - ### buildDefaultDataTypeAnalyzer

    public static DataTypeAnalyzer buildDefaultDataTypeAnalyzer(@Autobuild DefaultDataTypeAnalyzer service, @ComponentClasses InvalidationEventHub hub)
    The default data type analyzer is the final analyzer consulted and identifies the type entirely pased on the property type, working against its own configuration (mapping property type class to data type).

  - ### buildTranslatorSource

    public static TranslatorSource buildTranslatorSource(Map<Class,Translator> configuration, TranslatorAlternatesSource alternatesSource, @ComponentClasses InvalidationEventHub hub)

  - ### buildObjectRenderer

    @Marker(Primary.class) public ObjectRenderer buildObjectRenderer(Map<Class,ObjectRenderer> configuration)

  - ### buildComponentProxyFactory

    @Marker(ComponentLayer.class) public PlasticProxyFactory buildComponentProxyFactory(ComponentInstantiatorSource source)
    Returns a `PlasticProxyFactory` that can be used to create extra classes around component classes. This factory will be cleared whenever an underlying component class is discovered to have changed. Use of this factory implies that your code will become aware of this (if necessary) to discard any cached object (alas, this currently involves dipping into the internals side to register for the correct notifications). Failure to properly clean up can result in really nasty PermGen space memory leaks.

  - ### buildMarkupRenderer

    public MarkupRenderer buildMarkupRenderer(org.slf4j.Logger logger, @Autobuild MarkupRendererTerminator terminator, List<MarkupRendererFilter> configuration)
    The MarkupRenderer service is used to render a full page as markup. Supports an ordered configuration of `MarkupRendererFilter`s.

  - ### buildPartialMarkupRenderer

    public PartialMarkupRenderer buildPartialMarkupRenderer(org.slf4j.Logger logger, List<PartialMarkupRendererFilter> configuration, @Autobuild PartialMarkupRendererTerminator terminator)
    A wrapper around `PageRenderQueue` used for partial page renders. Supports an ordered configuration of `PartialMarkupRendererFilter`s.

  - ### buildPageRenderRequestHandler

    public PageRenderRequestHandler buildPageRenderRequestHandler(List<PageRenderRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild PageRenderRequestHandlerImpl terminator)

  - ### buildComponentEventRequestHandler

    @Marker({Traditional.class,Primary.class}) public ComponentEventRequestHandler buildComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild ComponentEventRequestHandlerImpl terminator)
    Builds the component action request handler for traditional (non-Ajax) requests. These typically result in a redirect to a Tapestry render URL.

  - ### buildAjaxComponentEventRequestHandler

    @Marker({Ajax.class,Primary.class}) public ComponentEventRequestHandler buildAjaxComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild AjaxComponentEventRequestHandler terminator)
    Builds the action request handler for Ajax requests, based on a pipeline around `AjaxComponentEventRequestHandler` . Filters on the request handler are supported here as well.

  - ### contributeApplicationStatePersistenceStrategySource

    public void contributeApplicationStatePersistenceStrategySource(MappedConfiguration<String,ApplicationStatePersistenceStrategy> configuration, @Local ApplicationStatePersistenceStrategy sessionStategy)
    Contributes the default "session" strategy.

  - ### contributeComponentEventResultProcessor

    public void contributeComponentEventResultProcessor(@Traditional @ComponentInstanceProcessor ComponentEventResultProcessor componentInstanceProcessor, MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
    Contributes handlers for the following types:
    Object
      Failure case, added to provide a more useful exception message
    `Link`
      Sends a redirect to the link (which is typically a page render link)
    String
      Sends a page render redirect
    Class
      Interpreted as the class name of a page, sends a page render render redirect (this is more refactoring safe than the page name)
    `Component`
      A page's root component (though a non-root component will work, but will generate a warning). A direct to the containing page is sent.
    `StreamResponse`
      The stream response is sent as the actual reply.
    URL
      Sends a redirect to a (presumably) external URL

  - ### provideBaseAjaxComponentEventResultProcessors

    @Contribute(ComponentEventResultProcessor.class) @Ajax public static void provideBaseAjaxComponentEventResultProcessors(MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
    Contributes handlers for the following types:
    Object
      Failure case, added to provide more useful exception message
    `RenderCommand`
      Typically, a `Block`
    `Component`
      Renders the component and its body (unless its a page, in which case a redirect JSON response is sent)
    `JSONObject` or `JSONArray`
      The JSONObject is returned as a text/javascript response
    `StreamResponse`
      The stream response is sent as the actual response
    String
      Interprets the value as a logical page name and sends a client response to redirect to that page
    `Link`
      Sends a JSON response to redirect to the link
    `Class`
      Treats the class as a page class and sends a redirect for a page render for that page
    `MultiZoneUpdate`
      Sends a single JSON response to update the content of multiple zones
    In most cases, when you want to support a new type, you should convert it to one of the built-in supported types (such as `RenderCommand`. You can then inject the master AjaxComponentEventResultProcessor (use the `Ajax` marker annotation) and delegate to it.

  - ### contributeMasterDispatcher

    public static void contributeMasterDispatcher(OrderedConfiguration<Dispatcher> configuration, @Symbol("tapestry.publish-openapi-description") boolean publishOpenApiDefinition)
    The MasterDispatcher is a chain-of-command of individual Dispatchers, each handling (like a servlet) a particular kind of incoming request.
    RootPath
      Renders the start page for the "/" request (outdated)
    PageRender
      Identifies the `PageRenderRequestParameters` and forwards onto `PageRenderRequestHandler`
    ComponentEvent
      Identifies the `ComponentEventRequestParameters` and forwards onto the `ComponentEventRequestHandler`

  - ### contributeObjectRenderer

    public void contributeObjectRenderer(MappedConfiguration<Class,ObjectRenderer> configuration, @InjectService("LocationRenderer") ObjectRenderer locationRenderer, TypeCoercer typeCoercer)
    Contributes a default object renderer for type Object, plus specialized renderers for `Request`, `Location`, `ComponentResources`, `EventContext`, `AvailableValues`, List, and Object[].

  - ### contributeMarkupRenderer

    public void contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter> configuration, ModuleManager moduleManager, @Symbol("tapestry.omit-generator-meta") boolean omitGeneratorMeta, @Symbol("tapestry.version") String tapestryVersion, @Symbol("tapestry.production-mode") boolean productionMode, @Symbol("tapestry.include-core-stack") boolean includeCoreStack, @Symbol("tapestry.enable-pageloading-mask") boolean enablePageloadingMask, ValidationDecoratorFactory validationDecoratorFactory)
    Adds page render filters, each of which provides an `Environmental` service. Filters often provide `Environmental` services needed by components as they render.
    DocumentLinker
      Provides `DocumentLinker`
    ClientBehaviorSupport (deprecated in 5.4)
      Provides `ClientBehaviorSupport`
    Heartbeat
      Provides `Heartbeat`
    ValidationDecorator (deprecated in 5.4)
      Provides `ValidationDecorator` (via `ValidationDecoratorFactory.newInstance(org.apache.tapestry5.MarkupWriter)`)
    PageNameMeta (since 5.4)
      Renders a `<meta/>` tag describing the active page name (development mode only)
    ImportCoreStack (since 5.4)
      Imports the "core" stack (necessary to get the Bootstrap CSS, if nothing else).
    See Also:
      - `SymbolConstants.OMIT_GENERATOR_META`
      - `TapestryHttpSymbolConstants.PRODUCTION_MODE`
      - `SymbolConstants.INCLUDE_CORE_STACK`
      - `SymbolConstants.ENABLE_PAGELOADING_MASK`

  - ### contributePartialMarkupRenderer

    public void contributePartialMarkupRenderer(OrderedConfiguration<PartialMarkupRendererFilter> configuration, ValidationDecoratorFactory validationDecoratorFactory)
    Contributes `PartialMarkupRendererFilter`s used when rendering a partial Ajax response.
    DocumentLinker
      Provides `DocumentLinker`
    ClientBehaviorSupport
      Provides `ClientBehaviorSupport`
    Heartbeat
      Provides `Heartbeat`
    DefaultValidationDecorator
    ValidationDecorator
      Provides `ValidationDecorator` (via `ValidationDecoratorFactory.newInstance(org.apache.tapestry5.MarkupWriter)`)

  - ### contributePersistentFieldManager

    public void contributePersistentFieldManager(MappedConfiguration<String,PersistentFieldStrategy> configuration, Request request, @InjectService("ClientPersistentFieldStrategy") PersistentFieldStrategy clientStrategy)
    Contributes several strategies:
    session
      Values are stored in the `Session`
    flash
      Values are stored in the `Session`, until the next request (for the page)
    client
      Values are encoded into URLs (or hidden form fields)

  - ### contributeValueEncoderSource

    public static void contributeValueEncoderSource(MappedConfiguration<Class,Object> configuration)
    Contributes `ValueEncoder`s or `ValueEncoderFactory`s for types:
    - Object
    - String
    - Enum

  - ### contributePageRenderRequestHandler

    public void contributePageRenderRequestHandler(OrderedConfiguration<PageRenderRequestFilter> configuration, RequestSecurityManager securityManager)
    Contributes a single filter, "Secure", which checks for non-secure requests that access secure pages.

  - ### contributeTemplateParser

    public static void contributeTemplateParser(MappedConfiguration<String,URL> config)

  - ### contributeFactoryDefaults

    public static void contributeFactoryDefaults(MappedConfiguration<String,Object> configuration)
    Contributes factory defaults that may be overridden.

  - ### contributeApplicationInitializer

    public void contributeApplicationInitializer(OrderedConfiguration<ApplicationInitializerFilter> configuration, TypeCoercer typeCoercer, ComponentClassResolver componentClassResolver, @ComponentClasses InvalidationEventHub invalidationEventHub, @Autobuild RestoreDirtySessionObjects restoreDirtySessionObjects)
    Adds a listener to the `ComponentInstantiatorSource` that clears the `PropertyAccess` and `TypeCoercer` caches on a class loader invalidation. In addition, forces the realization of `ComponentClassResolver` at startup.

  - ### contributeComponentEventRequestHandler

    public void contributeComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration, RequestSecurityManager requestSecurityManager, @Ajax ComponentEventRequestHandler ajaxHandler)
    Contributes filters:
    Ajax
      Determines if the request is Ajax oriented, and redirects to an alternative handler if so
    Secure
      Sends a redirect if an non-secure request accesses a secure page

  - ### contributeAjaxComponentEventRequestHandler

    public static void contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration)
    Contributes:
    AjaxFormUpdate
      `AjaxFormUpdateFilter`
    Since:
      5.2.0

  - ### contributeNullFieldStrategySource

    public static void contributeNullFieldStrategySource(MappedConfiguration<String,NullFieldStrategy> configuration)
    Contributes strategies accessible via the `NullFieldStrategySource` service.
    default
      Does nothing, nulls stay null.
    zero
      Null values are converted to zero.

  - ### contributeHiddenFieldLocationRules

    public static void contributeHiddenFieldLocationRules(MappedConfiguration<String,RelativeElementPosition> configuration)
    Determines positioning of hidden fields relative to other elements (this is needed by `FormFragment` and others. For elements input, select, textarea and label the hidden field is positioned after. For elements p, div, li and td, the hidden field is positioned inside.

  - ### buildLinkCreationHub

    public static LinkCreationHub buildLinkCreationHub(LinkSource source)
    Since:
      5.1.0.0

  - ### buildComponentClassesInvalidationEventHub

    @Marker(ComponentClasses.class) public static InvalidationEventHub buildComponentClassesInvalidationEventHub(InternalComponentInvalidationEventHub trueHub)
    Exposes the public portion of the internal `InternalComponentInvalidationEventHub` service.
    Since:
      5.1.0.0

  - ### buildComponentTemplatesInvalidationEventHub

    @Marker(ComponentTemplates.class) public static InvalidationEventHub buildComponentTemplatesInvalidationEventHub(ComponentTemplateSource templateSource)
    Since:
      5.1.0.0

  - ### buildComponentMessagesInvalidationEventHub

    @Marker(ComponentMessages.class) public static InvalidationEventHub buildComponentMessagesInvalidationEventHub(ComponentMessagesSource messagesSource)
    Since:
      5.1.0.0

  - ### buildEnvironment

    @Scope("perthread") public Environment buildEnvironment(PerthreadManager perthreadManager)

  - ### buildMasterStackTraceElementAnalyzer

    @Marker(Primary.class) public StackTraceElementAnalyzer buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration)
    Since:
      5.1.1.0

  - ### contributeMasterStackTraceElementAnalyzer

    public static void contributeMasterStackTraceElementAnalyzer(OrderedConfiguration<StackTraceElementAnalyzer> configuration)
    Contributes:
    Application
      Checks for classes in the application package
    Proxies
      Checks for classes that appear to be generated proxies.
    SunReflect
      Checks for `sun.reflect` (which are omitted)
    TapestryAOP
      Omits stack frames for classes related to Tapestry AOP (such as advice, etc.)
    OperationTracker
      Omits stack frames related to `OperationTracker`
    Access
      Omits stack frames used to provide access to container class private members
    Since:
      5.1.0.0

  - ### adviseLazy

    @Match("ComponentMessagesSource") public static void adviseLazy(LazyAdvisor advisor, MethodAdviceReceiver receiver)
    Advises the `ComponentMessagesSource` service so that the creation of `Messages` instances can be deferred.
    Since:
      5.1.0.0

  - ### buildComponentRequestHandler

    public ComponentRequestHandler buildComponentRequestHandler(List<ComponentRequestFilter> configuration, @Autobuild ComponentRequestHandlerTerminator terminator, org.slf4j.Logger logger)
    Since:
      5.1.0.0

  - ### contributeComponentRequestHandler

    public void contributeComponentRequestHandler(OrderedConfiguration<ComponentRequestFilter> configuration, @Symbol("tapestry.production-mode") boolean productionMode)
    Contributes:
    OperationTracker
      Tracks general information about the request using `OperationTracker`
    UnknownComponentFilter (production mode only)
      `ProductionModeUnknownComponentFilter` - Detects request with unknown component and aborts handling to ultimately deliver a 404 response
    InitializeActivePageName
      `InitializeActivePageName`
    DeferredResponseRenderer
      `DeferredResponseRenderer`
    Since:
      5.2.0

  - ### decorateFieldValidatorDefaultSource

    public static FieldValidatorDefaultSource decorateFieldValidatorDefaultSource(FieldValidatorDefaultSource defaultSource, Environment environment)
    Decorate FieldValidatorDefaultSource to setup the EnvironmentMessages object and place it in the environment. Although this could have been implemented directly in the default implementation of the service, doing it as service decoration ensures that the environment will be properly setup even if a user overrides the default service implementation.
    Parameters:
      `defaultSource` - The service to decorate
      `environment` -

  - ### buildHeartbeat

    public Heartbeat buildHeartbeat()
    Exposes the Environmental `Heartbeat` as an injectable service.
    Since:
      5.2.0

  - ### buildComponentMessagesSource

    public static ComponentMessagesSource buildComponentMessagesSource(UpdateListenerHub updateListenerHub, @Autobuild ComponentMessagesSourceImpl service)

  - ### contributeMetaWorker

    public static void contributeMetaWorker(MappedConfiguration<Class,MetaDataExtractor> configuration)
    Contributes extractors for `Meta`, `Secure`, `ContentType` and `WhitelistAccessOnly` annotations.
    Since:
      5.2.0

  - ### buildComponentTemplateLocator

    @Marker(Primary.class) public ComponentTemplateLocator buildComponentTemplateLocator(List<ComponentTemplateLocator> configuration)
    Builds the `ComponentTemplateLocator` as a chain of command.
    Since:
      5.2.0

  - ### contributeComponentTemplateLocator

    public static void contributeComponentTemplateLocator(OrderedConfiguration<ComponentTemplateLocator> configuration, @ContextProvider AssetFactory contextAssetFactory, @Symbol("tapestry.application-folder") String applicationFolder, ComponentClassResolver componentClassResolver)
    Contributes two template locators:
    Default
      Searches for the template on the classpath (`DefaultTemplateLocator`
    Page
      Searches for page templates in the context (`PageTemplateLocator`)
    Since:
      5.2.0

  - ### buildComponentEventLinkTransformer

    @Marker(Primary.class) public ComponentEventLinkTransformer buildComponentEventLinkTransformer(List<ComponentEventLinkTransformer> configuration)
    Builds `ComponentEventLinkTransformer` service as a chain of command.
    Since:
      5.2.0

  - ### buildPageRenderLinkTransformer

    @Marker(Primary.class) public PageRenderLinkTransformer buildPageRenderLinkTransformer(List<PageRenderLinkTransformer> configuration)
    Builds `PageRenderLinkTransformer` service as a chain of command.
    Since:
      5.2.0

  - ### decorateLinkTransformer

    @Match("ComponentEventLinkEncoder") public ComponentEventLinkEncoder decorateLinkTransformer(LinkTransformer linkTransformer, ComponentEventLinkEncoder delegate)
    Provides the "LinkTransformer" interceptor for the `ComponentEventLinkEncoder` service. Other decorations should come after LinkTransformer.
    Since:
      5.2.0

  - ### productionModeOverrides

    @Contribute(ServiceOverride.class) public static void productionModeOverrides(MappedConfiguration<Class,Object> configuration, @Symbol("tapestry.production-mode") boolean productionMode)
    In production mode, override `UpdateListenerHub` to be an empty placeholder.

  - ### defaultWhitelist

    @Contribute(ClientWhitelist.class) public static void defaultWhitelist(OrderedConfiguration<WhitelistAnalyzer> configuration)
    Contributes a single default analyzer:
    LocalhostOnly
      Identifies requests from localhost as on client whitelist
    Since:
      5.3

  - ### registerToClearPlasticProxyFactoryOnInvalidation

    @Startup public static void registerToClearPlasticProxyFactoryOnInvalidation(@ComponentClasses InvalidationEventHub hub, @Builtin PlasticProxyFactory proxyFactory)

  - ### defaultValueLabelProviders

    @Contribute(ValueLabelProvider.class) public void defaultValueLabelProviders(MappedConfiguration<Class,ValueLabelProvider> configuration)
    Since:
      5.4

  - ### buildValueLabelProvider

    public ValueLabelProvider<?> buildValueLabelProvider(Map<Class,ValueLabelProvider> configuration)
    Since:
      5.4

  - ### componentReplacer

    @Advise(serviceInterface=ComponentInstantiatorSource.class) public static void componentReplacer(MethodAdviceReceiver methodAdviceReceiver, ComponentOverride componentReplacer) throws NoSuchMethodException, SecurityException
    Throws:
      `NoSuchMethodException`
      `SecurityException`

  - ### buildComponentLibraryInfoSource

    public static ComponentLibraryInfoSource buildComponentLibraryInfoSource(List<ComponentLibraryInfoSource> configuration, ChainBuilder chainBuilder)

  - ### addBuiltInComponentLibraryInfoSources

    @Contribute(ComponentLibraryInfoSource.class) public static void addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> configuration)

  - ### buildOpenApiDocumentationGenerator

    public static OpenApiDescriptionGenerator buildOpenApiDocumentationGenerator(List<OpenApiDescriptionGenerator> configuration, ChainBuilder chainBuilder)

  - ### buildOpenApiTypeDescriber

    public static OpenApiTypeDescriber buildOpenApiTypeDescriber(List<OpenApiTypeDescriber> configuration, ChainBuilder chainBuilder)

  - ### addBuiltInOpenApiDocumentationGenerator

    @Contribute(OpenApiDescriptionGenerator.class) public static void addBuiltInOpenApiDocumentationGenerator(OrderedConfiguration<OpenApiDescriptionGenerator> configuration)

  - ### addBuiltInOpenApiTypeDescriber

    @Contribute(OpenApiTypeDescriber.class) public static void addBuiltInOpenApiTypeDescriber(OrderedConfiguration<OpenApiTypeDescriber> configuration)

  - ### contributeMappedEntityManager

    public static void contributeMappedEntityManager(Configuration<String> configuration, @Symbol("tapestry.app-package") String appRootPackage)
    Contributes the package "<root>.rest.entities" to the configuration, so that it will be scanned for mapped entity classes.

  - ### gracefullyHandleFormsRequirePostException

    @Contribute(RequestExceptionHandler.class) public static void gracefullyHandleFormsRequirePostException(MappedConfiguration<Class,Object> configuration, @Symbol("tapestry.production-mode") boolean productionMode)