001
014
015 package com.liferay.portal.kernel.servlet;
016
017 import com.liferay.portal.kernel.util.InstanceFactory;
018
019 import javax.servlet.Servlet;
020 import javax.servlet.ServletContext;
021 import javax.servlet.http.HttpServlet;
022
023
031 public class PortalDelegateServlet extends SecureServlet {
032
033 @Override
034 protected void doPortalDestroy() {
035 PortalDelegatorServlet.removeDelegate(_subContext);
036
037 servlet.destroy();
038 }
039
040 @Override
041 protected void doPortalInit() throws Exception {
042 ServletContext servletContext = servletConfig.getServletContext();
043
044 ClassLoader classLoader = (ClassLoader)servletContext.getAttribute(
045 PluginContextListener.PLUGIN_CLASS_LOADER);
046
047 String servletClass = servletConfig.getInitParameter("servlet-class");
048
049 _subContext = servletConfig.getInitParameter("sub-context");
050
051 if (_subContext == null) {
052 _subContext = getServletName();
053 }
054
055 servlet = (Servlet)InstanceFactory.newInstance(
056 classLoader, servletClass);
057
058 if (!(servlet instanceof HttpServlet)) {
059 throw new IllegalArgumentException(
060 "servlet-class is not an instance of " +
061 HttpServlet.class.getName());
062 }
063
064 servlet.init(servletConfig);
065
066 PortalDelegatorServlet.addDelegate(_subContext, (HttpServlet)servlet);
067 }
068
069 private String _subContext;
070
071 }