001    /**
002     * Copyright (c) 2000-present 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 java.io.InputStream;
018    
019    import java.net.MalformedURLException;
020    import java.net.URL;
021    
022    import java.util.ArrayList;
023    import java.util.Collections;
024    import java.util.Enumeration;
025    import java.util.EventListener;
026    import java.util.Map;
027    import java.util.Set;
028    
029    import javax.servlet.Filter;
030    import javax.servlet.FilterRegistration;
031    import javax.servlet.FilterRegistration.Dynamic;
032    import javax.servlet.RequestDispatcher;
033    import javax.servlet.Servlet;
034    import javax.servlet.ServletContext;
035    import javax.servlet.ServletException;
036    import javax.servlet.ServletRegistration;
037    import javax.servlet.SessionCookieConfig;
038    import javax.servlet.SessionTrackingMode;
039    import javax.servlet.descriptor.JspConfigDescriptor;
040    
041    /**
042     * @author Michael Young
043     */
044    public class LiferayServletContext implements ServletContext {
045    
046            public LiferayServletContext(ServletContext servletContext) {
047                    _servletContext = servletContext;
048            }
049    
050            @Override
051            public Dynamic addFilter(String filterName, Class<? extends Filter> clazz) {
052                    return _servletContext.addFilter(filterName, clazz);
053            }
054    
055            @Override
056            public Dynamic addFilter(String filterName, Filter filter) {
057                    return _servletContext.addFilter(filterName, filter);
058            }
059    
060            @Override
061            public Dynamic addFilter(String filterName, String className) {
062                    return _servletContext.addFilter(filterName, className);
063            }
064    
065            @Override
066            public void addListener(Class<? extends EventListener> clazz) {
067                    _servletContext.addListener(clazz);
068            }
069    
070            @Override
071            public void addListener(String className) {
072                    _servletContext.addListener(className);
073            }
074    
075            @Override
076            public <T extends EventListener> void addListener(T eventListener) {
077                    _servletContext.addListener(eventListener);
078            }
079    
080            @Override
081            public ServletRegistration.Dynamic addServlet(
082                    String servletName, Class<? extends Servlet> clazz) {
083    
084                    return _servletContext.addServlet(servletName, clazz);
085            }
086    
087            @Override
088            public ServletRegistration.Dynamic addServlet(
089                    String servletName, Servlet servlet) {
090    
091                    return _servletContext.addServlet(servletName, servlet);
092            }
093    
094            @Override
095            public ServletRegistration.Dynamic addServlet(
096                    String servletName, String className) {
097    
098                    return _servletContext.addServlet(servletName, className);
099            }
100    
101            @Override
102            public <T extends Filter> T createFilter(Class<T> clazz)
103                    throws ServletException {
104    
105                    return _servletContext.createFilter(clazz);
106            }
107    
108            @Override
109            public <T extends EventListener> T createListener(Class<T> clazz)
110                    throws ServletException {
111    
112                    return _servletContext.createListener(clazz);
113            }
114    
115            @Override
116            public <T extends Servlet> T createServlet(Class<T> clazz)
117                    throws ServletException {
118    
119                    return _servletContext.createServlet(clazz);
120            }
121    
122            @Override
123            public void declareRoles(String... roleNames) {
124                    _servletContext.declareRoles(roleNames);
125            }
126    
127            @Override
128            public Object getAttribute(String name) {
129                    return _servletContext.getAttribute(name);
130            }
131    
132            @Override
133            public Enumeration<String> getAttributeNames() {
134                    return _servletContext.getAttributeNames();
135            }
136    
137            @Override
138            public ClassLoader getClassLoader() {
139                    return _servletContext.getClassLoader();
140            }
141    
142            @Override
143            public ServletContext getContext(String uriPath) {
144                    ServletContext servletContext = _servletContext.getContext(uriPath);
145    
146                    if (servletContext == _servletContext) {
147                            return this;
148                    }
149                    else {
150                            return servletContext;
151                    }
152            }
153    
154            @Override
155            public String getContextPath() {
156                    return _servletContext.getContextPath();
157            }
158    
159            @Override
160            public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
161                    return _servletContext.getDefaultSessionTrackingModes();
162            }
163    
164            @Override
165            public int getEffectiveMajorVersion() {
166                    return _servletContext.getEffectiveMajorVersion();
167            }
168    
169            @Override
170            public int getEffectiveMinorVersion() {
171                    return _servletContext.getEffectiveMinorVersion();
172            }
173    
174            @Override
175            public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
176                    return _servletContext.getEffectiveSessionTrackingModes();
177            }
178    
179            @Override
180            public FilterRegistration getFilterRegistration(String filterName) {
181                    return _servletContext.getFilterRegistration(filterName);
182            }
183    
184            @Override
185            public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
186                    return _servletContext.getFilterRegistrations();
187            }
188    
189            @Override
190            public String getInitParameter(String name) {
191                    return _servletContext.getInitParameter(name);
192            }
193    
194            @Override
195            public Enumeration<String> getInitParameterNames() {
196                    return _servletContext.getInitParameterNames();
197            }
198    
199            @Override
200            public JspConfigDescriptor getJspConfigDescriptor() {
201                    return _servletContext.getJspConfigDescriptor();
202            }
203    
204            @Override
205            public int getMajorVersion() {
206                    return _servletContext.getMajorVersion();
207            }
208    
209            @Override
210            public String getMimeType(String file) {
211                    return _servletContext.getMimeType(file);
212            }
213    
214            @Override
215            public int getMinorVersion() {
216                    return _servletContext.getMinorVersion();
217            }
218    
219            @Override
220            public RequestDispatcher getNamedDispatcher(String name) {
221                    RequestDispatcher requestDispatcher =
222                            _servletContext.getNamedDispatcher(name);
223    
224                    if (requestDispatcher != null) {
225                            requestDispatcher = new LiferayRequestDispatcher(
226                                    requestDispatcher, name);
227                    }
228    
229                    return requestDispatcher;
230            }
231    
232            @Override
233            public String getRealPath(String path) {
234                    return _servletContext.getRealPath(path);
235            }
236    
237            @Override
238            public RequestDispatcher getRequestDispatcher(String path) {
239                    RequestDispatcher requestDispatcher =
240                            _servletContext.getRequestDispatcher(path);
241    
242                    if (requestDispatcher != null) {
243                            requestDispatcher = new LiferayRequestDispatcher(
244                                    requestDispatcher, path);
245                    }
246    
247                    return requestDispatcher;
248            }
249    
250            @Override
251            public URL getResource(String path) throws MalformedURLException {
252                    return _servletContext.getResource(path);
253            }
254    
255            @Override
256            public InputStream getResourceAsStream(String path) {
257                    return _servletContext.getResourceAsStream(path);
258            }
259    
260            @Override
261            public Set<String> getResourcePaths(String path) {
262                    return _servletContext.getResourcePaths(path);
263            }
264    
265            @Override
266            public String getServerInfo() {
267                    return _servletContext.getServerInfo();
268            }
269    
270            /**
271             * @deprecated As of 7.0.0
272             */
273            @Deprecated
274            @Override
275            public Servlet getServlet(String name) {
276                    return null;
277            }
278    
279            @Override
280            public String getServletContextName() {
281                    return _servletContext.getServletContextName();
282            }
283    
284            /**
285             * @deprecated As of 7.0.0
286             */
287            @Deprecated
288            @Override
289            public Enumeration<String> getServletNames() {
290                    return Collections.enumeration(new ArrayList<String>());
291            }
292    
293            @Override
294            public ServletRegistration getServletRegistration(String servletName) {
295                    return _servletContext.getServletRegistration(servletName);
296            }
297    
298            @Override
299            public Map<String, ? extends ServletRegistration>
300                    getServletRegistrations() {
301    
302                    return _servletContext.getServletRegistrations();
303            }
304    
305            /**
306             * @deprecated As of 7.0.0
307             */
308            @Deprecated
309            @Override
310            public Enumeration<Servlet> getServlets() {
311                    return Collections.enumeration(new ArrayList<Servlet>());
312            }
313    
314            @Override
315            public SessionCookieConfig getSessionCookieConfig() {
316                    return _servletContext.getSessionCookieConfig();
317            }
318    
319            /**
320             * @deprecated As of 7.0.0
321             */
322            @Deprecated
323            @Override
324            public void log(Exception exception, String message) {
325                    _servletContext.log(message, exception);
326            }
327    
328            @Override
329            public void log(String message) {
330                    _servletContext.log(message);
331            }
332    
333            @Override
334            public void log(String message, Throwable t) {
335                    _servletContext.log(message, t);
336            }
337    
338            @Override
339            public void removeAttribute(String name) {
340                    _servletContext.removeAttribute(name);
341            }
342    
343            @Override
344            public void setAttribute(String name, Object value) {
345                    _servletContext.setAttribute(name, value);
346            }
347    
348            @Override
349            public boolean setInitParameter(String name, String value) {
350                    return _servletContext.setInitParameter(name, value);
351            }
352    
353            @Override
354            public void setSessionTrackingModes(
355                    Set<SessionTrackingMode> sessionTrackingModes) {
356    
357                    _servletContext.setSessionTrackingModes(sessionTrackingModes);
358            }
359    
360            @Override
361            public String toString() {
362                    return _servletContext.toString();
363            }
364    
365            private final ServletContext _servletContext;
366    
367    }