Package org.apache.struts2.config

# Class StrutsXmlConfigurationProvider

java.lang.Object
org.apache.struts2.config.providers.XmlDocConfigurationProvider
org.apache.struts2.config.providers.XmlConfigurationProvider
org.apache.struts2.config.StrutsXmlConfigurationProvider

All Implemented Interfaces:
  `ConfigurationProvider`, `ContainerProvider`, `PackageProvider`

public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider
Override Xwork class so we can use an arbitrary config file

- ## Field Summary

  ### Fields inherited from class org.apache.struts2.config.providers.XmlConfigurationProvider

  `fileManager`

  ### Fields inherited from class org.apache.struts2.config.providers.XmlDocConfigurationProvider

  `allowlistClasses, configuration, declaredPackages, documents, dtdMappings, objectFactory, providerAllowlist, throwExceptionOnDuplicateBeans, valueSubstitutor`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StrutsXmlConfigurationProvider()`
  Constructs the Struts configuration provider using the default struts.xml and no ServletContext
  `StrutsXmlConfigurationProvider(String filename)`
  Constructs the configuration provider based on the provided config file
  `StrutsXmlConfigurationProvider(String filename, jakarta.servlet.ServletContext ctx)`
  Constructs the Struts configuration provider

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected URL`
  `findInFileSystem(String fileName)`
  `protected Iterator<URL>`
  `getConfigurationUrls(String fileName)`
  Look for the configuration file on the classpath and in the file system
  `void`
  `loadPackages()`
  Loads the packages for the configuration.
  `boolean`
  `needsReload()`
  Overrides needs reload to ensure it is only checked once per request
  `void`
  `register(ContainerBuilder containerBuilder, LocatableProperties props)`
  Registers beans and properties for the Container
  `String`
  `toString()`

  ### Methods inherited from class org.apache.struts2.config.providers.XmlConfigurationProvider

  `equals, getDocs, getFinalDocs, getURLs, hashCode, init, loadConfigurationFiles, parseFile, setFileManagerFactory`

  ### Methods inherited from class org.apache.struts2.config.providers.XmlDocConfigurationProvider

  `addAction, addAllowedMethodsToSet, addPackage, addResultTypes, allowAndLoadClass, buildActionConfig, buildAllowedMethods, buildExceptionMappings, buildInterceptorConfig, buildInterceptorList, buildPackageContext, buildResultConfig, buildResultParams, buildResults, buildResultTypeConfig, destroy, getDtdMappings, guessResultType, iterateChildren, iterateChildrenByTagName, iterateElementChildren, iterateElementChildren, loadClass, loadDefaultActionRef, loadDefaultClassRef, loadDefaultInterceptorRef, loadExtraConfiguration, loadGlobalAllowedMethods, loadGlobalExceptionMappings, loadGlobalResults, loadInterceptors, loadInterceptorStack, loadInterceptorStacks, lookupInterceptorReference, registerBean, registerBeanSelection, registerConstant, registerUnknownHandlerStack, setDtdMappings, setObjectFactory, setProviderAllowlist, setThrowExceptionOnDuplicateBeans, setValueSubstitutor, verifyAction, verifyInterceptor, verifyResultType`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### StrutsXmlConfigurationProvider

    public StrutsXmlConfigurationProvider()
    Constructs the Struts configuration provider using the default struts.xml and no ServletContext

  - ### StrutsXmlConfigurationProvider

    public StrutsXmlConfigurationProvider(String filename)
    Constructs the configuration provider based on the provided config file
    Parameters:
      `filename` - file with Struts configuration

  - ### StrutsXmlConfigurationProvider

    public StrutsXmlConfigurationProvider(String filename, jakarta.servlet.ServletContext ctx)
    Constructs the Struts configuration provider
    Parameters:
      `filename` - The filename to look for
      `ctx` - Our ServletContext

- ## Method Details

  - ### register

    public void register(ContainerBuilder containerBuilder, LocatableProperties props) throws ConfigurationException
    Description copied from interface: `ContainerProvider`
    Registers beans and properties for the Container
    Specified by:
      `register` in interface `ContainerProvider`
    Overrides:
      `register` in class `XmlConfigurationProvider`
    Parameters:
      `containerBuilder` - The builder to register beans with
      `props` - The properties to register constants with
    Throws:
      `ConfigurationException` - If anything goes wrong

  - ### loadPackages

    public void loadPackages()
    Description copied from interface: `PackageProvider`
    Loads the packages for the configuration.
    Specified by:
      `loadPackages` in interface `PackageProvider`
    Overrides:
      `loadPackages` in class `XmlConfigurationProvider`

  - ### getConfigurationUrls

    protected Iterator<URL> getConfigurationUrls(String fileName) throws IOException
    Look for the configuration file on the classpath and in the file system
    Overrides:
      `getConfigurationUrls` in class `XmlConfigurationProvider`
    Parameters:
      `fileName` - The file name to retrieve
    Throws:
      `IOException`
    See Also:
      - `XmlConfigurationProvider.getConfigurationUrls(java.lang.String)`

  - ### findInFileSystem

    protected URL findInFileSystem(String fileName) throws IOException
    Throws:
      `IOException`

  - ### needsReload

    public boolean needsReload()
    Overrides needs reload to ensure it is only checked once per request
    Specified by:
      `needsReload` in interface `ContainerProvider`
    Specified by:
      `needsReload` in interface `PackageProvider`
    Overrides:
      `needsReload` in class `XmlConfigurationProvider`
    Returns:
      true if the file has been changed since the last time we read it

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `XmlConfigurationProvider`