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}) public final class TapestryModule extends Object
The root module for Tapestry.
-
-
Constructor Summary
Constructors Constructor Description TapestryModule(PipelineBuilder pipelineBuilder, PropertyShadowBuilder shadowBuilder, RequestGlobals requestGlobals, ChainBuilder chainBuilder, Environment environment, StrategyBuilder strategyBuilder, PropertyAccess propertyAccess, Request request, Response response, EnvironmentalShadowBuilder environmentalBuilder, EndOfRequestEventHub endOfRequestEventHub)
We inject all sorts of common dependencies (including builders) into the module itself (note: even though some of these service are defined by the module itself, that's ok because services are always lazy proxies).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> configuration)
static void
adviseLazy(LazyAdvisor advisor, MethodAdviceReceiver receiver)
Advises theComponentMessagesSource
service so that the creation ofMessages
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 aroundAjaxComponentEventRequestHandler
.ComponentEventResultProcessor
buildAjaxComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, InvalidationEventHub hub)
The component event result processor used for Ajax-oriented component requests.ClientBehaviorSupport
buildClientBehaviorSupport()
Builds a proxy to the currentClientBehaviorSupport
inside this thread'sEnvironment
.PersistentFieldStrategy
buildClientPersistentFieldStrategy(LinkCreationHub linkCreationHub, ClientPersistentFieldStrategy service)
static InvalidationEventHub
buildComponentClassesInvalidationEventHub(InternalComponentInvalidationEventHub trueHub)
Exposes the public portion of the internalInternalComponentInvalidationEventHub
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)
BuildsComponentEventLinkTransformer
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 aPlasticProxyFactory
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 theComponentTemplateLocator
as a chain of command.static InvalidationEventHub
buildComponentTemplatesInvalidationEventHub(ComponentTemplateSource templateSource)
Context
buildContext(ApplicationGlobals globals)
DataTypeAnalyzer
buildDataTypeAnalyzer(List<DataTypeAnalyzer> configuration)
Analyzes properties to determine the data types, used to provideDefaultBeanBlocks(org.apache.tapestry5.commons.Configuration) locale display and edit blocks for properties.static DataTypeAnalyzer
buildDefaultDataTypeAnalyzer(DefaultDataTypeAnalyzer service, InvalidationEventHub hub)
The default data type analyzer is the final analyzer consulted and identifies the type entirely pased on the property type, working against its own configuration (mapping property type class to data type).Environment
buildEnvironment(PerthreadManager perthreadManager)
FormSupport
buildFormSupport()
Builds a proxy to the currentFormSupport
inside this thread'sEnvironment
.Heartbeat
buildHeartbeat()
Exposes the EnvironmentalHeartbeat
as an injectable service.InjectionProvider2
buildInjectionProvider(List<InjectionProvider2> configuration)
A chain of command for providing values forInject
-ed fields in component classes.static LinkCreationHub
buildLinkCreationHub(LinkSource source)
MarkupRenderer
buildMarkupRenderer(org.slf4j.Logger logger, MarkupRendererTerminator terminator, List<MarkupRendererFilter> configuration)
The MarkupRenderer service is used to render a full page as markup.StackTraceElementAnalyzer
buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration)
ObjectRenderer
buildObjectRenderer(Map<Class,ObjectRenderer> configuration)
PageRenderLinkTransformer
buildPageRenderLinkTransformer(List<PageRenderLinkTransformer> configuration)
BuildsPageRenderLinkTransformer
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 aroundPageRenderQueue
used for partial page renders.BindingFactory
buildPropBindingFactory(List<BindingFactory> configuration, PropBindingFactory service)
Builds the PropBindingFactory as a chain of command.static TranslatorSource
buildTranslatorSource(Map<Class,Translator> configuration, TranslatorAlternatesSource alternatesSource, InvalidationEventHub hub)
ValueLabelProvider<?>
buildValueLabelProvider(Map<Class,ValueLabelProvider> configuration)
static void
componentReplacer(MethodAdviceReceiver methodAdviceReceiver, ComponentOverride componentReplacer)
static void
contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration)
Contributes: AjaxFormUpdateAjaxFormUpdateFilter
void
contributeApplicationInitializer(OrderedConfiguration<ApplicationInitializerFilter> configuration, TypeCoercer typeCoercer, ComponentClassResolver componentClassResolver, InvalidationEventHub invalidationEventHub, RestoreDirtySessionObjects restoreDirtySessionObjects)
Adds a listener to theComponentInstantiatorSource
that clears thePropertyAccess
andTypeCoercer
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 pagevoid
contributeComponentEventResultProcessor(ComponentEventResultProcessor componentInstanceProcessor, MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
Contributes handlers for the following types: Object Failure case, added to provide a more useful exception messageLink
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 usingOperationTracker
UnknownComponentFilter (production mode only)ProductionModeUnknownComponentFilter
- Detects request with unknown component and aborts handling to ultimately deliver a 404 response InitializeActivePageNameInitializeActivePageName
DeferredResponseRendererDeferredResponseRenderer
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 forDataType
annotation Default (ordered last)DefaultDataTypeAnalyzer
service (contributeDefaultDataTypeAnalyzer(org.apache.tapestry5.commons.MappedConfiguration)
)static void
contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class,String> configuration)
Maps property types to data type names: String --> text Number --> number Enum --> enum Boolean --> boolean Date --> datestatic 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 byFormFragment
and others.void
contributeHttpServletRequestHandler(OrderedConfiguration<HttpServletRequestFilter> configuration, HttpServletRequestFilter ignoredPathsFilter)
StoreIntoGlobals Stores the request and response intoRequestGlobals
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 anEnvironmental
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 forsun.reflect
(which are omitted) TapestryAOP Omits stack frames for classes related to Tapestry AOP (such as advice, etc.) OperationTracker Omits stack frames related toOperationTracker
Access Omits stack frames used to provide access to container class private membersstatic void
contributeMetaWorker(MappedConfiguration<Class,MetaDataExtractor> configuration)
static void
contributeNullFieldStrategySource(MappedConfiguration<String,NullFieldStrategy> configuration)
Contributes strategies accessible via theNullFieldStrategySource
service.void
contributeObjectRenderer(MappedConfiguration<Class,ObjectRenderer> configuration, ObjectRenderer locationRenderer, TypeCoercer typeCoercer)
Contributes a default object renderer for type Object, plus specialized renderers forRequest
,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)
ContributesPartialMarkupRendererFilter
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 (seeCheckForUpdatesFilter
).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 BigDecimalstatic void
contributeTypeCoercer(MappedConfiguration<CoercionTuple.Key,CoercionTuple> configuration, ObjectLocator objectLocator, ThreadLocale threadLocale, AssetSource assetSource, DynamicTemplateParser dynamicTemplateParser)
Adds coercions: String toSelectModel
Map toSelectModel
Collection toGridDataSource
null toGridDataSource
List toSelectModel
ComponentResourcesAware
(typically, a component) toComponentResources
ComponentResources
toPropertyOverrides
String toRenderable
Renderable
toBlock
String toDateFormat
String toResource
(viaAssetSource.resourceForPath(String)
)Renderable
toRenderCommand
String toPattern
String toDateFormat
Resource
toDynamicTemplate
Asset
toResource
ValueEncoder
toValueEncoderFactory
static void
contributeValidationConstraintGenerator(OrderedConfiguration<ValidationConstraintGenerator> configuration)
Adds built-in constraint generators: PrimtiveField -- primitive fields are always required ValidateAnnotation -- adds constraints from aValidate
annotationstatic void
contributeValueEncoderSource(MappedConfiguration<Class,Object> configuration)
ContributesValueEncoder
s orValueEncoderFactory
s for types: Object String Enumstatic 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 theComponentEventLinkEncoder
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 whiteliststatic void
productionModeOverrides(MappedConfiguration<Class,Object> configuration, boolean productionMode)
In production mode, overrideUpdateListenerHub
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 messageRenderCommand
Typically, aBlock
Component
Renders the component and its body (unless its a page, in which case a redirect JSON response is sent)JSONObject
orJSONArray
The JSONObject is returned as a text/javascript responseStreamResponse
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 pageLink
Sends a JSON response to redirect to the linkClass
Treats the class as a page class and sends a redirect for a page render for that pageMultiZoneUpdate
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 asRenderCommand
.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 onMasterObjectProvider
Named Handles fields with theNamed
annotation Block injects fields of typeBlock
CommonResources Access to properties of resources (log, messages, etc.) Asset injection of assets (triggered viaPath
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 servicesstatic void
provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver)
Adds a number of standard component class transform workers: Parameter Identifies parameters based on theParameter
annotation BindParameter Support for theBindParameter
annotation Property Generates accessor methods ifProperty
annotation is present Import Supports theImport
annotation UnclaimedField Manages unclaimed fields, storing their value in aPerThreadValue
OnEvent Handle the @OnEvent annotation, and related naming convention RenderCommand Ensures all components also implementRenderCommand
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 forPageActivationContext
annotation DiscardAfter Support forDiscardAfter
method annotation MixinAfter Support for theMixinAfter
mixin class annotation PageReset Checks for thePageReset
annotation Mixin Adds a mixin as part of a component's implementation Cached Checks for theCached
annotation ActivationRequestParameter Support for theActivationRequestParameter
annotation PageLoaded, PageAttached, PageDetached Support for annotationsPageLoaded
,PageAttached
,PageDetached
InjectService Handles theInjectService
annotation Component Defines embedded components based on theComponent
annotation Environment Allows fields to contain values extracted from theEnvironment
service ApplicationState Converts fields that reference application state objects Persist Allows fields to store their their value persistently between requests viaPersist
SessionAttribute Support for theSessionAttribute
Log Checks for theLog
annotation HeartbeatDeferred Support for theHeartbeatDeferred
annotation, which defers method invocation to the end of theHeartbeat
Inject Used with theInject
annotation, when a value is supplied Operation Support for theOperation
method annotationstatic 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
-
-
-
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<String,BindingFactory> configuration, @InjectService("PropBindingFactory") BindingFactory propBindingFactory, @InjectService("MessageBindingFactory") BindingFactory messageBindingFactory, @InjectService("ValidateBindingFactory") BindingFactory validateBindingFactory, @InjectService("TranslateBindingFactory") BindingFactory translateBindingFactory, @InjectService("AssetBindingFactory") BindingFactory assetBindingFactory, @InjectService("NullFieldStrategyBindingFactory") BindingFactory nullFieldStrategyBindingFactory, @InjectService("ContextBindingFactory") BindingFactory contextBindingFactory, @InjectService("SymbolBindingFactory") BindingFactory symbolBindingFactory)
Contributes the factory for several built-in binding prefixes ("asset", "block", "component", "literal", prop", "nullfieldstrategy", "message", "validate", "translate", "var").
-
provideCoreAndAppLibraries
@Contribute(ComponentClassResolver.class) public static void provideCoreAndAppLibraries(Configuration<LibraryMapping> configuration, @Symbol("tapestry.app-package") String appRootPackage)
-
provideTransformWorkers
@Contribute(ComponentClassTransformWorker2.class) @Primary public static void provideTransformWorkers(OrderedConfiguration<ComponentClassTransformWorker2> configuration, MetaWorker metaWorker, ComponentClassResolver resolver)
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 theHeartbeat
- Inject
- Used with the
Inject
annotation, when a value is supplied - Operation
- Support for the
Operation
method annotation
-
contributeDataTypeAnalyzer
public static void contributeDataTypeAnalyzer(OrderedConfiguration<DataTypeAnalyzer> configuration, @InjectService("DefaultDataTypeAnalyzer") DataTypeAnalyzer defaultDataTypeAnalyzer)
- Annotation
- Checks for
DataType
annotation - Default (ordered last)
-
DefaultDataTypeAnalyzer
service (contributeDefaultDataTypeAnalyzer(org.apache.tapestry5.commons.MappedConfiguration)
)
-
contributeDefaultDataTypeAnalyzer
public static void contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class,String> configuration)
Maps property types to data type names:- String --> text
- Number --> number
- Enum --> enum
- Boolean --> boolean
- Date --> date
-
provideDefaultBeanBlocks
@Contribute(BeanBlockSource.class) public static void provideDefaultBeanBlocks(Configuration<BeanBlockContribution> configuration)
-
setupCoreFrameworkValidators
@Contribute(FieldValidatorSource.class) public static void setupCoreFrameworkValidators(MappedConfiguration<String,Validator> configuration)
Contributes the basic set of validators:- required
- minlength
- maxlength
- min
- max
- regexp
- 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)
-
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)
Continues a number of filters into the RequestHandler service:- StaticFiles
- Checks to see if the request is for an actual file, if so, returns true to let the servlet container process the request
- CheckForUpdates
- Periodically fires events that checks to see if the file system sources for any cached data has changed (see
CheckForUpdatesFilter
). Starting in 5.3, this filter will be null in production mode (it will only be active in development mode). - ErrorFilter
- Catches request errors and lets the
RequestExceptionHandler
handle them - StoreIntoGlobals
- Stores the request and response into the
RequestGlobals
service (this is repeated at the end of the pipeline, in case any filter substitutes the request or response). - EndOfRequest
- Notifies internal services that the request has ended
-
contributeTranslatorSource
public static void contributeTranslatorSource(MappedConfiguration<Class,Translator> configuration, NumericTranslatorSupport support, Html5Support html5Support)
Contributes the basic set of translators:- string
- byte
- short
- integer
- long
- float
- double
- BigInteger
- BigDecimal
-
contributeTypeCoercer
public static void contributeTypeCoercer(MappedConfiguration<CoercionTuple.Key,CoercionTuple> configuration, ObjectLocator objectLocator, @Builtin ThreadLocale threadLocale, @Core AssetSource assetSource, @Core DynamicTemplateParser dynamicTemplateParser)
Adds coercions:- String to
SelectModel
- Map to
SelectModel
- Collection to
GridDataSource
- null to
GridDataSource
- List to
SelectModel
ComponentResourcesAware
(typically, a component) toComponentResources
ComponentResources
toPropertyOverrides
- String to
Renderable
Renderable
toBlock
- String to
DateFormat
- String to
Resource
(viaAssetSource.resourceForPath(String)
) Renderable
toRenderCommand
- String to
Pattern
- String to
DateFormat
Resource
toDynamicTemplate
Asset
toResource
ValueEncoder
toValueEncoderFactory
- String to
-
contributeValidationConstraintGenerator
public static void contributeValidationConstraintGenerator(OrderedConfiguration<ValidationConstraintGenerator> configuration)
Adds built-in constraint generators:- PrimtiveField -- primitive fields are always required
- ValidateAnnotation -- adds constraints from a
Validate
annotation
-
buildContext
public Context buildContext(ApplicationGlobals globals)
-
buildComponentClassResolver
public static ComponentClassResolver buildComponentClassResolver(@Autobuild ComponentClassResolverImpl service, @ComponentClasses InvalidationEventHub hub)
-
buildPropBindingFactory
public BindingFactory buildPropBindingFactory(List<BindingFactory> configuration, @Autobuild PropBindingFactory service)
Builds the PropBindingFactory as a chain of command. The terminator of the chain is responsible for ordinary property names (and property paths). This mechanism has been replaced in 5.1 with a more sophisticated parser based on ANTLR. See TAP5-79 for details. There are no longer any built-in contributions to the configuration.- Parameters:
configuration
- contributions of special factories for some constants, each contributed factory may return a binding if applicable, or null otherwise
-
buildClientPersistentFieldStrategy
public PersistentFieldStrategy buildClientPersistentFieldStrategy(LinkCreationHub linkCreationHub, @Autobuild ClientPersistentFieldStrategy service)
-
buildClientBehaviorSupport
public ClientBehaviorSupport buildClientBehaviorSupport()
Builds a proxy to the currentClientBehaviorSupport
inside this thread'sEnvironment
.- Since:
- 5.1.0.1
-
buildFormSupport
public FormSupport buildFormSupport()
Builds a proxy to the currentFormSupport
inside this thread'sEnvironment
.
-
buildComponentClassTransformWorker
@Marker(Primary.class) public ComponentClassTransformWorker2 buildComponentClassTransformWorker(List<ComponentClassTransformWorker2> configuration)
Allows the exact steps in the component class transformation process to be defined.
-
buildDataTypeAnalyzer
@Marker(Primary.class) public DataTypeAnalyzer buildDataTypeAnalyzer(List<DataTypeAnalyzer> configuration)
Analyzes properties to determine the data types, used to provideDefaultBeanBlocks(org.apache.tapestry5.commons.Configuration) locale display and edit blocks for properties. The default behaviors look for aDataType
annotation before deriving the data type from the property type.
-
buildInjectionProvider
public InjectionProvider2 buildInjectionProvider(List<InjectionProvider2> configuration)
A chain of command for providing values forInject
-ed fields in component classes. The service's configuration can be extended to allow for different automatic injections (based on some combination of field type and field name).
-
buildComponentEventResultProcessor
@Marker({Primary.class,Traditional.class}) public ComponentEventResultProcessor buildComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
The component event result processor used for normal component requests.
-
buildAjaxComponentEventResultProcessor
@Marker(Ajax.class) public ComponentEventResultProcessor buildAjaxComponentEventResultProcessor(Map<Class,ComponentEventResultProcessor> configuration, @ComponentClasses InvalidationEventHub hub)
The component event result processor used for Ajax-oriented component requests.
-
buildDefaultDataTypeAnalyzer
public static DataTypeAnalyzer buildDefaultDataTypeAnalyzer(@Autobuild DefaultDataTypeAnalyzer service, @ComponentClasses InvalidationEventHub hub)
The default data type analyzer is the final analyzer consulted and identifies the type entirely pased on the property type, working against its own configuration (mapping property type class to data type).
-
buildTranslatorSource
public static TranslatorSource buildTranslatorSource(Map<Class,Translator> configuration, TranslatorAlternatesSource alternatesSource, @ComponentClasses InvalidationEventHub hub)
-
buildObjectRenderer
@Marker(Primary.class) public ObjectRenderer buildObjectRenderer(Map<Class,ObjectRenderer> configuration)
-
buildComponentProxyFactory
@Marker(ComponentLayer.class) public PlasticProxyFactory buildComponentProxyFactory(ComponentInstantiatorSource source)
Returns aPlasticProxyFactory
that can be used to create extra classes around component classes. This factory will be cleared whenever an underlying component class is discovered to have changed. Use of this factory implies that your code will become aware of this (if necessary) to discard any cached object (alas, this currently involves dipping into the internals side to register for the correct notifications). Failure to properly clean up can result in really nasty PermGen space memory leaks.
-
buildMarkupRenderer
public MarkupRenderer buildMarkupRenderer(org.slf4j.Logger logger, @Autobuild MarkupRendererTerminator terminator, List<MarkupRendererFilter> configuration)
The MarkupRenderer service is used to render a full page as markup. Supports an ordered configuration ofMarkupRendererFilter
s.
-
buildPartialMarkupRenderer
public PartialMarkupRenderer buildPartialMarkupRenderer(org.slf4j.Logger logger, List<PartialMarkupRendererFilter> configuration, @Autobuild PartialMarkupRendererTerminator terminator)
A wrapper aroundPageRenderQueue
used for partial page renders. Supports an ordered configuration ofPartialMarkupRendererFilter
s.
-
buildPageRenderRequestHandler
public PageRenderRequestHandler buildPageRenderRequestHandler(List<PageRenderRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild PageRenderRequestHandlerImpl terminator)
-
buildComponentEventRequestHandler
@Marker({Traditional.class,Primary.class}) public ComponentEventRequestHandler buildComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild ComponentEventRequestHandlerImpl terminator)
Builds the component action request handler for traditional (non-Ajax) requests. These typically result in a redirect to a Tapestry render URL.
-
buildAjaxComponentEventRequestHandler
@Marker({Ajax.class,Primary.class}) public ComponentEventRequestHandler buildAjaxComponentEventRequestHandler(List<ComponentEventRequestFilter> configuration, org.slf4j.Logger logger, @Autobuild AjaxComponentEventRequestHandler terminator)
Builds the action request handler for Ajax requests, based on a pipeline aroundAjaxComponentEventRequestHandler
. Filters on the request handler are supported here as well.
-
contributeApplicationStatePersistenceStrategySource
public void contributeApplicationStatePersistenceStrategySource(MappedConfiguration<String,ApplicationStatePersistenceStrategy> configuration, @Local ApplicationStatePersistenceStrategy sessionStategy)
Contributes the default "session" strategy.
-
contributeComponentEventResultProcessor
public void contributeComponentEventResultProcessor(@Traditional @ComponentInstanceProcessor ComponentEventResultProcessor componentInstanceProcessor, MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
Contributes handlers for the following types:- Object
- Failure case, added to provide a more useful exception message
Link
- Sends a redirect to the link (which is typically a page render link)
- String
- Sends a page render redirect
- Class
- Interpreted as the class name of a page, sends a page render render redirect (this is more refactoring safe than the page name)
Component
- A page's root component (though a non-root component will work, but will generate a warning). A direct to the containing page is sent.
StreamResponse
- The stream response is sent as the actual reply.
- URL
- Sends a redirect to a (presumably) external URL
-
provideBaseAjaxComponentEventResultProcessors
@Contribute(ComponentEventResultProcessor.class) @Ajax public static void provideBaseAjaxComponentEventResultProcessors(MappedConfiguration<Class,ComponentEventResultProcessor> configuration)
Contributes handlers for the following types:- Object
- Failure case, added to provide more useful exception message
RenderCommand
- Typically, a
Block
Component
- Renders the component and its body (unless its a page, in which case a redirect JSON response is sent)
JSONObject
orJSONArray
- 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
RenderCommand
. You can then inject the master AjaxComponentEventResultProcessor (use theAjax
marker annotation) and delegate to it.
-
contributeMasterDispatcher
public 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.- RootPath
- Renders the start page for the "/" request (outdated)
- PageRender
- Identifies the
PageRenderRequestParameters
and forwards ontoPageRenderRequestHandler
- ComponentEvent
- Identifies the
ComponentEventRequestParameters
and forwards onto theComponentEventRequestHandler
-
contributeObjectRenderer
public void contributeObjectRenderer(MappedConfiguration<Class,ObjectRenderer> configuration, @InjectService("LocationRenderer") ObjectRenderer locationRenderer, TypeCoercer typeCoercer)
Contributes a default object renderer for type Object, plus specialized renderers forRequest
,Location
,ComponentResources
,EventContext
,AvailableValues
, List, and Object[].
-
contributeMarkupRenderer
public void contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter> configuration, ModuleManager moduleManager, @Symbol("tapestry.omit-generator-meta") boolean omitGeneratorMeta, @Symbol("tapestry.version") String tapestryVersion, @Symbol("tapestry.production-mode") boolean productionMode, @Symbol("tapestry.include-core-stack") boolean includeCoreStack, @Symbol("tapestry.enable-pageloading-mask") boolean enablePageloadingMask, ValidationDecoratorFactory validationDecoratorFactory)
Adds page render filters, each of which provides anEnvironmental
service. Filters often provideEnvironmental
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
(viaValidationDecoratorFactory.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).
-
contributePartialMarkupRenderer
public void contributePartialMarkupRenderer(OrderedConfiguration<PartialMarkupRendererFilter> configuration, ValidationDecoratorFactory validationDecoratorFactory)
ContributesPartialMarkupRendererFilter
s used when rendering a partial Ajax response.- DocumentLinker
- Provides
DocumentLinker
- ClientBehaviorSupport
- Provides
ClientBehaviorSupport
- Heartbeat
- Provides
Heartbeat
- DefaultValidationDecorator
- ValidationDecorator
- Provides
ValidationDecorator
(viaValidationDecoratorFactory.newInstance(org.apache.tapestry5.MarkupWriter)
)
-
contributePersistentFieldManager
public void contributePersistentFieldManager(MappedConfiguration<String,PersistentFieldStrategy> configuration, Request request, @InjectService("ClientPersistentFieldStrategy") PersistentFieldStrategy clientStrategy)
-
contributeValueEncoderSource
public static void contributeValueEncoderSource(MappedConfiguration<Class,Object> configuration)
-
contributePageRenderRequestHandler
public void contributePageRenderRequestHandler(OrderedConfiguration<PageRenderRequestFilter> configuration, RequestSecurityManager securityManager)
Contributes a single filter, "Secure", which checks for non-secure requests that access secure pages.
-
contributeTemplateParser
public static void contributeTemplateParser(MappedConfiguration<String,URL> config)
-
contributeFactoryDefaults
public static void contributeFactoryDefaults(MappedConfiguration<String,Object> configuration)
Contributes factory defaults that may be overridden.
-
contributeApplicationInitializer
public void contributeApplicationInitializer(OrderedConfiguration<ApplicationInitializerFilter> configuration, TypeCoercer typeCoercer, ComponentClassResolver componentClassResolver, @ComponentClasses InvalidationEventHub invalidationEventHub, @Autobuild RestoreDirtySessionObjects restoreDirtySessionObjects)
Adds a listener to theComponentInstantiatorSource
that clears thePropertyAccess
andTypeCoercer
caches on a class loader invalidation. In addition, forces the realization ofComponentClassResolver
at startup.
-
contributeComponentEventRequestHandler
public void contributeComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration, RequestSecurityManager requestSecurityManager, @Ajax ComponentEventRequestHandler ajaxHandler)
Contributes filters:- Ajax
- Determines if the request is Ajax oriented, and redirects to an alternative handler if so
- Secure
- Sends a redirect if an non-secure request accesses a secure page
-
contributeAjaxComponentEventRequestHandler
public static void contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter> configuration)
Contributes:- AjaxFormUpdate
AjaxFormUpdateFilter
- Since:
- 5.2.0
-
contributeNullFieldStrategySource
public static void contributeNullFieldStrategySource(MappedConfiguration<String,NullFieldStrategy> configuration)
Contributes strategies accessible via theNullFieldStrategySource
service.- default
- Does nothing, nulls stay null.
- zero
- Null values are converted to zero.
-
contributeHiddenFieldLocationRules
public static void contributeHiddenFieldLocationRules(MappedConfiguration<String,RelativeElementPosition> configuration)
Determines positioning of hidden fields relative to other elements (this is needed byFormFragment
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 internalInternalComponentInvalidationEventHub
service.- Since:
- 5.1.0.0
-
buildComponentTemplatesInvalidationEventHub
@Marker(ComponentTemplates.class) public static InvalidationEventHub buildComponentTemplatesInvalidationEventHub(ComponentTemplateSource templateSource)
- Since:
- 5.1.0.0
-
buildComponentMessagesInvalidationEventHub
@Marker(ComponentMessages.class) public static InvalidationEventHub buildComponentMessagesInvalidationEventHub(ComponentMessagesSource messagesSource)
- Since:
- 5.1.0.0
-
buildEnvironment
@Scope("perthread") public Environment buildEnvironment(PerthreadManager perthreadManager)
-
buildMasterStackTraceElementAnalyzer
@Marker(Primary.class) public StackTraceElementAnalyzer buildMasterStackTraceElementAnalyzer(List<StackTraceElementAnalyzer> configuration)
- Since:
- 5.1.1.0
-
contributeMasterStackTraceElementAnalyzer
public static void contributeMasterStackTraceElementAnalyzer(OrderedConfiguration<StackTraceElementAnalyzer> configuration)
Contributes:- Application
- Checks for classes in the application package
- Proxies
- Checks for classes that appear to be generated proxies.
- SunReflect
- Checks for
sun.reflect
(which are omitted) - TapestryAOP
- Omits stack frames for classes related to Tapestry AOP (such as advice, etc.)
- OperationTracker
- Omits stack frames related to
OperationTracker
- Access
- Omits stack frames used to provide access to container class private members
- Since:
- 5.1.0.0
-
adviseLazy
@Match("ComponentMessagesSource") public static void adviseLazy(LazyAdvisor advisor, MethodAdviceReceiver receiver)
Advises theComponentMessagesSource
service so that the creation ofMessages
instances can be deferred.- Since:
- 5.1.0.0
-
buildComponentRequestHandler
public ComponentRequestHandler buildComponentRequestHandler(List<ComponentRequestFilter> configuration, @Autobuild ComponentRequestHandlerTerminator terminator, org.slf4j.Logger logger)
- Since:
- 5.1.0.0
-
contributeComponentRequestHandler
public void contributeComponentRequestHandler(OrderedConfiguration<ComponentRequestFilter> configuration, @Symbol("tapestry.production-mode") boolean productionMode)
Contributes:- OperationTracker
- Tracks general information about the request using
OperationTracker
- UnknownComponentFilter (production mode only)
ProductionModeUnknownComponentFilter
- Detects request with unknown component and aborts handling to ultimately deliver a 404 response- InitializeActivePageName
InitializeActivePageName
- DeferredResponseRenderer
DeferredResponseRenderer
- Since:
- 5.2.0
-
decorateFieldValidatorDefaultSource
public static FieldValidatorDefaultSource decorateFieldValidatorDefaultSource(FieldValidatorDefaultSource defaultSource, Environment environment)
Decorate FieldValidatorDefaultSource to setup the EnvironmentMessages object and place it in the environment. Although this could have been implemented directly in the default implementation of the service, doing it as service decoration ensures that the environment will be properly setup even if a user overrides the default service implementation.- Parameters:
defaultSource
- The service to decorateenvironment
-
-
buildHeartbeat
public Heartbeat buildHeartbeat()
Exposes the EnvironmentalHeartbeat
as an injectable service.- Since:
- 5.2.0
-
buildComponentMessagesSource
public static ComponentMessagesSource buildComponentMessagesSource(UpdateListenerHub updateListenerHub, @Autobuild ComponentMessagesSourceImpl service)
-
contributeMetaWorker
public static void contributeMetaWorker(MappedConfiguration<Class,MetaDataExtractor> configuration)
- Since:
- 5.2.0
-
buildComponentTemplateLocator
@Marker(Primary.class) public ComponentTemplateLocator buildComponentTemplateLocator(List<ComponentTemplateLocator> configuration)
Builds theComponentTemplateLocator
as a chain of command.- Since:
- 5.2.0
-
contributeComponentTemplateLocator
public static void contributeComponentTemplateLocator(OrderedConfiguration<ComponentTemplateLocator> configuration, @ContextProvider AssetFactory contextAssetFactory, @Symbol("tapestry.application-folder") String applicationFolder, ComponentClassResolver componentClassResolver)
Contributes two template locators:- Default
- Searches for the template on the classpath (
DefaultTemplateLocator
- Page
- Searches for page templates in the context (
PageTemplateLocator
)
- Since:
- 5.2.0
-
buildComponentEventLinkTransformer
@Marker(Primary.class) public ComponentEventLinkTransformer buildComponentEventLinkTransformer(List<ComponentEventLinkTransformer> configuration)
BuildsComponentEventLinkTransformer
service as a chain of command.- Since:
- 5.2.0
-
buildPageRenderLinkTransformer
@Marker(Primary.class) public PageRenderLinkTransformer buildPageRenderLinkTransformer(List<PageRenderLinkTransformer> configuration)
BuildsPageRenderLinkTransformer
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 theComponentEventLinkEncoder
service. Other decorations should come after LinkTransformer.- Since:
- 5.2.0
-
productionModeOverrides
@Contribute(ServiceOverride.class) public static void productionModeOverrides(MappedConfiguration<Class,Object> configuration, @Symbol("tapestry.production-mode") boolean productionMode)
In production mode, overrideUpdateListenerHub
to be an empty placeholder.
-
defaultWhitelist
@Contribute(ClientWhitelist.class) public static void defaultWhitelist(OrderedConfiguration<WhitelistAnalyzer> configuration)
Contributes a single default analyzer:- LocalhostOnly
- Identifies requests from localhost as on client whitelist
- Since:
- 5.3
-
registerToClearPlasticProxyFactoryOnInvalidation
@Startup public static void registerToClearPlasticProxyFactoryOnInvalidation(@ComponentClasses InvalidationEventHub hub, @Builtin PlasticProxyFactory proxyFactory)
-
defaultValueLabelProviders
@Contribute(ValueLabelProvider.class) public void defaultValueLabelProviders(MappedConfiguration<Class,ValueLabelProvider> configuration)
- Since:
- 5.4
-
buildValueLabelProvider
public ValueLabelProvider<?> buildValueLabelProvider(Map<Class,ValueLabelProvider> configuration)
- Since:
- 5.4
-
componentReplacer
@Advise(serviceInterface=ComponentInstantiatorSource.class) public static void componentReplacer(MethodAdviceReceiver methodAdviceReceiver, ComponentOverride componentReplacer) throws NoSuchMethodException, SecurityException
-
buildComponentLibraryInfoSource
public static ComponentLibraryInfoSource buildComponentLibraryInfoSource(List<ComponentLibraryInfoSource> configuration, ChainBuilder chainBuilder)
-
addBuiltInComponentLibraryInfoSources
@Contribute(ComponentLibraryInfoSource.class) public static void addBuiltInComponentLibraryInfoSources(OrderedConfiguration<ComponentLibraryInfoSource> configuration)
-
-