@Marker(value=Core.class) @ImportModule(value={InternalModule.class,AssetsModule.class,PageLoadModule.class,JavaScriptModule.class,CompatibilityModule.class,DashboardModule.class}) public final class TapestryModule extends Object
Constructor and Description |
---|
TapestryModule(PipelineBuilder pipelineBuilder,
PropertyShadowBuilder shadowBuilder,
RequestGlobals requestGlobals,
ApplicationGlobals applicationGlobals,
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).
|
Modifier and Type | Method and Description |
---|---|
static void |
addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> 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.
|
ApplicationInitializer |
buildApplicationInitializer(org.slf4j.Logger logger,
List<ApplicationInitializerFilter> configuration)
Initializes the application, using a pipeline of
ApplicationInitializer s. |
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.ioc.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. |
HttpServletRequest |
buildHttpServletRequest()
Builds a shadow of the RequestGlobals.HTTPServletRequest property.
|
HttpServletRequestHandler |
buildHttpServletRequestHandler(org.slf4j.Logger logger,
List<HttpServletRequestFilter> configuration,
RequestHandler handler,
String applicationCharset,
TapestrySessionFactory sessionFactory) |
HttpServletResponse |
buildHttpServletResponse() |
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.
|
Dispatcher |
buildMasterDispatcher(List<Dispatcher> configuration)
Ordered contributions to the MasterDispatcher service allow different URL
matching strategies to occur.
|
StackTraceElementAnalyzer |
buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration) |
ObjectRenderer |
buildObjectRenderer(Map<Class,ObjectRenderer> configuration) |
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.
|
Request |
buildRequest()
Builds a shadow of the RequestGlobals.request property.
|
RequestHandler |
buildRequestHandler(org.slf4j.Logger logger,
List<RequestFilter> configuration,
Dispatcher masterDispatcher) |
Response |
buildResponse()
Builds a shadow of the RequestGlobals.response property.
|
ServletApplicationInitializer |
buildServletApplicationInitializer(org.slf4j.Logger logger,
List<ServletApplicationInitializerFilter> configuration,
ApplicationInitializer initializer) |
SessionPersistedObjectAnalyzer |
buildSessionPersistedObjectAnalyzer(Map<Class,SessionPersistedObjectAnalyzer> configuration)
The master SessionPersistedObjectAnalyzer.
|
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.ioc.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,
boolean gzipCompressionEnabled,
GZipFilter gzipFilter,
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)
|
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)
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)
|
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)
|
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)
|
void |
contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration,
Context context,
boolean productionMode)
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 |
contributeSessionPersistedObjectAnalyzer(MappedConfiguration<Class,SessionPersistedObjectAnalyzer> configuration)
Identifies String, Number and Boolean as immutable objects, a catch-all
handler for Object (that understands
the
ImmutableSessionPersistedObject annotation),
and a handler for OptimizedSessionPersistedObject . |
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(Configuration<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 |
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)
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
|
public TapestryModule(PipelineBuilder pipelineBuilder, PropertyShadowBuilder shadowBuilder, RequestGlobals requestGlobals, ApplicationGlobals applicationGlobals, ChainBuilder chainBuilder, Environment environment, StrategyBuilder strategyBuilder, PropertyAccess propertyAccess, Request request, Response response, EnvironmentalShadowBuilder environmentalBuilder, EndOfRequestEventHub endOfRequestEventHub)
public static void bind(ServiceBinder binder)
public static void contributeBindingSource(MappedConfiguration<String,BindingFactory> configuration, @InjectService(value="PropBindingFactory") BindingFactory propBindingFactory, @InjectService(value="MessageBindingFactory") BindingFactory messageBindingFactory, @InjectService(value="ValidateBindingFactory") BindingFactory validateBindingFactory, @InjectService(value="TranslateBindingFactory") BindingFactory translateBindingFactory, @InjectService(value="AssetBindingFactory") BindingFactory assetBindingFactory, @InjectService(value="NullFieldStrategyBindingFactory") BindingFactory nullFieldStrategyBindingFactory, @InjectService(value="ContextBindingFactory") BindingFactory contextBindingFactory, @InjectService(value="SymbolBindingFactory") BindingFactory symbolBindingFactory)
@Contribute(value=ComponentClassResolver.class) public static void provideCoreAndAppLibraries(Configuration<LibraryMapping> configuration, @Symbol(value="tapestry.app-package") String appRootPackage)
@Contribute(value=ComponentClassTransformWorker2.class) @Primary public static void provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver)
Parameter
annotationBindParameter
annotationProperty
annotation is presentImport
annotationPerThreadValue
RenderCommand
PageActivationContext
annotationDiscardAfter
method annotation MixinAfter
mixin class annotationPageReset
annotationCached
annotationActivationRequestParameter
annotationPageLoaded
, PageAttached
, PageDetached
InjectService
annotationComponent
annotationEnvironment
servicePersist
SessionAttribute
Log
annotationHeartbeatDeferred
annotation, which defers method invocation to the end of the Heartbeat
Inject
annotation, when a value is suppliedOperation
method annotationpublic static void contributeDataTypeAnalyzer(OrderedConfiguration<DataTypeAnalyzer> configuration, @InjectService(value="DefaultDataTypeAnalyzer") DataTypeAnalyzer defaultDataTypeAnalyzer)
DataType
annotationDefaultDataTypeAnalyzer
service (
contributeDefaultDataTypeAnalyzer(org.apache.tapestry5.ioc.MappedConfiguration)
)public static void contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class,String> configuration)
@Contribute(value=BeanBlockSource.class) public static void provideDefaultBeanBlocks(Configuration<BeanBlockContribution> configuration)
@Contribute(value=FieldValidatorSource.class) public static void setupCoreFrameworkValidators(MappedConfiguration<String,Validator> configuration)
@Contribute(value=InjectionProvider2.class) public static void provideStandardInjectionProviders(OrderedConfiguration<InjectionProvider2> configuration, SymbolSource symbolSource, AssetSource assetSource)
MasterObjectProvider
Named
annotationBlock
Path
annotation), with the path relative to the component classpublic static void contributeMasterObjectProvider(OrderedConfiguration<ObjectProvider> configuration, @InjectService(value="AssetObjectProvider") ObjectProvider assetObjectProvider, ObjectLocator locator)
public void contributeHttpServletRequestHandler(OrderedConfiguration<HttpServletRequestFilter> configuration, @Symbol(value="tapestry.gzip-compression-enabled") boolean gzipCompressionEnabled, @Autobuild GZipFilter gzipFilter, @InjectService(value="IgnoredPathsFilter") HttpServletRequestFilter ignoredPathsFilter)
RequestGlobals
at the start of the
pipelinepublic void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration, Context context, @Symbol(value="tapestry.production-mode") boolean productionMode)
CheckForUpdatesFilter
). Starting in 5.3, this filter will be null
in production mode (it will only be active in development mode).
RequestExceptionHandler
handle them
RequestGlobals
service (this
is repeated at the end of the pipeline, in case any filter substitutes the request or response).
public static void contributeTranslatorSource(MappedConfiguration<Class,Translator> configuration, NumericTranslatorSupport support, Html5Support html5Support)
public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration, ObjectLocator objectLocator, @Builtin ThreadLocale threadLocale, @Core AssetSource assetSource, @Core DynamicTemplateParser dynamicTemplateParser)
SelectModel
SelectModel
GridDataSource
GridDataSource
SelectModel
ComponentResourcesAware
(typically, a component) to ComponentResources
ComponentResources
to PropertyOverrides
Renderable
Renderable
to Block
DateFormat
Resource
(via AssetSource.resourceForPath(String)
)
Renderable
to RenderCommand
Pattern
DateFormat
Resource
to DynamicTemplate
Asset
to Resource
ValueEncoder
to ValueEncoderFactory
public static void contributeValidationConstraintGenerator(OrderedConfiguration<ValidationConstraintGenerator> configuration)
Validate
annotation
public Context buildContext(ApplicationGlobals globals)
public static ComponentClassResolver buildComponentClassResolver(@Autobuild ComponentClassResolverImpl service, @ComponentClasses InvalidationEventHub hub)
public BindingFactory buildPropBindingFactory(List<BindingFactory> configuration, @Autobuild PropBindingFactory service)
configuration
- contributions of special factories for some constants, each
contributed factory may return a
binding if applicable, or null otherwisepublic PersistentFieldStrategy buildClientPersistentFieldStrategy(LinkCreationHub linkCreationHub, @Autobuild ClientPersistentFieldStrategy service)
public ClientBehaviorSupport buildClientBehaviorSupport()
ClientBehaviorSupport
inside this
thread's Environment
.public FormSupport buildFormSupport()
FormSupport
inside this
thread's Environment
.@Marker(value=Primary.class) public ComponentClassTransformWorker2 buildComponentClassTransformWorker(List<ComponentClassTransformWorker2> configuration)
@Marker(value=Primary.class) public DataTypeAnalyzer buildDataTypeAnalyzer(List<DataTypeAnalyzer> configuration)
DataType
annotation
before deriving the data type from the property type.public InjectionProvider2 buildInjectionProvider(List<InjectionProvider2> configuration)
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).@Marker(value=Primary.class) public ApplicationInitializer buildApplicationInitializer(org.slf4j.Logger logger, List<ApplicationInitializerFilter> configuration)
ApplicationInitializer
s.public HttpServletRequestHandler buildHttpServletRequestHandler(org.slf4j.Logger logger, List<HttpServletRequestFilter> configuration, @Primary RequestHandler handler, @Symbol(value="tapestry.charset") String applicationCharset, TapestrySessionFactory sessionFactory)
@Marker(value=Primary.class) public RequestHandler buildRequestHandler(org.slf4j.Logger logger, List<RequestFilter> configuration, @Primary Dispatcher masterDispatcher)
public ServletApplicationInitializer buildServletApplicationInitializer(org.slf4j.Logger logger, List<ServletApplicationInitializerFilter> configuration, @Primary ApplicationInitializer initializer)
@Marker(value={Primary.class,Traditional.class}) public ComponentEventResultProcessor buildComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
@Marker(value=Ajax.class) public ComponentEventResultProcessor buildAjaxComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
public static DataTypeAnalyzer buildDefaultDataTypeAnalyzer(@Autobuild DefaultDataTypeAnalyzer service, @ComponentClasses InvalidationEventHub hub)
public static TranslatorSource buildTranslatorSource(Map<Class,Translator> configuration, TranslatorAlternatesSource alternatesSource, @ComponentClasses InvalidationEventHub hub)
@Marker(value=Primary.class) public ObjectRenderer buildObjectRenderer(Map<Class,ObjectRenderer> configuration)
@Marker(value=ComponentLayer.class) public PlasticProxyFactory buildComponentProxyFactory(ComponentInstantiatorSource source)
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.@Marker(value=Primary.class) public Dispatcher buildMasterDispatcher(List<Dispatcher> configuration)
public Request buildRequest()
public HttpServletRequest buildHttpServletRequest()
Request
service instead, as
future version of Tapestry may operate beyond just the servlet API.public HttpServletResponse buildHttpServletResponse()
public Response buildResponse()
public MarkupRenderer buildMarkupRenderer(org.slf4j.Logger logger, @Autobuild MarkupRendererTerminator terminator, List<MarkupRendererFilter> configuration)
MarkupRendererFilter
s.public PartialMarkupRenderer buildPartialMarkupRenderer(org.slf4j.Logger logger, List<PartialMarkupRendererFilter> configuration, @Autobuild PartialMarkupRendererTerminator terminator)
PageRenderQueue
used for
partial page renders.
Supports an ordered configuration of PartialMarkupRendererFilter
s.public PageRenderRequestHandler buildPageRenderRequestHandler(List<PageRenderRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild PageRenderRequestHandlerImpl terminator)
@Marker(value={Traditional.class,Primary.class}) public ComponentEventRequestHandler buildComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild ComponentEventRequestHandlerImpl terminator)
@Marker(value={Ajax.class,Primary.class}) public ComponentEventRequestHandler buildAjaxComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild AjaxComponentEventRequestHandler terminator)
AjaxComponentEventRequestHandler
. Filters on
the
request handler are supported here as well.public void contributeApplicationStatePersistenceStrategySource(MappedConfiguration<String,ApplicationStatePersistenceStrategy> configuration, @Local ApplicationStatePersistenceStrategy sessionStategy)
public void contributeComponentEventResultProcessor(@Traditional @ComponentInstanceProcessor ComponentEventResultProcessor componentInstanceProcessor, MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
Link
Component
StreamResponse
@Contribute(value=ComponentEventResultProcessor.class) @Ajax public static void provideBaseAjaxComponentEventResultProcessors(MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
RenderCommand
Block
Component
JSONObject
or JSONArray
StreamResponse
Link
Class
MultiZoneUpdate
RenderCommand
. You can then inject the master AjaxComponentEventResultProcessor (use the
Ajax
marker annotation) and delegate to it.public static void contributeMasterDispatcher(OrderedConfiguration<Dispatcher> configuration)
PageRenderRequestParameters
and forwards onto
PageRenderRequestHandler
ComponentEventRequestParameters
and forwards onto the
ComponentEventRequestHandler
public void contributeObjectRenderer(MappedConfiguration<Class,ObjectRenderer> configuration, @InjectService(value="LocationRenderer") ObjectRenderer locationRenderer, TypeCoercer typeCoercer)
Request
, Location
,
ComponentResources
, EventContext
,
AvailableValues
,
List, and Object[].public void contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter> configuration, ModuleManager moduleManager, @Symbol(value="tapestry.omit-generator-meta") boolean omitGeneratorMeta, @Symbol(value="tapestry.version") String tapestryVersion, @Symbol(value="tapestry.production-mode") boolean productionMode, @Symbol(value="tapestry.include-core-stack") boolean includeCoreStack, @Symbol(value="tapestry.enable-pageloading-mask") boolean enablePageloadingMask, ValidationDecoratorFactory validationDecoratorFactory)
Environmental
service. Filters
often provide Environmental
services needed by
components as they render.
DocumentLinker
ClientBehaviorSupport
Heartbeat
ValidationDecorator
(via ValidationDecoratorFactory.newInstance(org.apache.tapestry5.MarkupWriter)
)<meta/>
tag describing the active page name (development mode only)public void contributePartialMarkupRenderer(OrderedConfiguration<PartialMarkupRendererFilter> configuration, ValidationDecoratorFactory validationDecoratorFactory)
PartialMarkupRendererFilter
s used when rendering a
partial Ajax response.
DocumentLinker
ClientBehaviorSupport
Heartbeat
ValidationDecorator
(via ValidationDecoratorFactory.newInstance(org.apache.tapestry5.MarkupWriter)
)public void contributePersistentFieldManager(MappedConfiguration<String,PersistentFieldStrategy> configuration, Request request, @InjectService(value="ClientPersistentFieldStrategy") PersistentFieldStrategy clientStrategy)
public static void contributeValueEncoderSource(MappedConfiguration<Class,Object> configuration)
public void contributePageRenderRequestHandler(OrderedConfiguration<PageRenderRequestFilter> configuration, RequestSecurityManager securityManager)
public static void contributeTemplateParser(MappedConfiguration<String,URL> config)
public static void contributeFactoryDefaults(MappedConfiguration<String,Object> configuration)
public void contributeApplicationInitializer(OrderedConfiguration<ApplicationInitializerFilter> configuration, TypeCoercer typeCoercer, ComponentClassResolver componentClassResolver, @ComponentClasses InvalidationEventHub invalidationEventHub, @Autobuild RestoreDirtySessionObjects restoreDirtySessionObjects)
ComponentInstantiatorSource
that clears the
PropertyAccess
and TypeCoercer
caches on
a class loader invalidation. In addition, forces the
realization of ComponentClassResolver
at startup.public void contributeComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration, RequestSecurityManager requestSecurityManager, @Ajax ComponentEventRequestHandler ajaxHandler)
public static void contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration)
AjaxFormUpdateFilter
public static void contributeNullFieldStrategySource(MappedConfiguration<String,NullFieldStrategy> configuration)
NullFieldStrategySource
service.
public static void contributeHiddenFieldLocationRules(MappedConfiguration<String,RelativeElementPosition> configuration)
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.public static LinkCreationHub buildLinkCreationHub(LinkSource source)
@Marker(value=ComponentClasses.class) public static InvalidationEventHub buildComponentClassesInvalidationEventHub(InternalComponentInvalidationEventHub trueHub)
InternalComponentInvalidationEventHub
service.@Marker(value=ComponentTemplates.class) public static InvalidationEventHub buildComponentTemplatesInvalidationEventHub(ComponentTemplateSource templateSource)
@Marker(value=ComponentMessages.class) public static InvalidationEventHub buildComponentMessagesInvalidationEventHub(ComponentMessagesSource messagesSource)
@Scope(value="perthread") public Environment buildEnvironment(PerthreadManager perthreadManager)
@Marker(value=Primary.class) public SessionPersistedObjectAnalyzer buildSessionPersistedObjectAnalyzer(Map<Class,SessionPersistedObjectAnalyzer> configuration)
public static void contributeSessionPersistedObjectAnalyzer(MappedConfiguration<Class,SessionPersistedObjectAnalyzer> configuration)
ImmutableSessionPersistedObject
annotation),
and a handler for OptimizedSessionPersistedObject
.@Marker(value=Primary.class) public StackTraceElementAnalyzer buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration)
public static void contributeMasterStackTraceElementAnalyzer(OrderedConfiguration<StackTraceElementAnalyzer> configuration)
sun.reflect
(which are omitted)
OperationTracker
@Match(value="ComponentMessagesSource") public static void adviseLazy(LazyAdvisor advisor, MethodAdviceReceiver receiver)
ComponentMessagesSource
service so
that the creation
of Messages
instances can be deferred.public ComponentRequestHandler buildComponentRequestHandler(List<ComponentRequestFilter> configuration, @Autobuild ComponentRequestHandlerTerminator terminator, org.slf4j.Logger logger)
public void contributeComponentRequestHandler(OrderedConfiguration<ComponentRequestFilter> configuration, @Symbol(value="tapestry.production-mode") boolean productionMode)
OperationTracker
ProductionModeUnknownComponentFilter
- Detects request with unknown component and aborts handling to ultimately deliver a 404 responseInitializeActivePageName
DeferredResponseRenderer
public static FieldValidatorDefaultSource decorateFieldValidatorDefaultSource(FieldValidatorDefaultSource defaultSource, Environment environment)
defaultSource
- The service to decorateenvironment
- public Heartbeat buildHeartbeat()
Heartbeat
as an injectable service.public static ComponentMessagesSource buildComponentMessagesSource(UpdateListenerHub updateListenerHub, @Autobuild ComponentMessagesSourceImpl service)
public static void contributeMetaWorker(MappedConfiguration<Class,MetaDataExtractor> configuration)
@Marker(value=Primary.class) public ComponentTemplateLocator buildComponentTemplateLocator(List<ComponentTemplateLocator> configuration)
ComponentTemplateLocator
as a chain of command.public static void contributeComponentTemplateLocator(OrderedConfiguration<ComponentTemplateLocator> configuration, @ContextProvider AssetFactory contextAssetFactory, @Symbol(value="tapestry.application-folder") String applicationFolder, ComponentClassResolver componentClassResolver)
DefaultTemplateLocator
PageTemplateLocator
)@Marker(value=Primary.class) public ComponentEventLinkTransformer buildComponentEventLinkTransformer(List<ComponentEventLinkTransformer> configuration)
ComponentEventLinkTransformer
service as a chain of command.@Marker(value=Primary.class) public PageRenderLinkTransformer buildPageRenderLinkTransformer(List<PageRenderLinkTransformer> configuration)
PageRenderLinkTransformer
service as a chain of command.@Match(value="ComponentEventLinkEncoder") public ComponentEventLinkEncoder decorateLinkTransformer(LinkTransformer linkTransformer, ComponentEventLinkEncoder delegate)
ComponentEventLinkEncoder
service.
Other decorations
should come after LinkTransformer.@Contribute(value=ServiceOverride.class) public static void productionModeOverrides(MappedConfiguration<Class,Object> configuration, @Symbol(value="tapestry.production-mode") boolean productionMode)
UpdateListenerHub
to be an empty placeholder.@Contribute(value=ClientWhitelist.class) public static void defaultWhitelist(OrderedConfiguration<WhitelistAnalyzer> configuration)
@Startup public static void registerToClearPlasticProxyFactoryOnInvalidation(@ComponentClasses InvalidationEventHub hub, @Builtin PlasticProxyFactory proxyFactory)
@Contribute(value=ValueLabelProvider.class) public void defaultValueLabelProviders(MappedConfiguration<Class,ValueLabelProvider> configuration)
public ValueLabelProvider<?> buildValueLabelProvider(Map<Class,ValueLabelProvider> configuration)
@Advise(serviceInterface=ComponentInstantiatorSource.class) public static void componentReplacer(MethodAdviceReceiver methodAdviceReceiver, ComponentOverride componentReplacer) throws NoSuchMethodException, SecurityException
public static ComponentLibraryInfoSource buildComponentLibraryInfoSource(List<ComponentLibraryInfoSource> configuration, ChainBuilder chainBuilder)
@Contribute(value=ComponentLibraryInfoSource.class) public static void addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> configuration)
5.6.3 - Copyright © 2003-2021 The Apache Software Foundation.