01: /*
02: * BEGIN_HEADER - DO NOT EDIT
03: *
04: * The contents of this file are subject to the terms
05: * of the Common Development and Distribution License
06: * (the "License"). You may not use this file except
07: * in compliance with the License.
08: *
09: * You can obtain a copy of the license at
10: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
11: * See the License for the specific language governing
12: * permissions and limitations under the License.
13: *
14: * When distributing Covered Code, include this CDDL
15: * HEADER in each file and include the License file at
16: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
17: * If applicable add the following below this CDDL HEADER,
18: * with the fields enclosed by brackets "[]" replaced with
19: * your own identifying information: Portions Copyright
20: * [year] [name of copyright owner]
21: */
22:
23: /*
24: * @(#)DynamicRuntimeConfiguration.java
25: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
26: *
27: * END_HEADER - DO NOT EDIT
28: */
29: package com.sun.jbi.management.config;
30:
31: import com.sun.jbi.management.MBeanNames;
32:
33: import java.util.Map;
34: import java.util.HashMap;
35: import java.util.Properties;
36:
37: /**
38: * ConfigurationBuilder is the producer of configuration data set for a
39: * particular category.
40: *
41: * @author Sun Microsystems, Inc.
42: */
43: public class ConfigurationBuilder {
44: /** Configuration map */
45: private static HashMap<MBeanNames.ServiceType, ConfigurationFactory> sConfigs;
46:
47: /**
48: * @param defaults - default attribute values.
49: * @return a Map of configuration factories, keyed by the configuration category
50: */
51: public static synchronized Map<MBeanNames.ServiceType, ConfigurationFactory> createConfigurations(
52: Properties defaults) {
53: if (sConfigs == null) {
54: sConfigs = new HashMap();
55:
56: sConfigs.put(MBeanNames.ServiceType.Installation,
57: new InstallationConfigurationFactory(defaults));
58: sConfigs.put(MBeanNames.ServiceType.Deployment,
59: new DeploymentConfigurationFactory(defaults));
60: sConfigs.put(MBeanNames.ServiceType.System,
61: new SystemConfigurationFactory(defaults));
62: sConfigs.put(MBeanNames.ServiceType.Logger,
63: new LoggerConfigurationFactory(defaults));
64: }
65: return sConfigs;
66: }
67:
68: /**
69: * @return the control type corresponding to a service type
70: */
71: public static String getControlType(MBeanNames.ServiceType svcType) {
72: String controlType = MBeanNames.CONTROL_TYPE_SYSTEM;
73:
74: switch (svcType) {
75: case Installation:
76: controlType = MBeanNames.CONTROL_TYPE_INSTALL_SERVICE;
77: break;
78: case Deployment:
79: controlType = MBeanNames.CONTROL_TYPE_DEPLOY_SERVICE;
80: break;
81: case System:
82: controlType = MBeanNames.CONTROL_TYPE_SYSTEM;
83: break;
84: case Logger:
85: controlType = MBeanNames.CONTROL_TYPE_LOGGING_SERVICE;
86: break;
87: }
88: return controlType;
89: }
90:
91: }
|