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 = servletContext.getClassLoader();
045
046 String servletClass = servletConfig.getInitParameter("servlet-class");
047
048 _subContext = servletConfig.getInitParameter("sub-context");
049
050 if (_subContext == null) {
051 _subContext = getServletName();
052 }
053
054 servlet = (Servlet)InstanceFactory.newInstance(
055 classLoader, servletClass);
056
057 if (!(servlet instanceof HttpServlet)) {
058 throw new IllegalArgumentException(
059 "servlet-class is not an instance of " +
060 HttpServlet.class.getName());
061 }
062
063 servlet.init(servletConfig);
064
065 PortalDelegatorServlet.addDelegate(_subContext, (HttpServlet)servlet);
066 }
067
068 private String _subContext;
069
070 }