Class SpringWebApplicationFactory

  • All Implemented Interfaces:
    IWebApplicationFactory

    public class SpringWebApplicationFactory
    extends Object
    implements IWebApplicationFactory
    Implementation of IWebApplicationFactory that pulls the WebApplication object out of spring application context. Configuration example:
     <filter>
       <filter-name>MyApplication</filter-name>
       <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
       <init-param>
         <param-name>applicationFactoryClassName</param-name>
         <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
       </init-param>
     </filter>
     
    applicationBean init parameter can be used if there are multiple WebApplications defined on the spring application context. Example:
     <filter>
       <filter-name>MyApplication</filter-name>
       <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
       <init-param>
         <param-name>applicationFactoryClassName</param-name>
         <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
       </init-param>
       <init-param>
         <param-name>applicationBean</param-name>
         <param-value>phonebookApplication</param-value>
       </init-param>
     </filter>
     

    This factory is also capable of creating a WebApplication-specific application context (path to which is specified via the contextConfigLocation filter param) and chaining it to the global one

     <filter>
       <filter-name>MyApplication</filter-name>
       <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
       <init-param>
         <param-name>applicationFactoryClassName</param-name>
         <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
       </init-param>
       <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:com/myapplication/customers-app/context.xml</param-value>
       </init-param>
     </filter>
     
    Author:
    Igor Vaynberg (ivaynberg), Janne Hietamäki (jannehietamaki)
    • Method Detail

      • newApplicationContext

        protected org.springframework.web.context.ConfigurableWebApplicationContext newApplicationContext()
        Factory method used to create a new instance of the web application context, by default an instance o XmlWebApplicationContext will be created.
        Returns:
        application context instance
      • createWebApplicationContext

        protected final org.springframework.web.context.ConfigurableWebApplicationContext createWebApplicationContext​(org.springframework.web.context.WebApplicationContext parent,
                                                                                                                      WicketFilter filter)
                                                                                                               throws org.springframework.beans.BeansException
        Creates and initializes a new WebApplicationContext, with the given context as the parent. Based on the logic in Spring's FrameworkServlet#createWebApplicationContext()
        Parameters:
        parent - parent application context
        filter - wicket filter
        Returns:
        instance of web application context
        Throws:
        org.springframework.beans.BeansException
      • postProcessWebApplicationContext

        protected void postProcessWebApplicationContext​(org.springframework.web.context.ConfigurableWebApplicationContext wac,
                                                        WicketFilter filter)
        This is a hook for potential subclasses to perform additional processing on the context. Based on the logic in Spring's FrameworkServlet#postProcessWebApplicationContext()
        Parameters:
        wac - additional application context
        filter - wicket filter