org.pivot4j.pentaho.servlet.FacesDispatcherServlet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pivot4j-pentaho Show documentation
Show all versions of pivot4j-pentaho Show documentation
Pivot4J Pentatho is an OLAP analysis plugin for BI platform based on Pivot4J library.
The newest version!
package org.pivot4j.pentaho.servlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.faces.webapp.FacesServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class FacesDispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 9009308748116185472L;
private FacesServlet facesServlet;
private PluginServletContext contextWrapper;
private Map initParameters;
/**
* @return the initParameters
*/
public Map getInitParameters() {
return initParameters;
}
/**
* @param initParameters
* the initParameters to set
*/
public void setInitParameters(Map initParameters) {
this.initParameters = initParameters;
}
/**
* @return the contextListener
*/
protected PluginServletContext getContextWrapper() {
return contextWrapper;
}
/**
* @return facesServlet
*/
protected FacesServlet getFacesServlet() {
return facesServlet;
}
/**
* @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig)
*/
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
if (initParameters == null) {
this.initParameters = new HashMap();
}
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
this.contextWrapper = new PluginServletContext(
config.getServletContext(), initParameters);
contextWrapper.initialize();
this.facesServlet = new FacesServlet();
this.facesServlet.init(new PluginServletConfig(contextWrapper));
} finally {
Thread.currentThread().setContextClassLoader(loader);
}
}
/**
* @see javax.servlet.GenericServlet#destroy()
*/
@Override
public void destroy() {
this.contextWrapper.destroy();
this.contextWrapper = null;
this.facesServlet.destroy();
this.facesServlet = null;
super.destroy();
}
/**
* @see javax.servlet.http.HttpServlet#service(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse)
*/
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
PluginServletRequest wrappedRequest = new PluginServletRequest(
contextWrapper, (HttpServletRequest) request);
try {
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
wrappedRequest.initialize();
facesServlet.service(wrappedRequest, response);
} finally {
Thread.currentThread().setContextClassLoader(loader);
wrappedRequest.destroy();
}
}
}