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.Dynamic;
033    import javax.servlet.FilterRegistration;
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            public <T extends EventListener> void addListener(T eventListener) {
078                    _servletContext.addListener(eventListener);
079            }
080    
081            @Override
082            public ServletRegistration.Dynamic addServlet(
083                    String servletName, Class<? extends Servlet> clazz) {
084    
085                    return _servletContext.addServlet(servletName, clazz);
086            }
087    
088            @Override
089            public ServletRegistration.Dynamic addServlet(
090                    String servletName, Servlet servlet) {
091    
092                    return _servletContext.addServlet(servletName, servlet);
093            }
094    
095            @Override
096            public ServletRegistration.Dynamic addServlet(
097                    String servletName, String className) {
098    
099                    return _servletContext.addServlet(servletName, className);
100            }
101    
102            @Override
103            public <T extends Filter> T createFilter(Class<T> clazz)
104                    throws ServletException {
105    
106                    return _servletContext.createFilter(clazz);
107            }
108    
109            @Override
110            public <T extends EventListener> T createListener(Class<T> clazz)
111                    throws ServletException {
112    
113                    return _servletContext.createListener(clazz);
114            }
115    
116            @Override
117            public <T extends Servlet> T createServlet(Class<T> clazz)
118                    throws ServletException {
119    
120                    return _servletContext.createServlet(clazz);
121            }
122    
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 ContextPathUtil.getContextPath(_servletContext);
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            @Override
271            public Servlet getServlet(String name) {
272                    return null;
273            }
274    
275            @Override
276            public String getServletContextName() {
277                    return _servletContext.getServletContextName();
278            }
279    
280            @Override
281            public Enumeration<String> getServletNames() {
282                    return Collections.enumeration(new ArrayList<String>());
283            }
284    
285            @Override
286            public ServletRegistration getServletRegistration(String servletName) {
287                    return _servletContext.getServletRegistration(servletName);
288            }
289    
290            @Override
291            public Map<String, ? extends ServletRegistration>
292                    getServletRegistrations() {
293    
294                    return _servletContext.getServletRegistrations();
295            }
296    
297            @Override
298            public Enumeration<Servlet> getServlets() {
299                    return Collections.enumeration(new ArrayList<Servlet>());
300            }
301    
302            @Override
303            public SessionCookieConfig getSessionCookieConfig() {
304                    return _servletContext.getSessionCookieConfig();
305            }
306    
307            @Override
308            public void log(Exception exception, String message) {
309                    _servletContext.log(message, exception);
310            }
311    
312            @Override
313            public void log(String message) {
314                    _servletContext.log(message);
315            }
316    
317            @Override
318            public void log(String message, Throwable t) {
319                    _servletContext.log(message, t);
320            }
321    
322            @Override
323            public void removeAttribute(String name) {
324                    _servletContext.removeAttribute(name);
325            }
326    
327            @Override
328            public void setAttribute(String name, Object value) {
329                    _servletContext.setAttribute(name, value);
330            }
331    
332            @Override
333            public boolean setInitParameter(String name, String value) {
334                    return _servletContext.setInitParameter(name, value);
335            }
336    
337            @Override
338            public void setSessionTrackingModes(
339                    Set<SessionTrackingMode> sessionTrackingModes) {
340    
341                    _servletContext.setSessionTrackingModes(sessionTrackingModes);
342            }
343    
344            @Override
345            public String toString() {
346                    return _servletContext.toString();
347            }
348    
349            private ServletContext _servletContext;
350    
351    }