blob: 80152e9f9cf638fdded310c5f7b634bc36013758 [file] [log] [blame]
Clement Escoffier6c546352008-11-10 09:49:32 +00001<!--
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"); you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9
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-->
19<xs:schema targetNamespace="org.apache.felix.ipojo.handlers.jmx"
20 xmlns="org.apache.felix.ipojo.handlers.jmx"
21 xmlns:xs="http://www.w3.org/2001/XMLSchema"
22 elementFormDefault="qualified">
23 <xs:element name="config" type="JMXType"></xs:element>
24
25 <xs:complexType name="JMXType">
26
27 <xs:annotation>
28 <xs:documentation>
29 Description of a JMX managed component.
30 </xs:documentation>
31 </xs:annotation>
32 <xs:choice minOccurs="0" maxOccurs="unbounded">
33 <xs:element name="method" type="JMXMethod">
34 <xs:annotation>
35 <xs:documentation>
36 The list of methods to expose.
37 </xs:documentation>
38 </xs:annotation>
39 </xs:element>
40 <xs:element name="property" type="JMXProperty">
41 <xs:annotation>
42 <xs:documentation>
43 The list of attributes to expose.
44 </xs:documentation>
45 </xs:annotation>
46 </xs:element>
47 </xs:choice>
48 <xs:attribute name="usesMOSGi" type="xs:boolean"
49 use="optional">
50 <xs:annotation>
51 <xs:documentation>
52 Determines if the component must be register on the
53 MOSGi MBean server or not.
54 </xs:documentation>
55 </xs:annotation>
56 </xs:attribute>
57 <xs:attribute name="objectName" type="xs:string"
58 use="optional">
59 <xs:annotation>
60 <xs:documentation>
61 The complete object name of the managed component.
62 The syntax of this attribute must be compliant with
63 the ObjectName syntax, detailed in the JMX
64 specification. If neither domain nor name attributes
65 are specified, the default value is determined by
66 the package, the type and the instance name of the
67 component. This attribute overrides the domain and
68 name attributes.
69 </xs:documentation>
70 </xs:annotation>
71 </xs:attribute>
72 <xs:attribute name="domain" type="xs:string" use="optional">
73 <xs:annotation>
74 <xs:documentation>
75 The domain of the managed object (i.e., the left
76 part of the object name). This attribute must be
77 compliant with the domain syntax, as described in
78 the JMX specification.
79 </xs:documentation>
80 </xs:annotation>
81 </xs:attribute>
82 <xs:attribute name="name" type="xs:string" use="optional">
83 <xs:annotation>
84 <xs:documentation>
85 The name property of the managed object. The value
86 of this attribute must comply with the ObjectName
87 value syntax, as described in the JMX specification.
88 </xs:documentation>
89 </xs:annotation>
90 </xs:attribute>
91
92 <xs:attribute name="preRegister" type="xs:string"
93 use="optional">
94 <xs:annotation>
95 <xs:documentation>
96 Specifies method to carry out operations before
97 beeing registered from the MBean server. The
98 signature of the specified method must be :
99 "ObjectName preRegister(MBeanServer server,
100 ObjectName name) throws Exception".
101 </xs:documentation>
102 </xs:annotation>
103 </xs:attribute>
104 <xs:attribute name="postRegister" type="xs:string"
105 use="optional">
106 <xs:annotation>
107 <xs:documentation>
108 Specifies method to carry out operations after
109 beeing registered from the MBean server. The
110 signature of the specified method must be : "void
111 postRegister(Boolean registrationDone)".
112 </xs:documentation>
113 </xs:annotation>
114 </xs:attribute>
115 <xs:attribute name="preDeregister" type="xs:string"
116 use="optional">
117 <xs:annotation>
118 <xs:documentation>
119 Specifies method to carry out operations before
120 beeing unregistered from the MBean server. The
121 signature of the specified method must be : "void
122 preDeregister() throws Exception".
123 </xs:documentation>
124 </xs:annotation>
125 </xs:attribute>
126 <xs:attribute name="postDeregister" type="xs:string" use="optional">
127 <xs:annotation>
128 <xs:documentation>
129 Specifies method to carry out operations after
130 beeing unregistered from the MBean server. The
131 signature of the specified method must be :
132 "void postDeregister()".</xs:documentation>
133 </xs:annotation></xs:attribute>
134 </xs:complexType>
135
136 <xs:complexType name="JMXProperty">
137 <xs:annotation>
138 <xs:documentation>Description of an attribute to expose.</xs:documentation>
139 </xs:annotation>
140 <xs:attribute name="field" type="xs:string" use="required">
141 <xs:annotation>
142 <xs:documentation>The name of the component's field to expose.</xs:documentation></xs:annotation></xs:attribute>
143 <xs:attribute name="name" type="xs:string" use="optional">
144 <xs:annotation>
145 <xs:documentation>The name of the property as it will appear in JMX. If unspecified, the default value is the name of the exposed field.</xs:documentation></xs:annotation></xs:attribute>
146 <xs:attribute name="rights" use="optional">
147 <xs:annotation>
148 <xs:documentation>Specify the access permission of the exposed field.</xs:documentation>
149 </xs:annotation>
150 <xs:simpleType>
151 <xs:annotation>
152 <xs:documentation>Access permission of an exposed field. Accepted values are "r" (read-only access, the default value) and "w" (read and write access).</xs:documentation>
153 </xs:annotation>
154 <xs:restriction base="xs:string">
155 <xs:enumeration value="r"></xs:enumeration>
156 <xs:enumeration value="w"></xs:enumeration>
157 </xs:restriction>
158 </xs:simpleType>
159 </xs:attribute>
160 <xs:attribute name="notification" type="xs:boolean" use="optional">
161 <xs:annotation>
162 <xs:documentation>Enable or disable attribute change notification sending for this property. If set to &quot;true&quot;, a notification is sent each time the value of the field changes.</xs:documentation></xs:annotation></xs:attribute>
163 </xs:complexType>
164
165 <xs:complexType name="JMXMethod">
166 <xs:annotation>
167 <xs:documentation>Description of a method to expose.</xs:documentation>
168 </xs:annotation>
169 <xs:attribute name="name" type="xs:string" use="required">
170 <xs:annotation>
171 <xs:documentation>The name of the method to expose. If multiple methods have the same name, all of them are exposed.</xs:documentation>
172 </xs:annotation></xs:attribute>
173 <xs:attribute name="description" type="xs:string" use="optional">
174 <xs:annotation>
175 <xs:documentation>The description of the exposed method, as it will appear in JMX.</xs:documentation></xs:annotation></xs:attribute>
176 </xs:complexType>
177</xs:schema>