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 }