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 java.lang.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

    All Methods Static Methods Instance Methods Concrete Methods
    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​(java.util.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​(java.util.Map<java.lang.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​(java.util.List<ComponentClassTransformWorker2> configuration)` | Allows the exact steps in the component class transformation process to be defined.
    `ComponentEventLinkTransformer` | `buildComponentEventLinkTransformer​(java.util.List<ComponentEventLinkTransformer> configuration)` | Builds `ComponentEventLinkTransformer` service as a chain of command.
    `ComponentEventRequestHandler` | `buildComponentEventRequestHandler​(java.util.List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, ComponentEventRequestHandlerImpl terminator)` | Builds the component action request handler for traditional (non-Ajax) requests.
    `ComponentEventResultProcessor` | `buildComponentEventResultProcessor​(java.util.Map<java.lang.Class,​ComponentEventResultProcessor> configuration, InvalidationEventHub hub)` | The component event result processor used for normal component requests.
    `static ComponentLibraryInfoSource` | `buildComponentLibraryInfoSource​(java.util.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​(java.util.List<ComponentRequestFilter> configuration, ComponentRequestHandlerTerminator terminator, org.slf4j.Logger logger)` |
    `ComponentTemplateLocator` | `buildComponentTemplateLocator​(java.util.List<ComponentTemplateLocator> configuration)` | Builds the `ComponentTemplateLocator` as a chain of command.
    `static InvalidationEventHub` | `buildComponentTemplatesInvalidationEventHub​(ComponentTemplateSource templateSource)` |
    `Context` | `buildContext​(ApplicationGlobals globals)` |
    `DataTypeAnalyzer` | `buildDataTypeAnalyzer​(java.util.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​(java.util.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, java.util.List<MarkupRendererFilter> configuration)` | The MarkupRenderer service is used to render a full page as markup.
    `StackTraceElementAnalyzer` | `buildMasterStackTraceElementAnalyzer​(java.util.List<StackTraceElementAnalyzer> configuration)` |
    `ObjectRenderer` | `buildObjectRenderer​(java.util.Map<java.lang.Class,​ObjectRenderer> configuration)` |
    `static OpenApiDescriptionGenerator` | `buildOpenApiDocumentationGenerator​(java.util.List<OpenApiDescriptionGenerator> configuration, ChainBuilder chainBuilder)` |
    `static OpenApiTypeDescriber` | `buildOpenApiTypeDescriber​(java.util.List<OpenApiTypeDescriber> configuration, ChainBuilder chainBuilder)` |
    `PageRenderLinkTransformer` | `buildPageRenderLinkTransformer​(java.util.List<PageRenderLinkTransformer> configuration)` | Builds `PageRenderLinkTransformer` service as a chain of command.
    `PageRenderRequestHandler` | `buildPageRenderRequestHandler​(java.util.List<PageRenderRequestFilter> configuration, org.slf4j.Logger logger, PageRenderRequestHandlerImpl terminator)` |
    `PartialMarkupRenderer` | `buildPartialMarkupRenderer​(org.slf4j.Logger logger, java.util.List<PartialMarkupRendererFilter> configuration, PartialMarkupRendererTerminator terminator)` | A wrapper around `PageRenderQueue` used for partial page renders.
    `BindingFactory` | `buildPropBindingFactory​(java.util.List<BindingFactory> configuration, PropBindingFactory service)` | Builds the PropBindingFactory as a chain of command.
    `static TranslatorSource` | `buildTranslatorSource​(java.util.Map<java.lang.Class,​Translator> configuration, TranslatorAlternatesSource alternatesSource, InvalidationEventHub hub)` |
    `ValueLabelProvider<?>` | `buildValueLabelProvider​(java.util.Map<java.lang.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<java.lang.String,​ApplicationStatePersistenceStrategy> configuration, ApplicationStatePersistenceStrategy sessionStategy)` | Contributes the default "session" strategy.
    `static void` | `contributeBindingSource​(MappedConfiguration<java.lang.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<java.lang.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, java.lang.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<java.lang.Class,​java.lang.String> configuration)` | Maps property types to data type names: String --> text Number --> number Enum --> enum Boolean --> boolean Date --> date
    `static void` | `contributeFactoryDefaults​(MappedConfiguration<java.lang.String,​java.lang.Object> configuration)` | Contributes factory defaults that may be overridden.
    `static void` | `contributeHiddenFieldLocationRules​(MappedConfiguration<java.lang.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<java.lang.String> configuration, java.lang.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, java.lang.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<java.lang.Class,​MetaDataExtractor> configuration)` | Contributes extractors for `Meta`, `Secure`, `ContentType` and `WhitelistAccessOnly` annotations.
    `static void` | `contributeNullFieldStrategySource​(MappedConfiguration<java.lang.String,​NullFieldStrategy> configuration)` | Contributes strategies accessible via the `NullFieldStrategySource` service.
    `void` | `contributeObjectRenderer​(MappedConfiguration<java.lang.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<java.lang.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<java.lang.String,​java.net.URL> config)` |
    `static void` | `contributeTranslatorSource​(MappedConfiguration<java.lang.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<java.lang.Class,​java.lang.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<java.lang.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<java.lang.Class,​java.lang.Object> configuration, boolean productionMode)` |
    `static void` | `productionModeOverrides​(MappedConfiguration<java.lang.Class,​java.lang.Object> configuration, boolean productionMode)` | In production mode, override `UpdateListenerHub` to be an empty placeholder.
    `static void` | `provideBaseAjaxComponentEventResultProcessors​(MappedConfiguration<java.lang.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, java.lang.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<java.lang.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 Detail

    - #### 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 Detail

    - #### bind

          public static void bind​(ServiceBinder binder)

    - #### contributeBindingSource

          public static void contributeBindingSource​(MappedConfiguration<java.lang.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")
                                                        java.lang.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<java.lang.Class,​java.lang.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<java.lang.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<java.lang.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​(java.util.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​(java.util.List<ComponentClassTransformWorker2> configuration)

      Allows the exact steps in the component class transformation process to be defined.

    - #### buildDataTypeAnalyzer

          @Marker(Primary.class)
          public DataTypeAnalyzer buildDataTypeAnalyzer​(java.util.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​(java.util.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​(java.util.Map<java.lang.Class,​ComponentEventResultProcessor> configuration,
                                                                                  @ComponentClasses
                                                                                  InvalidationEventHub hub)

      The component event result processor used for normal component requests.

    - #### buildAjaxComponentEventResultProcessor

          @Marker(Ajax.class)
          public ComponentEventResultProcessor buildAjaxComponentEventResultProcessor​(java.util.Map<java.lang.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​(java.util.Map<java.lang.Class,​Translator> configuration,
                                                               TranslatorAlternatesSource alternatesSource,
                                                               @ComponentClasses
                                                               InvalidationEventHub hub)

    - #### buildObjectRenderer

          @Marker(Primary.class)
          public ObjectRenderer buildObjectRenderer​(java.util.Map<java.lang.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,
                                                    java.util.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,
                                                                  java.util.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​(java.util.List<PageRenderRequestFilter> configuration,
                                                                        org.slf4j.Logger logger,
                                                                        @Autobuild
                                                                        PageRenderRequestHandlerImpl terminator)

    - #### buildComponentEventRequestHandler

          @Marker({Traditional.class,Primary.class})
          public ComponentEventRequestHandler buildComponentEventRequestHandler​(java.util.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​(java.util.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<java.lang.String,​ApplicationStatePersistenceStrategy> configuration,
                                                                          @Local
                                                                          ApplicationStatePersistenceStrategy sessionStategy)

      Contributes the default "session" strategy.

    - #### contributeComponentEventResultProcessor

          public void contributeComponentEventResultProcessor​(@Traditional @ComponentInstanceProcessor
                                                              ComponentEventResultProcessor componentInstanceProcessor,
                                                              MappedConfiguration<java.lang.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<java.lang.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<java.lang.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")
                                               java.lang.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<java.lang.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<java.lang.Class,​java.lang.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<java.lang.String,​java.net.URL> config)

    - #### contributeFactoryDefaults

          public static void contributeFactoryDefaults​(MappedConfiguration<java.lang.String,​java.lang.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<java.lang.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<java.lang.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​(java.util.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​(java.util.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<java.lang.Class,​MetaDataExtractor> configuration)

      Contributes extractors for `Meta`, `Secure`, `ContentType` and `WhitelistAccessOnly` annotations.
      Since:
        5.2.0

    - #### buildComponentTemplateLocator

          @Marker(Primary.class)
          public ComponentTemplateLocator buildComponentTemplateLocator​(java.util.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")
                                                                java.lang.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​(java.util.List<ComponentEventLinkTransformer> configuration)

      Builds `ComponentEventLinkTransformer` service as a chain of command.
      Since:
        5.2.0

    - #### buildPageRenderLinkTransformer

          @Marker(Primary.class)
          public PageRenderLinkTransformer buildPageRenderLinkTransformer​(java.util.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<java.lang.Class,​java.lang.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<java.lang.Class,​ValueLabelProvider> configuration)

      Since:
        5.4

    - #### buildValueLabelProvider

          public ValueLabelProvider<?> buildValueLabelProvider​(java.util.Map<java.lang.Class,​ValueLabelProvider> configuration)

      Since:
        5.4

    - #### componentReplacer

          @Advise(serviceInterface=ComponentInstantiatorSource.class)
          public static void componentReplacer​(MethodAdviceReceiver methodAdviceReceiver,
                                               ComponentOverride componentReplacer)
                                        throws java.lang.NoSuchMethodException,
                                               java.lang.SecurityException

      Throws:
        `java.lang.NoSuchMethodException`
        `java.lang.SecurityException`

    - #### buildComponentLibraryInfoSource

          public static ComponentLibraryInfoSource buildComponentLibraryInfoSource​(java.util.List<ComponentLibraryInfoSource> configuration,
                                                                                   ChainBuilder chainBuilder)

    - #### addBuiltInComponentLibraryInfoSources

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

    - #### buildOpenApiDocumentationGenerator

          public static OpenApiDescriptionGenerator buildOpenApiDocumentationGenerator​(java.util.List<OpenApiDescriptionGenerator> configuration,
                                                                                       ChainBuilder chainBuilder)

    - #### buildOpenApiTypeDescriber

          public static OpenApiTypeDescriber buildOpenApiTypeDescriber​(java.util.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<java.lang.String> configuration,
                                                           @Symbol("tapestry.app-package")
                                                           java.lang.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<java.lang.Class,​java.lang.Object> configuration,
                                                                       @Symbol("tapestry.production-mode")
                                                                       boolean productionMode)