Package org.apache.wicket.spring
Class SpringWebApplicationFactory
- java.lang.Object
-
- org.apache.wicket.spring.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 thecontextConfigLocation
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 Summary
Constructors Constructor Description SpringWebApplicationFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WebApplication
createApplication(WicketFilter filter)
Create application objectprotected org.springframework.web.context.ConfigurableWebApplicationContext
createWebApplicationContext(org.springframework.web.context.WebApplicationContext parent, WicketFilter filter)
Creates and initializes a newWebApplicationContext
, with the given context as the parent.void
destroy(WicketFilter filter)
Called when the filter instance that used this factory is destroyedprotected String
getContextConfigLocation(WicketFilter filter)
Returns location of context config that will be used to create aWebApplication
-specific application context.protected org.springframework.web.context.ConfigurableWebApplicationContext
newApplicationContext()
Factory method used to create a new instance of the web application context, by default an instance oXmlWebApplicationContext
will be created.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.
-
-
-
Constructor Detail
-
SpringWebApplicationFactory
public SpringWebApplicationFactory()
-
-
Method Detail
-
getContextConfigLocation
protected final String getContextConfigLocation(WicketFilter filter)
Returns location of context config that will be used to create aWebApplication
-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 oXmlWebApplicationContext
will be created.- Returns:
- application context instance
-
createApplication
public WebApplication createApplication(WicketFilter filter)
Description copied from interface:IWebApplicationFactory
Create application object- Specified by:
createApplication
in interfaceIWebApplicationFactory
- Parameters:
filter
- the wicket filter- Returns:
- application object instance
- See Also:
IWebApplicationFactory.createApplication(WicketFilter)
-
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 newWebApplicationContext
, with the given context as the parent. Based on the logic in Spring's FrameworkServlet#createWebApplicationContext()- Parameters:
parent
- parent application contextfilter
- 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 contextfilter
- wicket filter
-
destroy
public void destroy(WicketFilter filter)
Called when the filter instance that used this factory is destroyed- Specified by:
destroy
in interfaceIWebApplicationFactory
- Parameters:
filter
- the wicket filter
-
-