001    /**
002     * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.apache.bridges.struts;
016    
017    import com.liferay.portal.kernel.util.ContextPathUtil;
018    
019    import java.io.InputStream;
020    
021    import java.net.MalformedURLException;
022    import java.net.URL;
023    
024    import java.util.ArrayList;
025    import java.util.Collections;
026    import java.util.Enumeration;
027    import java.util.Set;
028    
029    import javax.servlet.RequestDispatcher;
030    import javax.servlet.Servlet;
031    import javax.servlet.ServletContext;
032    
033    /**
034     * @author Michael Young
035     */
036    public class LiferayServletContext implements ServletContext {
037    
038            public LiferayServletContext(ServletContext servletContext) {
039                    _servletContext = servletContext;
040            }
041    
042            public Object getAttribute(String name) {
043                    return _servletContext.getAttribute(name);
044            }
045    
046            public Enumeration<String> getAttributeNames() {
047                    return _servletContext.getAttributeNames();
048            }
049    
050            public ServletContext getContext(String uriPath) {
051                    ServletContext servletContext = _servletContext.getContext(uriPath);
052    
053                    if (servletContext == _servletContext) {
054                            return this;
055                    }
056                    else {
057                            return servletContext;
058                    }
059            }
060    
061            public String getContextPath() {
062                    return ContextPathUtil.getContextPath(_servletContext);
063            }
064    
065            public String getInitParameter(String name) {
066                    return _servletContext.getInitParameter(name);
067            }
068    
069            public Enumeration<String> getInitParameterNames() {
070                    return _servletContext.getInitParameterNames();
071            }
072    
073            public int getMajorVersion() {
074                    return _servletContext.getMajorVersion();
075            }
076    
077            public String getMimeType(String file) {
078                    return _servletContext.getMimeType(file);
079            }
080    
081            public int getMinorVersion() {
082                    return _servletContext.getMinorVersion();
083            }
084    
085            public RequestDispatcher getNamedDispatcher(String name) {
086                    RequestDispatcher requestDispatcher =
087                            _servletContext.getNamedDispatcher(name);
088    
089                    if (requestDispatcher != null) {
090                            requestDispatcher = new LiferayRequestDispatcher(
091                                    requestDispatcher, name);
092                    }
093    
094                    return requestDispatcher;
095            }
096    
097            public String getRealPath(String path) {
098                    return _servletContext.getRealPath(path);
099            }
100    
101            public RequestDispatcher getRequestDispatcher(String path) {
102                    RequestDispatcher requestDispatcher =
103                            _servletContext.getRequestDispatcher(path);
104    
105                    if (requestDispatcher != null) {
106                            requestDispatcher = new LiferayRequestDispatcher(
107                                    requestDispatcher, path);
108                    }
109    
110                    return requestDispatcher;
111            }
112    
113            public URL getResource(String path) throws MalformedURLException {
114                    return _servletContext.getResource(path);
115            }
116    
117            public InputStream getResourceAsStream(String path) {
118                    return _servletContext.getResourceAsStream(path);
119            }
120    
121            public Set<String> getResourcePaths(String path) {
122                    return _servletContext.getResourcePaths(path);
123            }
124    
125            public String getServerInfo() {
126                    return _servletContext.getServerInfo();
127            }
128    
129            public Servlet getServlet(String name) {
130                    return null;
131            }
132    
133            public String getServletContextName() {
134                    return _servletContext.getServletContextName();
135            }
136    
137            public Enumeration<String> getServletNames() {
138                    return Collections.enumeration(new ArrayList<String>());
139            }
140    
141            public Enumeration<Servlet> getServlets() {
142                    return Collections.enumeration(new ArrayList<Servlet>());
143            }
144    
145            public void log(Exception exception, String message) {
146                    _servletContext.log(message, exception);
147            }
148    
149            public void log(String message) {
150                    _servletContext.log(message);
151            }
152    
153            public void log(String message, Throwable t) {
154                    _servletContext.log(message, t);
155            }
156    
157            public void removeAttribute(String name) {
158                    _servletContext.removeAttribute(name);
159            }
160    
161            public void setAttribute(String name, Object value) {
162                    _servletContext.setAttribute(name, value);
163            }
164    
165            @Override
166            public String toString() {
167                    return _servletContext.toString();
168            }
169    
170            private ServletContext _servletContext;
171    
172    }