View Javadoc
1 package org.apache.turbine.services; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 import javax.servlet.ServletConfig; 58 import org.apache.turbine.util.RunData; 59 60 /*** 61 * This class provides a <code>Service</code> implementation that 62 * Services used in Turbine are required to extend. The 63 * functionality provided in addition to <code>BaseService</code> 64 * functionality is recognizing objects used in early initialization 65 * of <code>Services</code> in Turbine, and passing them to 66 * appropriate convenience methods. These methods should be overriden 67 * to provide desired initialization functionality. 68 * 69 * <strong>Note!</strong><br>Remember to call 70 * <code>setInit(true)</code> after successful initialization. 71 * 72 * <strong>Note!</strong><br>If you need to use another 73 * <code>Service</code> inside your early initialization, remember to 74 * request initialization of that <code>Service</code> before using 75 * it: 76 * 77 * <code> 78 * getServiceBroker().initClass("OtherService",data);<br> 79 * OtherService service = 80 * (OtherService)getServiceBroker().getService("OtherService"); 81 * </code> 82 * 83 * @author <a href="mailto:greg@shwoop.com">Greg Ritter</a> 84 * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a> 85 * @author <a href="mailto:burton@apache.org">Kevin Burton</a> 86 * @author <a href="mailto:krzewski@e-point.pl">Rafal Krzewski</a> 87 * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a> 88 * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a> 89 * @version $Id: TurbineBaseService.java,v 1.1.1.1 2001/08/16 05:08:47 jvanzyl Exp $ 90 */ 91 public abstract class TurbineBaseService 92 extends BaseService 93 { 94 /*** 95 * Performs early initialization. Overrides init() method in 96 * BaseService to detect objects used in Turbine's Service 97 * initialization and pass them to apropriate init() methods. 98 * 99 * @param data An Object to use for initialization activities. 100 * @exception InitializationException, if initialization of this 101 * class was not successful. 102 */ 103 public void init( Object data ) 104 throws InitializationException 105 { 106 if (data instanceof ServletConfig) 107 { 108 init((ServletConfig)data); 109 } 110 else if (data instanceof RunData) 111 { 112 init((RunData)data); 113 } 114 } 115 116 /*** 117 * Performs early initialization. 118 * 119 * @param config A ServletConfing to use for initialization 120 * activities. 121 * @exception InitializationException, if initialization of this 122 * class was not successful. 123 */ 124 public void init( ServletConfig config ) 125 throws InitializationException 126 { 127 } 128 129 /*** 130 * Performs early initialization. 131 * 132 * @param data An RunData to use for initialization activities. 133 * @exception InitializationException, if initialization of this 134 * class was not successful. 135 */ 136 public void init( RunData data ) 137 throws InitializationException 138 { 139 } 140 141 /*** 142 * Performs late initialization. 143 * 144 * If your class relies on early initialization, and the object it 145 * expects was not received, you can use late initialization to 146 * throw an exception and complain. 147 * 148 * @exception InitializationException, if initialization of this 149 * class was not successful. 150 */ 151 public void init() 152 throws InitializationException 153 { 154 setInit(true); 155 } 156 157 /*** 158 * Returns to uninitialized state. 159 * 160 * You can use this method to release resources thet your Service 161 * allocated when Turbine shuts down. 162 */ 163 public void shutdown() 164 { 165 setInit(false); 166 } 167 }

This page was automatically generated by Maven