Class SpringWebApplicationFactory

java.lang.Object
org.apache.wicket.spring.SpringWebApplicationFactory
All Implemented Interfaces:
IWebApplicationFactory
Direct Known Subclasses:
AnnotationConfigSpringWebApplicationFactory

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)
  • Constructor Details

  • Method Details

    • getContextConfigLocation

      protected final String getContextConfigLocation(WicketFilter filter)
      Returns location of context config that will be used to create a WebApplication -specific application context.
      Parameters:
      filter -
      Returns:
      location of context config
    • 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 of XmlWebApplicationContext will be created.
      Returns:
      application context instance
    • createApplication

      Description copied from interface: IWebApplicationFactory
      Create application object
      Specified by:
      createApplication in interface IWebApplicationFactory
      Parameters:
      filter - the wicket filter
      Returns:
      application object 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
    • destroy

      public void destroy(WicketFilter filter)
      Description copied from interface: IWebApplicationFactory
      Called when the filter instance that used this factory is destroyed
      Specified by:
      destroy in interface IWebApplicationFactory
      Parameters:
      filter - the wicket filter