Improve javadoc of the instance creator
Fix several concurrency issues with the configuration admin (such as Felix-732)
Commit a test suite testing configuration admin support
Improve the documentation of XSD Schemas (external handlers)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@698589 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/handler/jmx/src/main/resources/jmx.xsd b/ipojo/handler/jmx/src/main/resources/jmx.xsd
index e31ea2e..80152e9 100644
--- a/ipojo/handler/jmx/src/main/resources/jmx.xsd
+++ b/ipojo/handler/jmx/src/main/resources/jmx.xsd
@@ -24,37 +24,154 @@
<xs:complexType name="JMXType">
+ <xs:annotation>
+ <xs:documentation>
+ Description of a JMX managed component.
+ </xs:documentation>
+ </xs:annotation>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="method" type="JMXMethod"></xs:element>
- <xs:element name="property" type="JMXProperty"></xs:element>
+ <xs:element name="method" type="JMXMethod">
+ <xs:annotation>
+ <xs:documentation>
+ The list of methods to expose.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="property" type="JMXProperty">
+ <xs:annotation>
+ <xs:documentation>
+ The list of attributes to expose.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
</xs:choice>
<xs:attribute name="usesMOSGi" type="xs:boolean"
use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Determines if the component must be register on the
+ MOSGi MBean server or not.
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
<xs:attribute name="objectName" type="xs:string"
use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The complete object name of the managed component.
+ The syntax of this attribute must be compliant with
+ the ObjectName syntax, detailed in the JMX
+ specification. If neither domain nor name attributes
+ are specified, the default value is determined by
+ the package, the type and the instance name of the
+ component. This attribute overrides the domain and
+ name attributes.
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
- <xs:attribute name="domain" type="xs:string" use="optional"></xs:attribute>
- <xs:attribute name="name" type="xs:string" use="optional"></xs:attribute>
+ <xs:attribute name="domain" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The domain of the managed object (i.e., the left
+ part of the object name). This attribute must be
+ compliant with the domain syntax, as described in
+ the JMX specification.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="name" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ The name property of the managed object. The value
+ of this attribute must comply with the ObjectName
+ value syntax, as described in the JMX specification.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="preRegister" type="xs:string"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Specifies method to carry out operations before
+ beeing registered from the MBean server. The
+ signature of the specified method must be :
+ "ObjectName preRegister(MBeanServer server,
+ ObjectName name) throws Exception".
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="postRegister" type="xs:string"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Specifies method to carry out operations after
+ beeing registered from the MBean server. The
+ signature of the specified method must be : "void
+ postRegister(Boolean registrationDone)".
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="preDeregister" type="xs:string"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Specifies method to carry out operations before
+ beeing unregistered from the MBean server. The
+ signature of the specified method must be : "void
+ preDeregister() throws Exception".
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="postDeregister" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Specifies method to carry out operations after
+ beeing unregistered from the MBean server. The
+ signature of the specified method must be :
+ "void postDeregister()".</xs:documentation>
+ </xs:annotation></xs:attribute>
</xs:complexType>
<xs:complexType name="JMXProperty">
- <xs:attribute name="field" type="xs:string" use="required"></xs:attribute>
- <xs:attribute name="name" type="xs:string" use="optional"></xs:attribute>
+ <xs:annotation>
+ <xs:documentation>Description of an attribute to expose.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="field" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The name of the component's field to expose.</xs:documentation></xs:annotation></xs:attribute>
+ <xs:attribute name="name" type="xs:string" use="optional">
+ <xs:annotation>
+ <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>
<xs:attribute name="rights" use="optional">
- <xs:simpleType>
- <xs:restriction base="xs:string">
+ <xs:annotation>
+ <xs:documentation>Specify the access permission of the exposed field.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:annotation>
+ <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>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
<xs:enumeration value="r"></xs:enumeration>
<xs:enumeration value="w"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
- <xs:attribute name="notification" type="xs:boolean" use="optional"></xs:attribute>
+ <xs:attribute name="notification" type="xs:boolean" use="optional">
+ <xs:annotation>
+ <xs:documentation>Enable or disable attribute change notification sending for this property. If set to "true", a notification is sent each time the value of the field changes.</xs:documentation></xs:annotation></xs:attribute>
</xs:complexType>
<xs:complexType name="JMXMethod">
- <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
- <xs:attribute name="description" type="xs:string" use="optional"></xs:attribute>
+ <xs:annotation>
+ <xs:documentation>Description of a method to expose.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The name of the method to expose. If multiple methods have the same name, all of them are exposed.</xs:documentation>
+ </xs:annotation></xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>The description of the exposed method, as it will appear in JMX.</xs:documentation></xs:annotation></xs:attribute>
</xs:complexType>
</xs:schema>
\ No newline at end of file