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