Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
ServiceBroker |
|
| 1.0;1 |
1 | package org.apache.turbine.services; | |
2 | ||
3 | ||
4 | /* | |
5 | * Licensed to the Apache Software Foundation (ASF) under one | |
6 | * or more contributor license agreements. See the NOTICE file | |
7 | * distributed with this work for additional information | |
8 | * regarding copyright ownership. The ASF licenses this file | |
9 | * to you under the Apache License, Version 2.0 (the | |
10 | * "License"); you may not use this file except in compliance | |
11 | * with the License. You may obtain a copy of the License at | |
12 | * | |
13 | * http://www.apache.org/licenses/LICENSE-2.0 | |
14 | * | |
15 | * Unless required by applicable law or agreed to in writing, | |
16 | * software distributed under the License is distributed on an | |
17 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
18 | * KIND, either express or implied. See the License for the | |
19 | * specific language governing permissions and limitations | |
20 | * under the License. | |
21 | */ | |
22 | ||
23 | ||
24 | import org.apache.commons.configuration2.Configuration; | |
25 | ||
26 | /** | |
27 | * Classes that implement this interface can act as a broker for | |
28 | * <code>Service</code> classes. | |
29 | * | |
30 | * Functionality that <code>ServiceBroker</code> provides in addition | |
31 | * to <code>InitableBroker</code> functionality includes: | |
32 | * | |
33 | * <ul> | |
34 | * | |
35 | * <li>Maintaining service name to class name mapping, allowing | |
36 | * plugable service implementations.</li> | |
37 | * | |
38 | * <li>Providing <code>Services</code> with <code>Properties</code> | |
39 | * based on a system wide configuration mechanism.</li> | |
40 | * | |
41 | * </ul> | |
42 | * | |
43 | * @author <a href="mailto:burton@apache.org">Kevin Burton</a> | |
44 | * @author <a href="mailto:krzewski@e-point.pl">Rafal Krzewski</a> | |
45 | * @author <a href="mailto:dlr@collab.net">Daniel Rall</a> | |
46 | * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a> | |
47 | * @version $Id: ServiceBroker.java 1838126 2018-08-15 17:54:18Z tv $ | |
48 | */ | |
49 | public interface ServiceBroker | |
50 | { | |
51 | /** | |
52 | * Determines whether a service is registered in the configured | |
53 | * <code>TurbineResources.properties</code>. | |
54 | * | |
55 | * @param serviceName The name of the service whose existance to check. | |
56 | * @return Registration predicate for the desired services. | |
57 | */ | |
58 | boolean isRegistered(String serviceName); | |
59 | ||
60 | /** | |
61 | * Performs early initialization of the specified service. | |
62 | * | |
63 | * @param name The name of the service. | |
64 | * @throws InitializationException if the service is unknown | |
65 | * or can't be initialized. | |
66 | */ | |
67 | void initService(String name) throws InitializationException; | |
68 | ||
69 | /** | |
70 | * Shutdowns a Service. | |
71 | * | |
72 | * This method is used to release resources allocated by a | |
73 | * Service, and return it to initial (uninitailized) state. | |
74 | * | |
75 | * @param name The name of the Service to be uninitialized. | |
76 | */ | |
77 | void shutdownService(String name); | |
78 | ||
79 | /** | |
80 | * Shutdowns all Services. | |
81 | * | |
82 | * This method is used to release resources allocated by | |
83 | * Services, and return them to initial (uninitialized) state. | |
84 | */ | |
85 | void shutdownServices(); | |
86 | ||
87 | /** | |
88 | * Returns an instance of requested Service. | |
89 | * | |
90 | * @param name The name of the Service requested. | |
91 | * @return An instance of requested Service. | |
92 | * @throws InstantiationException if the service is unknown or | |
93 | * can't be initialized. | |
94 | */ | |
95 | Object getService(String name) throws InstantiationException; | |
96 | ||
97 | /** | |
98 | * Returns the configuration of a specific service. Services | |
99 | * use this method to retrieve their configuration. | |
100 | * | |
101 | * @param name The name of the service. | |
102 | * @return Configuration of the requested service. | |
103 | */ | |
104 | Configuration getConfiguration(String name); | |
105 | ||
106 | /** | |
107 | * Get the application root as set by | |
108 | * the parent application. | |
109 | * | |
110 | * @return String application root | |
111 | */ | |
112 | String getApplicationRoot(); | |
113 | } |