| /* |
| * $Id$ |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.tiles.web.util; |
| |
| import java.io.InputStream; |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| import java.util.Enumeration; |
| import java.util.Hashtable; |
| import java.util.Set; |
| |
| import javax.servlet.RequestDispatcher; |
| import javax.servlet.Servlet; |
| import javax.servlet.ServletConfig; |
| import javax.servlet.ServletContext; |
| import javax.servlet.ServletException; |
| |
| /** |
| * Adapts a servlet config and a servlet context to become a unique servlet |
| * context. |
| * |
| * @version $Rev$ $Date$ |
| */ |
| @SuppressWarnings("deprecation") |
| public class ServletContextAdapter implements ServletContext { |
| |
| /** |
| * The root context to use. |
| */ |
| private ServletContext rootContext; |
| |
| /** |
| * The union of init parameters of {@link ServletConfig} and |
| * {@link ServletContext}. |
| */ |
| private Hashtable<String, String> initParameters; |
| |
| |
| /** |
| * Constructor. |
| * |
| * @param config The servlet configuration object. |
| */ |
| @SuppressWarnings("unchecked") |
| public ServletContextAdapter(ServletConfig config) { |
| this.rootContext = config.getServletContext(); |
| initParameters = new Hashtable<String, String>(); |
| Enumeration<String> enumeration = rootContext |
| .getInitParameterNames(); |
| while (enumeration.hasMoreElements()) { |
| String paramName = enumeration.nextElement(); |
| initParameters.put(paramName, rootContext |
| .getInitParameter(paramName)); |
| } |
| enumeration = config.getInitParameterNames(); |
| while (enumeration.hasMoreElements()) { |
| String paramName = enumeration.nextElement(); |
| initParameters.put(paramName, config.getInitParameter(paramName)); |
| } |
| } |
| |
| /** {@inheritDoc} */ |
| public ServletContext getContext(String string) { |
| return rootContext.getContext(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public int getMajorVersion() { |
| return rootContext.getMajorVersion(); |
| } |
| |
| /** {@inheritDoc} */ |
| public int getMinorVersion() { |
| return rootContext.getMinorVersion(); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getMimeType(String string) { |
| return rootContext.getMimeType(string); |
| } |
| |
| /** {@inheritDoc} */ |
| @SuppressWarnings({ "rawtypes" }) |
| public Set getResourcePaths(String string) { |
| return rootContext.getResourcePaths(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public URL getResource(String string) throws MalformedURLException { |
| return rootContext.getResource(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public InputStream getResourceAsStream(String string) { |
| return rootContext.getResourceAsStream(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public RequestDispatcher getRequestDispatcher(String string) { |
| return rootContext.getRequestDispatcher(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public RequestDispatcher getNamedDispatcher(String string) { |
| return rootContext.getNamedDispatcher(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public Servlet getServlet(String string) throws ServletException { |
| return rootContext.getServlet(string); |
| } |
| |
| /** {@inheritDoc} */ |
| @SuppressWarnings("rawtypes") |
| public Enumeration getServlets() { |
| return rootContext.getServlets(); //To change body of implemented methods use File | Settings | File Templates. |
| } |
| |
| /** {@inheritDoc} */ |
| @SuppressWarnings("rawtypes") |
| public Enumeration getServletNames() { |
| return rootContext.getServletNames(); |
| } |
| |
| /** {@inheritDoc} */ |
| public void log(String string) { |
| rootContext.log(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public void log(Exception exception, String string) { |
| rootContext.log(exception, string); |
| } |
| |
| /** {@inheritDoc} */ |
| public void log(String string, Throwable throwable) { |
| rootContext.log(string, throwable); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getRealPath(String string) { |
| return rootContext.getRealPath(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getServerInfo() { |
| return rootContext.getServerInfo(); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getInitParameter(String string) { |
| return initParameters.get(string); |
| } |
| |
| /** {@inheritDoc} */ |
| @SuppressWarnings("rawtypes") |
| public Enumeration getInitParameterNames() { |
| return initParameters.keys(); |
| } |
| |
| /** {@inheritDoc} */ |
| public Object getAttribute(String string) { |
| return rootContext.getAttribute(string); |
| } |
| |
| /** {@inheritDoc} */ |
| @SuppressWarnings("rawtypes") |
| public Enumeration getAttributeNames() { |
| return rootContext.getAttributeNames(); |
| } |
| |
| /** {@inheritDoc} */ |
| public void setAttribute(String string, Object object) { |
| rootContext.setAttribute(string, object); |
| } |
| |
| /** {@inheritDoc} */ |
| public void removeAttribute(String string) { |
| rootContext.removeAttribute(string); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getServletContextName() { |
| return rootContext.getServletContextName(); |
| } |
| |
| /** {@inheritDoc} */ |
| public String getContextPath() { |
| return rootContext.getContextPath(); |
| } |
| } |