01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: package org.apache.catalina;
19:
20: import org.apache.catalina.core.StandardServer;
21:
22: /**
23: * <p><strong>ServerFactory</strong> allows the registration of the
24: * (singleton) <code>Server</code> instance for this JVM, so that it
25: * can be accessed independently of any existing reference to the
26: * component hierarchy. This is important for administration tools
27: * that are built around the internal component implementation classes.
28: *
29: * @author Craig R. McClanahan
30: * @version $Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
31: */
32:
33: public class ServerFactory {
34:
35: // ------------------------------------------------------- Static Variables
36:
37: /**
38: * The singleton <code>Server</code> instance for this JVM.
39: */
40: private static Server server = null;
41:
42: // --------------------------------------------------------- Public Methods
43:
44: /**
45: * Return the singleton <code>Server</code> instance for this JVM.
46: */
47: public static Server getServer() {
48: if (server == null)
49: server = new StandardServer();
50: return (server);
51:
52: }
53:
54: /**
55: * Set the singleton <code>Server</code> instance for this JVM. This
56: * method must <strong>only</strong> be called from a constructor of
57: * the (singleton) <code>Server</code> instance that is created for
58: * this execution of Catalina.
59: *
60: * @param theServer The new singleton instance
61: */
62: public static void setServer(Server theServer) {
63:
64: if (server == null)
65: server = theServer;
66:
67: }
68:
69: }
|