01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */package org.apache.cxf.management;
19:
20: import javax.management.JMException;
21: import javax.management.MBeanServer;
22: import javax.management.ObjectName;
23:
24: /**
25: * InstrumentationManager interface for the instrumentations query, register
26: * and unregister
27: */
28: public interface InstrumentationManager {
29: /**
30: * Register a component with management infrastructure. Component will supply registration name.
31: * @param component
32: * @return name used to register the component
33: * @throws JMException
34: */
35: ObjectName register(ManagedComponent component) throws JMException;
36:
37: /**
38: * Register a component with management infrastructure. Component will supply registration name.
39: * @param component
40: * @param forceRegistration if set to true, then component will be registered despite existing component.
41: * @return name used to register the component
42: * @throws JMException
43: */
44: ObjectName register(ManagedComponent component,
45: boolean forceRegistration) throws JMException;
46:
47: /**
48: * Registers object with management infrastructure with a specific name. Object must be annotated or
49: * implement standard MBean interface.
50: * @param obj
51: * @param name
52: * @throws JMException
53: */
54: void register(Object obj, ObjectName name) throws JMException;
55:
56: /**
57: * Registers object with management infrastructure with a specific name. Object must be annotated or
58: * implement standard MBean interface.
59: * @param obj
60: * @param name
61: * @param forceRegistration if set to true, then component will be registered despite existing component.
62: * @throws JMException
63: */
64: void register(Object obj, ObjectName name, boolean forceRegistration)
65: throws JMException;
66:
67: /**
68: * Unregisters component with management infrastructure
69: * @param component
70: * @throws JMException
71: */
72: void unregister(ManagedComponent component) throws JMException;
73:
74: /**
75: * Unregisters component based upon registered name
76: * @param name
77: * @throws JMException
78: */
79: void unregister(ObjectName name) throws JMException;
80:
81: /**
82: * Cleans up and shutsdown management infrastructure.
83: */
84: void shutdown();
85:
86: /**
87: * Get the MBeanServer which hosts managed components
88: * NOTE: if the configuration is not set the JMXEnabled to be true, this method
89: * will return null
90: * @return the MBeanServer
91: */
92: MBeanServer getMBeanServer();
93:
94: }
|