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