Class PluginModuleXmlConfigurationProvider

  • All Implemented Interfaces:
    com.opensymphony.xwork2.config.ConfigurationProvider, com.opensymphony.xwork2.config.ContainerProvider, com.opensymphony.xwork2.config.PackageProvider

    public class PluginModuleXmlConfigurationProvider
    extends Object
    implements com.opensymphony.xwork2.config.ConfigurationProvider

    Parses an XWork module element from a plugin for loading by the Struts configuration.

    This class was intended to be a subclass of XmlConfigurationProvider, however, due to the restricted visibility of some of its members it was not possible to achieve this cleanly.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addAction​(Element actionElement, com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)  
      protected com.opensymphony.xwork2.config.entities.PackageConfig addPackage​(Element packageElement)
      Create a PackageConfig from an XML element representing it.
      protected List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> addResultTypes​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element element)  
      protected Set<String> buildAllowedMethods​(Element element, com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext)  
      protected List<com.opensymphony.xwork2.config.entities.ExceptionMappingConfig> buildExceptionMappings​(Element element)
      Build a list of exception mapping objects from below a given XML element.
      protected List<com.opensymphony.xwork2.config.entities.InterceptorMapping> buildInterceptorList​(Element element, com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)  
      protected com.opensymphony.xwork2.config.entities.PackageConfig.Builder buildPackageContext​(Element packageElement)
      This method builds a package context by looking for the parents of this new package.
      protected Map<String,​com.opensymphony.xwork2.config.entities.ResultConfig> buildResults​(Element element, com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)
      Build a map of ResultConfig objects from below a given XML element.
      void destroy()  
      protected String guessResultType​(String type)  
      void init​(com.opensymphony.xwork2.config.Configuration configuration)  
      protected void loadDefaultActionRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element element)  
      protected void loadDefaultClassRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element element)  
      protected void loadDefaultInterceptorRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element element)  
      protected void loadGlobalAllowedMethods​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element packageElement)  
      protected void loadGlobalExceptionMappings​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element packageElement)
      Load all the global results for this package from the XML element.
      protected void loadGlobalResults​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext, Element packageElement, List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)
      Load all the global results for this package from the XML element.
      protected void loadInterceptors​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder context, Element element)  
      protected com.opensymphony.xwork2.config.entities.InterceptorStackConfig loadInterceptorStack​(Element element, com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)  
      protected void loadInterceptorStacks​(Element element, com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)  
      void loadPackages()  
      protected void loadPackagesImpl()  
      boolean needsReload()  
      void register​(com.opensymphony.xwork2.inject.ContainerBuilder containerBuilder, com.opensymphony.xwork2.util.location.LocatableProperties locatableProperties)  
      void setObjectFactory​(com.opensymphony.xwork2.ObjectFactory objectFactory)  
      protected boolean verifyAction​(String className, com.opensymphony.xwork2.util.location.Location loc)  
      protected Class verifyResultType​(String className, com.opensymphony.xwork2.util.location.Location loc)  
    • Constructor Detail

      • PluginModuleXmlConfigurationProvider

        public PluginModuleXmlConfigurationProvider​(org.dom4j.Element element,
                                                    com.atlassian.plugin.Plugin plugin,
                                                    Runnable disableModuleDescriptor)
    • Method Detail

      • setObjectFactory

        public void setObjectFactory​(com.opensymphony.xwork2.ObjectFactory objectFactory)
      • init

        public void init​(com.opensymphony.xwork2.config.Configuration configuration)
                  throws com.opensymphony.xwork2.config.ConfigurationException
        Specified by:
        init in interface com.opensymphony.xwork2.config.ContainerProvider
        Specified by:
        init in interface com.opensymphony.xwork2.config.PackageProvider
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • destroy

        public void destroy()
        Specified by:
        destroy in interface com.opensymphony.xwork2.config.ContainerProvider
      • needsReload

        public boolean needsReload()
        Specified by:
        needsReload in interface com.opensymphony.xwork2.config.ContainerProvider
        Specified by:
        needsReload in interface com.opensymphony.xwork2.config.PackageProvider
      • register

        public void register​(com.opensymphony.xwork2.inject.ContainerBuilder containerBuilder,
                             com.opensymphony.xwork2.util.location.LocatableProperties locatableProperties)
                      throws com.opensymphony.xwork2.config.ConfigurationException
        Specified by:
        register in interface com.opensymphony.xwork2.config.ContainerProvider
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • loadPackages

        public void loadPackages()
                          throws com.opensymphony.xwork2.config.ConfigurationException
        Specified by:
        loadPackages in interface com.opensymphony.xwork2.config.PackageProvider
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • loadPackagesImpl

        protected void loadPackagesImpl()
                                 throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • addAction

        protected void addAction​(Element actionElement,
                                 com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                 List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)
                          throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • verifyAction

        protected boolean verifyAction​(String className,
                                       com.opensymphony.xwork2.util.location.Location loc)
      • addPackage

        protected com.opensymphony.xwork2.config.entities.PackageConfig addPackage​(Element packageElement)
                                                                            throws com.opensymphony.xwork2.config.ConfigurationException
        Create a PackageConfig from an XML element representing it.
        Parameters:
        packageElement - the given XML element
        Returns:
        the package config
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException - in case of configuration errors
      • addResultTypes

        protected List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> addResultTypes​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                                                                                Element element)
      • verifyResultType

        protected Class verifyResultType​(String className,
                                         com.opensymphony.xwork2.util.location.Location loc)
      • buildInterceptorList

        protected List<com.opensymphony.xwork2.config.entities.InterceptorMapping> buildInterceptorList​(Element element,
                                                                                                        com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)
                                                                                                 throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • buildPackageContext

        protected com.opensymphony.xwork2.config.entities.PackageConfig.Builder buildPackageContext​(Element packageElement)

        This method builds a package context by looking for the parents of this new package.

        If no parents are found, it will return a root package.

        Parameters:
        packageElement - the package element
        Returns:
        the package config builder
      • buildResults

        protected Map<String,​com.opensymphony.xwork2.config.entities.ResultConfig> buildResults​(Element element,
                                                                                                      com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                                                                                      List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)
        Build a map of ResultConfig objects from below a given XML element.
        Parameters:
        element - the given XML element
        packageContext - the package context
        Returns:
        map of result config objects
      • guessResultType

        protected String guessResultType​(String type)
      • buildExceptionMappings

        protected List<com.opensymphony.xwork2.config.entities.ExceptionMappingConfig> buildExceptionMappings​(Element element)
        Build a list of exception mapping objects from below a given XML element.
        Parameters:
        element - the given XML element
        Returns:
        list of exception mapping config objects
      • buildAllowedMethods

        protected Set<String> buildAllowedMethods​(Element element,
                                                  com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext)
      • loadDefaultInterceptorRef

        protected void loadDefaultInterceptorRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                                 Element element)
      • loadDefaultActionRef

        protected void loadDefaultActionRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                            Element element)
      • loadGlobalResults

        protected void loadGlobalResults​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                         Element packageElement,
                                         List<com.opensymphony.xwork2.config.entities.ResultTypeConfig> packageResultTypes)
        Load all the global results for this package from the XML element.
        Parameters:
        packageContext - the package context
        packageElement - the given XML element
      • loadGlobalAllowedMethods

        protected void loadGlobalAllowedMethods​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                                Element packageElement)
      • loadDefaultClassRef

        protected void loadDefaultClassRef​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                           Element element)
      • loadGlobalExceptionMappings

        protected void loadGlobalExceptionMappings​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageContext,
                                                   Element packageElement)
        Load all the global results for this package from the XML element.
        Parameters:
        packageContext - the package context
        packageElement - the given XML element
      • loadInterceptorStack

        protected com.opensymphony.xwork2.config.entities.InterceptorStackConfig loadInterceptorStack​(Element element,
                                                                                                      com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)
                                                                                               throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • loadInterceptorStacks

        protected void loadInterceptorStacks​(Element element,
                                             com.opensymphony.xwork2.config.entities.PackageConfig.Builder context)
                                      throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException
      • loadInterceptors

        protected void loadInterceptors​(com.opensymphony.xwork2.config.entities.PackageConfig.Builder context,
                                        Element element)
                                 throws com.opensymphony.xwork2.config.ConfigurationException
        Throws:
        com.opensymphony.xwork2.config.ConfigurationException