    001package org.apache.turbine.services.servlet;
    002
    003
    004/*
    005 * Licensed to the Apache Software Foundation (ASF) under one
    006 * or more contributor license agreements.  See the NOTICE file
    007 * distributed with this work for additional information
    008 * regarding copyright ownership.  The ASF licenses this file
    009 * to you under the Apache License, Version 2.0 (the
    010 * "License"); you may not use this file except in compliance
    011 * with the License.  You may obtain a copy of the License at
    012 *
    013 *   http://www.apache.org/licenses/LICENSE-2.0
    014 *
    015 * Unless required by applicable law or agreed to in writing,
    016 * software distributed under the License is distributed on an
    017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    018 * KIND, either express or implied.  See the License for the
    019 * specific language governing permissions and limitations
    020 * under the License.
    021 */
    022
    023
    024import java.io.InputStream;
    025import java.net.URL;
    026
    027import javax.servlet.ServletConfig;
    028import javax.servlet.ServletContext;
    029
    030import org.apache.turbine.services.TurbineServices;
    031
    032/**
    033 * Simple static accessor to the EngineContextService
    034 *
    035 * @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
    036 * @author <a href="mailto:raphael@apache.org">Raphaël Luta</a>
    037 * @author <a href="mailto:ekkerbj@netscape.net">Jeff Brekke</a>
    038 * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
    039 * @version $Id: TurbineServlet.java 1706239 2015-10-01 13:18:35Z tv $
    040 */
    041public class TurbineServlet
    042{
    043    /**
    044     * Utility method for accessing the service
    045     * implementation
    046     *
    047     * @return a ServletService implementation instance
    048     */
    049    protected static ServletService getService()
    050    {
    051        return (ServletService) TurbineServices
    052                .getInstance().getService(ServletService.SERVICE_NAME);
    053    }
    054
    055    /**
    056     * Returns an URL object for a given URI string.
    057     * This URI is considered relative to the context.
    058     *
    059     * @param uri the URI to resolve as an URL
    060     * @return an URL object or null is the uri is malformed or can't be resolved
    061     */
    062    public static URL getResource(String uri)
    063    {
    064        return getService().getResource(uri);
    065    }
    066
    067    /**
    068     * Same as getResource except that it returns an InputStream
    069     *
    070     * @see javax.servlet.ServletContext#getResourceAsStream
    071     * @param uri the URI to resolve
    072     * @return an InputStream on the URI content or null
    073     */
    074    public static InputStream getResourceAsStream(String uri)
    075    {
    076        return getService().getResourceAsStream(uri);
    077    }
    078
    079    /**
    080     * Returns the complete filesystem path for a
    081     * given URI
    082     *
    083     * @see javax.servlet.ServletContext#getRealPath
    084     * @param path the URI to resolve
    085     * @return the full system path of this URI
    086     */
    087    public static String getRealPath(String path)
    088    {
    089        return getService().getRealPath(path);
    090    }
    091
    092    /**
    093     * Returns the servlet config used by this
    094     * Turbine web application.
    095     *
    096     * @return turbine servlet config
    097     */
    098    public static ServletConfig getServletConfig()
    099    {
    100        return getService().getServletConfig();
    101    }
    102
    103    /**
    104     * Returns the servlet context used by this
    105     * Turbine web application.
    106     *
    107     * @return turbine servlet context
    108     */
    109    public static ServletContext getServletContext()
    110    {
    111        return getService().getServletContext();
    112    }
    113
    114    /**
    115     * Returns the server scheme for this
    116     * Turbine application. This will either
    117     * be http or https.
    118     *
    119     * @return String
    120     */
    121    public static String getServerScheme()
    122    {
    123        return getService().getServerScheme();
    124    }
    125
    126    /**
    127     * Returns the server name that this
    128     * Turbine application is running
    129     * on.
    130     *
    131     * @return String
    132     */
    133    public static String getServerName()
    134    {
    135        return getService().getServerName();
    136    }
    137
    138    /**
    139     * Returns the port that this Turbine
    140     * application is running through
    141     * on the server.
    142     *
    143     * @return String
    144     */
    145    public static String getServerPort()
    146    {
    147        return getService().getServerPort();
    148    }
    149
    150    /**
    151     * Returns the context path for this
    152     * Turbine application.
    153     *
    154     * @return String
    155     */
    156    public static String getContextPath()
    157    {
    158        return getService().getContextPath();
    159    }
    160}