This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Overview

Other MyFaces Extensions

Community

Development

Sponsorship

Unknown macro: {iframe}

Your browser does not support iframes

Child pages
  • JSF Config and SPI
Skip to end of metadata
Go to start of metadata

JSF Module Configuration

CODI provides default values via CDI beans. Therefore, it's possible to provide an alternative bean (via the std. @Specializes or @Alternative mechanism provided by CDI). Furthermore, there are add-ons e.g. for using the web.xml for the configuration (see External Resources).

Hint for Weld v1.1.1-v1.1.3

In case of those versions of Weld you have to use the alternative-implementation module

Hint for Weld v1.1.4+

In case of Weld v1.1.4+ you can use @Specializes again and you don't need alternative-implementation module

Example

Custom config which overrides the default value
@Specializes
@ApplicationScoped
public class CustomConversationConfig extends ConversationConfig
{
    @Override
    public int getConversationTimeoutInMinutes()
    {
        return 45;
    }
}

CodiCoreConfig

  • isAdvancedQualifierRequiredForDependencyInjection
  • isConfigurationLoggingEnabled
  • isInvalidBeanCreationEventEnabled

WindowContextConfig

  • isUrlParameterSupported
  • isUnknownWindowIdsAllowed
  • isAddWindowIdToActionUrlsEnabled
  • getWindowContextTimeoutInMinutes
  • getMaxWindowContextCount
  • isCloseEmptyWindowContextsEnabled
  • isEagerWindowContextDetectionEnabled
  • isCreateWindowContextEventEnabled
  • isCloseWindowContextEventEnabled

ConversationConfig

  • getConversationTimeoutInMinutes
  • isScopeBeanEventEnabled
  • isAccessBeanEventEnabled
  • isUnscopeBeanEventEnabled
  • isStartConversationEventEnabled
  • isCloseConversationEventEnabled
  • isRestartConversationEventEnabled
  • isConversationRequiredEnabled

JsfModuleConfig

  • isInitialRedirectDisabled
  • isUseViewConfigsAsNavigationCasesEnabled
  • isInvalidValueAwareMessageInterpolatorEnabled
  • isAlwaysKeepMessages

JSF Module SPI

  • ConversationFactory (and EditableConversation and ConversationKey)
  • WindowContextFactory (and EditableWindowContext and JsfModuleConfig)
  • WindowContextManagerFactory (and EditableWindowContextManager and JsfModuleConfig)
  • WindowContextQuotaHandler
  • WindowHandler
  • LifecycleAwareWindowHandler
  • RenderKitWrapperFactory
  • ViewConfigExtractor (and EditableViewConfigDescriptor and LifecycleAwarePageBeanDescriptor and RequestLifecycleCallbackEntry)

ConversationFactory

A ConversationFactory is responsible for creating new Conversation instances (btw. EditableConversation) based on a given ConversationKey and ConversationConfig.

The default implementation is a bean - so it's possible to use the @Alternative mechanism of CDI for replacing it.

WindowContextFactory

A WindowContextFactory is responsible for creating new WindowContext instances (btw. EditableWindowContext) based on a given id and JsfModuleConfig.

There is no default implementation. So it's just required to implement a CDI bean which implements the interface.

WindowContextManagerFactory

A WindowContextManagerFactory is responsible for creating new WindowContextManager instances (btw. EditableWindowContextManager based on a given JsfModuleConfig.

There is no default implementation. So it's just required to implement a CDI bean which implements the interface.

WindowContextQuotaHandler

A WindowContextQuotaHandler is responsible for checking the max. count of WindowContext instances and handling a possible violation (e.g. cleaning up the eldest WindowContext).

The default implementation is a bean - so it's possible to use the @Alternative mechanism of CDI for replacing it.

WindowHandler

A WindowHandler is responsible for creating and restoring the id for/of the current window. If a component library already supports window id's it's possible to provide an adapter which uses the window-id provided by the component library. Furthermore, it's responsible for encoding URLs and for sending redirects based on the current window-id.

The default implementation is a bean - so it's possible to use the @Alternative mechanism of CDI for replacing it.

LifecycleAwareWindowHandler

A WindowHandler that is aware of the JSF lifecycle.

RenderKitWrapperFactory

Component libs like Trinidad use very special renderkits. This factory allows support-modules to customize the default behavior of CODI.

ViewConfigExtractor

A ViewConfigExtractor creates all view-config meta-data for a given ViewConfig class and returns the result as EditableViewConfigDescriptor . It also uses LifecycleAwarePageBeanDescriptor which is an extended PageBeanDescriptor . This descriptor exposes all supported view-controller methods as well as RequestLifecycleCallbackEntry for a given JSF PhaseId which provides the before- and after-callbacks.

With a custom implementation it's possible to customize e.g. the naming convention of the pages. If the custom implementation is annotated with @Advanced it's possible to wrap the default implementation for delegating to it. The only requirement is a field called defaultViewConfigExtractor . Furthermore, because this artifact is used during the bootstrapping process of CDI it's required to configure it for the environment - see Environment-Config Options

  • No labels