Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts2.config
Class BeanSelectionProvider

    java.lang.Object
      org.apache.struts2.config.BeanSelectionProvider

All Implemented Interfaces:
  ConfigurationProvider

    public class BeanSelectionProvider

extends Object
implements ConfigurationProvider

Selects the implementations of key framework extension points, using the loaded property constants. The implementations are selected from the container builder using the name defined in its associated property. The default implementation name will always be "struts".

The following is a list of the allowed extension points:

Type | Property | Scope | Description
--- | --- | --- | ---
com.opensymphony.xwork2.ObjectFactory | struts.objectFactory | singleton | Creates actions, results, and interceptors
com.opensymphony.xwork2.ActionProxyFactory | struts.actionProxyFactory | singleton | Creates the ActionProxy
com.opensymphony.xwork2.util.ObjectTypeDeterminer | struts.objectTypeDeterminer | singleton | Determines what the key and and element class of a Map or Collection should be
org.apache.struts2.dispatcher.mapper.ActionMapper | struts.mapper.class | singleton | Determines the ActionMapping from a request and a URI from an ActionMapping
org.apache.struts2.dispatcher.multipart.MultiPartRequest | struts.multipart.parser | per request | Parses a multipart request (file upload)
org.apache.struts2.views.freemarker.FreemarkerManager | struts.freemarker.manager.classname | singleton | Loads and processes Freemarker templates
org.apache.struts2.views.velocity.VelocityManager | struts.velocity.manager.classname | singleton | Loads and processes Velocity templates

Implementations are selected using the value of its associated property. That property is used to determine the implementation by:

1. Trying to find an existing bean by that name in the container
2. Trying to find a class by that name, then creating a new bean factory for it
3. Creating a new delegation bean factory that delegates to the configured ObjectFactory at runtime

Finally, this class overrides certain properties if dev mode is enabled:

- `struts.i18n.reload = true`
- `struts.configuration.xml.reload = true`

Nested Class Summary
`(package private) class` | `BeanSelectionProvider.ObjectFactoryDelegateFactory`

Field Summary
`static String` | `DEFAULT_BEAN_NAME`
`private static Log` | `LOG`

Constructor Summary
`BeanSelectionProvider()`

Method Summary
`(package private) void` | `alias(Class type, String key, ContainerBuilder builder, Properties props)`
`(package private) void` | `alias(Class type, String key, ContainerBuilder builder, Properties props, Scope scope)`
`void` | `destroy()`
`void` | `init(Configuration configuration)`
`void` | `loadPackages()`
`boolean` | `needsReload()` Tells whether the ConfigurationProvider should reload its configuration
`void` | `register(ContainerBuilder builder, LocatableProperties props)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_BEAN_NAME

    public static final String DEFAULT_BEAN_NAME

See Also:
  Constant Field Values

### LOG

    private static final Log LOG

Constructor Detail

### BeanSelectionProvider

    public BeanSelectionProvider()

Method Detail

### destroy

    public void destroy()

  Specified by:
    `destroy` in interface `ConfigurationProvider`

### loadPackages

    public void loadPackages()
                      throws ConfigurationException

  Specified by:
    `loadPackages` in interface `ConfigurationProvider`
  Throws:
    `ConfigurationException`

### init

    public void init(Configuration configuration)
              throws ConfigurationException

  Specified by:
    `init` in interface `ConfigurationProvider`
  Throws:
    `ConfigurationException`

### needsReload

    public boolean needsReload()

  Description copied from interface: `ConfigurationProvider`
  Tells whether the ConfigurationProvider should reload its configuration

  Specified by:
    `needsReload` in interface `ConfigurationProvider`
  Returns:
    `true`, whether the ConfigurationProvider should reload its configuration, `false`otherwise.

### register

    public void register(ContainerBuilder builder,
                         LocatableProperties props)

  Specified by:
    `register` in interface `ConfigurationProvider`

### alias

    void alias(Class type,
               String key,
               ContainerBuilder builder,
               Properties props)

### alias

    void alias(Class type,
               String key,
               ContainerBuilder builder,
               Properties props,
               Scope scope)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.