001    /*
002     * Copyright (c) 2001-2004 Caucho Technology, Inc.  All rights reserved.
003     *
004     * The Apache Software License, Version 1.1
005     *
006     * Redistribution and use in source and binary forms, with or without
007     * modification, are permitted provided that the following conditions
008     * are met:
009     *
010     * 1. Redistributions of source code must retain the above copyright
011     *    notice, this list of conditions and the following disclaimer.
012     *
013     * 2. Redistributions in binary form must reproduce the above copyright
014     *    notice, this list of conditions and the following disclaimer in
015     *    the documentation and/or other materials provided with the
016     *    distribution.
017     *
018     * 3. The end-user documentation included with the redistribution, if
019     *    any, must include the following acknowlegement:
020     *       "This product includes software developed by the
021     *        Caucho Technology (http://www.caucho.com/)."
022     *    Alternately, this acknowlegement may appear in the software itself,
023     *    if and wherever such third-party acknowlegements normally appear.
024     *
025     * 4. The names "Hessian", "Resin", and "Caucho" must not be used to
026     *    endorse or promote products derived from this software without prior
027     *    written permission. For written permission, please contact
028     *    info@caucho.com.
029     *
030     * 5. Products derived from this software may not be called "Resin"
031     *    nor may "Resin" appear in their names without prior written
032     *    permission of Caucho Technology.
033     *
034     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
035     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
036     * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
037     * DISCLAIMED.  IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS
038     * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
039     * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
040     * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
041     * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
042     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
043     * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
044     * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
045     *
046     * @author Scott Ferguson
047     */
048    
049    package com.caucho.services.server;
050    
051    import javax.servlet.ServletConfig;
052    import javax.servlet.ServletContext;
053    import javax.servlet.ServletException;
054    import javax.servlet.ServletRequest;
055    
056    /**
057     * Interface for a service, including lifecycle.
058     */
059    public class GenericService implements Service {
060      protected ServletConfig config;
061      
062      /**
063       * Initialize the service instance.
064       */
065      public void init(ServletConfig config)
066        throws ServletException
067      {
068        this.config = config;
069    
070        init();
071      }
072      
073      /**
074       * Initialize the service instance.
075       */
076      public void init()
077        throws ServletException
078      {
079      }
080    
081      /**
082       * Returns the named initialization parameter.
083       */
084      public String getInitParameter(String name)
085      {
086        return this.config.getInitParameter(name);
087      }
088    
089      /**
090       * Returns the servlet context.
091       */
092      public ServletConfig getServletConfig()
093      {
094        return this.config;
095      }
096    
097      /**
098       * Returns the servlet context.
099       */
100      public ServletContext getServletContext()
101      {
102        return this.config.getServletContext();
103      }
104    
105      /**
106       * Logs a message to the error stream.
107       */
108      public void log(String message)
109      {
110        getServletContext().log(message);
111      }
112    
113      /**
114       * Returns the servlet request object for the request.
115       */
116      public ServletRequest getRequest()
117      {
118        return ServiceContext.getRequest();
119      }
120    
121      /**
122       * Returns the service identifier for the request.
123       */
124      public String getServiceName()
125      {
126        return ServiceContext.getServiceName();
127      }
128    
129      /**
130       * Returns the service identifier for the request.
131       *
132       * @deprecated
133       */
134      public String getServiceId()
135      {
136        return getServiceName();
137      }
138    
139      /**
140       * Returns the object identifier for the request.
141       */
142      public String getObjectId()
143      {
144        return ServiceContext.getObjectId();
145      }
146      
147      /**
148       * Cleanup the service instance.
149       */
150      public void destroy()
151      {
152      }
153    }