This is an automated email from the ASF dual-hosted git repository. clebertsuconic pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
commit 16526433e1446223871ff02ad8da0b62825ff885 Author: Clebert Suconic <clebertsuco...@apache.org> AuthorDate: Fri Apr 5 16:19:38 2019 -0400 NO-JIRA updating duplicated XSD on tools --- .../src/test/resources/artemis-configuration.xsd | 697 +++++++++++++++++---- 1 file changed, 560 insertions(+), 137 deletions(-) diff --git a/artemis-tools/src/test/resources/artemis-configuration.xsd b/artemis-tools/src/test/resources/artemis-configuration.xsd index 5a5d4f3..ebafee2 100644 --- a/artemis-tools/src/test/resources/artemis-configuration.xsd +++ b/artemis-tools/src/test/resources/artemis-configuration.xsd @@ -22,6 +22,8 @@ elementFormDefault="qualified" version="1.0"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> + <xsd:element name="core" type="configurationType"/> <xsd:complexType name="configurationType"> @@ -34,6 +36,14 @@ </xsd:annotation> </xsd:element> + <xsd:element name="system-property-prefix" type="xsd:string" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + This defines the prefix which we will use to parse System properties for the configuration. Default= + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="internal-naming-prefix" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -44,14 +54,23 @@ </xsd:annotation> </xsd:element> + <xsd:element name="amqp-use-core-subscription-naming" type="xsd:boolean" maxOccurs="1" minOccurs="0" default="false"> + <xsd:annotation> + <xsd:documentation> + This enables making AMQP subscription queue names, match core queue names, for better interoperability between protocols. + Note: Enabling this to an existing broker if pre-existing amqp durable subscriptions already existed will require + clients to re-subscribe and to clean up old subscription names. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="resolve-protocols" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> If true then the ActiveMQ Artemis Server will make use of any Protocol Managers that are in available - on the - classpath. If false then only the core protocol will be available, unless in Embedded mode where users - can inject their own Protocol Managers. + on the classpath. If false then only the core protocol will be available, unless in Embedded mode + where users can inject their own Protocol Managers. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -196,7 +215,7 @@ <xsd:element name="log-delegate-factory-class-name" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - XXX + DEPRECATED: the name of the factory class to use for log delegation </xsd:documentation> </xsd:annotation> </xsd:element> @@ -317,6 +336,14 @@ </xsd:annotation> </xsd:element> + <xsd:element name="address-queue-scan-period" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + how often (in ms) to scan for addresses and queues that need to be deleted + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="id-cache-size" type="xsd:int" default="20000" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -336,7 +363,7 @@ <xsd:element name="remoting-incoming-interceptors" type="class-name-sequenceType" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - a list of <class-name/> elements with the names of classes to use for interceptor incoming + a list of <class-name/> elements with the names of classes to use for intercepting incoming remoting packets </xsd:documentation> </xsd:annotation> @@ -345,7 +372,7 @@ <xsd:element name="remoting-outgoing-interceptors" type="class-name-sequenceType" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - a list of <class-name/> elements with the names of classes to use for interceptor outcoming + a list of <class-name/> elements with the names of classes to use for intercepting outgoing remoting packets </xsd:documentation> </xsd:annotation> @@ -637,10 +664,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="journal-buffer-size" type="xsd:long" default="501760" maxOccurs="1" minOccurs="0"> + <xsd:element name="journal-buffer-size" type="xsd:string" default="501760" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - The size of the internal buffer on the journal in KiB. + The size (in bytes) of the internal buffer on the journal. Supports byte notation like "K", "Mb", + "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -671,10 +699,10 @@ </xsd:annotation> </xsd:element> - <xsd:element name="journal-file-size" default="10485760" type="xsd:int" maxOccurs="1" minOccurs="0"> + <xsd:element name="journal-file-size" default="10485760" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - the size (in bytes) of each journal file + The size (in bytes) of each journal file. Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -720,6 +748,14 @@ </xsd:annotation> </xsd:element> + <xsd:element name="journal-file-open-timeout" type="xsd:int" default="5" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the length of time in seconds to wait when opening a new Journal file before timing out and failing + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="server-dump-interval" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -728,11 +764,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="global-max-size" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0"> + <xsd:element name="global-max-size" type="xsd:string" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - Global Max Size before all addresses will enter into their Full Policy configured upon messages being - produced. + Size (in bytes) before all addresses will enter into their Full Policy configured upon messages being + produced. Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -740,7 +776,7 @@ <xsd:element name="max-disk-usage" type="xsd:int" default="90" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - Max percentage of disk usage before the system blocks or fail clients. + Max percentage of disk usage before the system blocks or fails clients. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -786,91 +822,191 @@ </xsd:annotation> </xsd:element> + <xsd:element name="critical-analyzer" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + should analyze response time on critical paths and decide for broker log, shutdown or halt. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="critical-analyzer-timeout" type="xsd:long" default="120000" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + The default timeout used on analyzing timeouts on the critical path. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="critical-analyzer-check-period" type="xsd:long" default="0" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + The timeout here will be defaulted to half critical-analyzer-timeout, calculation happening at runtime + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="critical-analyzer-policy" default="LOG" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + Should the server log, be shutdown or halted upon critical analysis failure. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="LOG"/> + <xsd:enumeration value="HALT"/> + <xsd:enumeration value="SHUTDOWN"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="security-settings" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> a list of security settings </xsd:documentation> </xsd:annotation> + <xsd:complexType> - <xsd:choice> - <xsd:element name="security-setting" maxOccurs="unbounded" minOccurs="0"> + <xsd:sequence> + <xsd:choice> + <xsd:element name="security-setting" maxOccurs="unbounded" minOccurs="0"> + <xsd:complexType> + <xsd:annotation> + <xsd:documentation> + a permission to add to the matched addresses + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="permission" maxOccurs="unbounded" minOccurs="0"> + <xsd:complexType> + <xsd:attribute name="type" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + the type of permission + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attribute name="roles" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + a comma-separated list of roles to apply the permission to + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attributeGroup ref="xml:specialAttrs"/> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="match" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + pattern for matching security roles against addresses; can use wildards + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attributeGroup ref="xml:specialAttrs"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="security-setting-plugin" maxOccurs="1" minOccurs="0"> + <xsd:complexType> + <xsd:annotation> + <xsd:documentation> + a plugin + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="setting" maxOccurs="unbounded" minOccurs="0"> + <xsd:complexType> + <xsd:attribute name="name" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + the name of the setting + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attribute name="value" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + the value for the setting + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attributeGroup ref="xml:specialAttrs"/> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="class-name" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + the name of the plugin class to instantiate + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attributeGroup ref="xml:specialAttrs"/> + </xsd:complexType> + </xsd:element> + </xsd:choice> + <xsd:element name="role-mapping" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> - <xsd:annotation> - <xsd:documentation> - a permission to add to the matched addresses - </xsd:documentation> - </xsd:annotation> - <xsd:sequence> - <xsd:element name="permission" maxOccurs="unbounded" minOccurs="0"> - <xsd:complexType> - <xsd:attribute name="type" type="xsd:string" use="required"> - <xsd:annotation> - <xsd:documentation> - the type of permission - </xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attribute name="roles" type="xsd:string" use="required"> - <xsd:annotation> - <xsd:documentation> - a comma-separated list of roles to apply the permission to - </xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attributeGroup ref="xml:specialAttrs"/> - </xsd:complexType> - </xsd:element> - </xsd:sequence> - <xsd:attribute name="match" type="xsd:string" use="required"> + <xsd:attribute name="from" type="xsd:string" use="required"> + <xsd:annotation> + <xsd:documentation> + the name of the external role + </xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attribute name="to" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> - regular expression for matching security roles against addresses + the comma delimited name of the internal role(s) </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> - <xsd:element name="security-setting-plugin" maxOccurs="1" minOccurs="0"> + </xsd:sequence> + <xsd:attributeGroup ref="xml:specialAttrs"/> + </xsd:complexType> + </xsd:element> + + <xsd:element name="broker-plugins" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + a list of broker-plugins + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="broker-plugin" maxOccurs="unbounded" minOccurs="0"> <xsd:complexType> <xsd:annotation> <xsd:documentation> - a plugin + a broker plugin </xsd:documentation> </xsd:annotation> <xsd:sequence> - <xsd:element name="setting" maxOccurs="unbounded" minOccurs="0"> - <xsd:complexType> - <xsd:attribute name="name" type="xsd:string" use="required"> - <xsd:annotation> - <xsd:documentation> - the name of the setting - </xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attribute name="value" type="xsd:string" use="required"> - <xsd:annotation> - <xsd:documentation> - the value for the setting - </xsd:documentation> - </xsd:annotation> - </xsd:attribute> - <xsd:attributeGroup ref="xml:specialAttrs"/> - </xsd:complexType> + <xsd:element ref="property" maxOccurs="unbounded" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + properties to configure a plugin + </xsd:documentation> + </xsd:annotation> </xsd:element> </xsd:sequence> <xsd:attribute name="class-name" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> - the name of the plugin class to instantiate + the name of the broker plugin class to instantiate </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> - </xsd:choice> + </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> @@ -913,12 +1049,68 @@ </xsd:complexType> </xsd:element> - <xsd:element name="addresses" type="addressesType" maxOccurs="1" minOccurs="0" /> + <xsd:element name="addresses" type="addressesType" maxOccurs="1" minOccurs="0"/> + + <xsd:element name="network-check-list" type="xsd:string" default="" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + A comma separated list of IPs to be used to validate if the broker should be kept up + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-URL-list" type="xsd:string" default="" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + A comma separated list of URLs to be used to validate if the broker should be kept up + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-period" type="xsd:long" default="10000" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + A frequency in milliseconds to how often we should check if the network is still up + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-timeout" type="xsd:long" default="1000" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + A timeout used in milliseconds to be used on the ping. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-NIC" type="xsd:string" default="" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + The network interface card name to be used to validate the address. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-ping-command" type="xsd:string" default="" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + The ping command used to ping IPV4 addresses. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="network-check-ping6-command" type="xsd:string" default="" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + The ping command used to ping IPV6 addresses. + </xsd:documentation> + </xsd:annotation> + </xsd:element> <xsd:element name="wildcard-addresses" type="wildcardType" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - Wildcard addresses format + parameters to configure wildcard address matching format </xsd:documentation> </xsd:annotation> </xsd:element> @@ -946,9 +1138,20 @@ <xsd:element name="broadcast-group"> <xsd:complexType> <xsd:sequence> - <!-- XXX these 2 local-* here...--> - <xsd:element ref="local-bind-address" maxOccurs="1" minOccurs="0"/> - <xsd:element ref="local-bind-port" maxOccurs="1" minOccurs="0"/> + <xsd:element ref="local-bind-address" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + a local address to which the datagram socket is bound + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="local-bind-port" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + a local port to which the datagram socket is bound + </xsd:documentation> + </xsd:annotation> + </xsd:element> <xsd:element name="group-address" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -999,7 +1202,6 @@ </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> @@ -1007,7 +1209,6 @@ <xsd:element name="discovery-group"> <xsd:complexType> <xsd:all> - <!-- XXX --> <xsd:element name="group-address" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -1158,11 +1359,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="min-large-message-size" type="xsd:int" default="102400" maxOccurs="1" minOccurs="0"> + <xsd:element name="min-large-message-size" type="xsd:string" default="102400" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - Any message larger than this size is considered a large message (to be sent in - chunks) + Any message larger than this size (in bytes) is considered a large message (to be sent in + chunks). Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -1241,18 +1442,19 @@ </xsd:annotation> </xsd:element> - <xsd:element name="confirmation-window-size" type="xsd:int" maxOccurs="1" minOccurs="0" default="1048576"> + <xsd:element name="confirmation-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="1048576"> <xsd:annotation> <xsd:documentation> - Once the bridge has received this many bytes, it sends a confirmation + Once the bridge has received this many bytes, it sends a confirmation. Supports byte notation like + "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> - <xsd:element name="producer-window-size" type="xsd:int" maxOccurs="1" minOccurs="0" default="-1"> + <xsd:element name="producer-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="-1"> <xsd:annotation> <xsd:documentation> - Producer flow control + Producer flow control. Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -1282,6 +1484,14 @@ </xsd:annotation> </xsd:element> + <xsd:element name="routing-type" type="component-routing-type" default="PASS" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + how should the routing-type on the bridged messages be set? + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:choice> <xsd:element name="static-connectors" maxOccurs="1" minOccurs="1"> <xsd:complexType> @@ -1317,6 +1527,8 @@ </xsd:complexType> + + <!-- FEDERATION CONFIGURATION --> <xsd:complexType name="federationType"> <xsd:sequence> @@ -1425,6 +1637,7 @@ </xsd:sequence> <xsd:attribute name="transformer-ref" type="xsd:string" use="optional" /> <xsd:attribute name="priority-adjustment" type="xsd:int" use="optional" /> + <xsd:attribute name="include-federated" type="xsd:boolean" use="optional" /> <xsd:attribute name="name" type="xsd:ID" use="required" /> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> @@ -1450,32 +1663,30 @@ <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> - <xsd:complexType name="addressPolicyIncludeType"> - <xsd:sequence> - <xsd:element name="include" type="addressMatchType" minOccurs="1" maxOccurs="unbounded" /> - </xsd:sequence> - <xsd:attributeGroup ref="xml:specialAttrs"/> - </xsd:complexType> - - <xsd:complexType name="addressPolicyExcludeType"> - <xsd:sequence> - <xsd:element name="exclude" type="addressMatchType" minOccurs="1" maxOccurs="unbounded" /> - </xsd:sequence> - <xsd:attributeGroup ref="xml:specialAttrs"/> - </xsd:complexType> - <xsd:complexType name="addressMatchType"> <xsd:attribute name="address-match" type="xsd:string" use="required" /> <xsd:attributeGroup ref="xml:specialAttrs" /> </xsd:complexType> <xsd:complexType name="federationTransformerType"> - <xsd:complexContent> - <xsd:extension base="transformerType"> - <xsd:attribute name="name" type="xsd:ID" use="required" /> - <xsd:attributeGroup ref="xml:specialAttrs"/> - </xsd:extension> - </xsd:complexContent> + <xsd:sequence> + <xsd:element name="class-name" type="xsd:string" maxOccurs="1" minOccurs="1"> + <xsd:annotation> + <xsd:documentation> + optional name of transformer class + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="property" maxOccurs="unbounded" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + properties to configure the transformer class + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:ID" use="required" /> + <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <!-- TRANSFORMER CONFIGURATION --> @@ -1586,10 +1797,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="min-large-message-size" type="xsd:int" maxOccurs="1" minOccurs="0"> + <xsd:element name="min-large-message-size" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - Messages larger than this are considered large-messages + Messages larger than this are considered large-messages. Supports byte notation like + "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -1654,8 +1866,7 @@ <xsd:annotation> <xsd:documentation> DEPRECATED: use message-load-balancing-type instead. Select STRICT to mimic - forward-when-no-consumers=true - and ON_DEMAND to mimic forward-when-no-consumers=false. + forward-when-no-consumers=true and ON_DEMAND to mimic forward-when-no-consumers=false. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -1683,18 +1894,19 @@ </xsd:annotation> </xsd:element> - <xsd:element name="confirmation-window-size" type="xsd:int" default="1048576" maxOccurs="1" minOccurs="0"> + <xsd:element name="confirmation-window-size" type="xsd:string" default="1048576" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - The size (in bytes) of the window used for confirming data from the server connected to. + The size (in bytes) of the window used for confirming data from the server connected to. Supports + byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> - <xsd:element name="producer-window-size" type="xsd:int" maxOccurs="1" minOccurs="0" default="-1"> + <xsd:element name="producer-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="-1"> <xsd:annotation> <xsd:documentation> - Producer flow control + Producer flow control. Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -1753,7 +1965,7 @@ <xsd:attribute name="discovery-group-name" type="xsd:IDREF" use="required"> <xsd:annotation> <xsd:documentation> - XXX -- this is a duplicate... + name of discovery group used by this cluster-connection </xsd:documentation> </xsd:annotation> </xsd:attribute> @@ -1851,20 +2063,12 @@ <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/> - <xsd:element name="routing-type" default="STRIP" maxOccurs="1" minOccurs="0"> + <xsd:element name="routing-type" type="component-routing-type" default="STRIP" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> how should the routing-type on the diverted messages be set? </xsd:documentation> </xsd:annotation> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> - <xsd:enumeration value="ANYCAST"/> - <xsd:enumeration value="MULTICAST"/> - <xsd:enumeration value="STRIP"/> - <xsd:enumeration value="PASS"/> - </xsd:restriction> - </xsd:simpleType> </xsd:element> </xsd:all> @@ -1939,6 +2143,20 @@ </xsd:documentation> </xsd:annotation> </xsd:element> + <xsd:element name="page-store-table-name" type="xsd:string" minOccurs="1" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The table name used to large message files + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="node-manager-store-table-name" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The table name used to hold shared store data + </xsd:documentation> + </xsd:annotation> + </xsd:element> <xsd:element name="jdbc-network-timeout" type="xsd:int" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation> @@ -1946,6 +2164,27 @@ </xsd:documentation> </xsd:annotation> </xsd:element> + <xsd:element name="jdbc-lock-renew-period" type="xsd:int" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The period in milliseconds of the keep alive service of a JDBC lock. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="jdbc-lock-expiration" type="xsd:int" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The time in milliseconds a JDBC lock is considered valid without keeping it alive. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="jdbc-journal-sync-period" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The JDBC jouranl sync period in milliseconds. + </xsd:documentation> + </xsd:annotation> + </xsd:element> </xsd:all> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> @@ -2206,6 +2445,50 @@ </xsd:documentation> </xsd:annotation> </xsd:element> + <xsd:element name="vote-on-replication-failure" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + Whether or not this live broker should vote to remain as live if replication is lost. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="quorum-size" type="xsd:integer" default="-1" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + The quorum size used for voting after replication loss, -1 means use the current cluster size + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="vote-retries" type="xsd:integer" default="12" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + If we start as a replica and lose connection to the master, how many times should we attempt to vote + for quorum before restarting + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="vote-retry-wait" type="xsd:long" default="5000" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + How long to wait (in milliseconds) between each vote + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="quorum-vote-wait" type="xsd:integer" default="30" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + How long to wait (in seconds) for vote results + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="retry-replication-wait" type="xsd:long" default="2000" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + If we start as a replica how long to wait (in milliseconds) before trying to replicate again after failing to find a replica + </xsd:documentation> + </xsd:annotation> + </xsd:element> </xsd:all> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> @@ -2279,6 +2562,50 @@ </xsd:documentation> </xsd:annotation> </xsd:element> + <xsd:element name="vote-on-replication-failure" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + If we have to start as a replicated server decide whether or not this live broker should vote to remain + as live if replication is lost. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="quorum-size" type="xsd:integer" default="-1" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + If we have to start as a replicated server or we are a backup and lose connection to live, the quorum size + used for voting after replication loss, -1 means use the current cluster size + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="vote-retries" type="xsd:integer" default="12" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + If we lose connection to the master, how many times should we attempt to vote for quorum before restarting + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="vote-retry-wait" type="xsd:long" default="5000" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + How long to wait (in milliseconds) between each vote + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="retry-replication-wait" type="xsd:long" default="2000" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + How long to wait (in milliseconds) before trying to replicate again after failing to find a replica + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="quorum-vote-wait" type="xsd:integer" default="30" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation> + How long to wait (in seconds) for vote results + </xsd:documentation> + </xsd:annotation> + </xsd:element> </xsd:all> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> @@ -2343,6 +2670,13 @@ </xsd:documentation> </xsd:annotation> </xsd:element> + <xsd:element name="wait-for-activation" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + Will the master startup wait until it is activated + </xsd:documentation> + </xsd:annotation> + </xsd:element> </xsd:all> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> @@ -2497,7 +2831,7 @@ </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="1"> + <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> A reference to a cluster connection address @@ -2603,11 +2937,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="max-size-bytes" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0"> + <xsd:element name="max-size-bytes" type="xsd:string" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> the maximum size (in bytes) for an address (-1 means no limits). This is used in PAGING, BLOCK and - FAIL policies. + FAIL policies. Supports byte notation like "K", "Mb", "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2623,10 +2957,11 @@ </xsd:annotation> </xsd:element> - <xsd:element name="page-size-bytes" type="xsd:long" default="10485760" maxOccurs="1" minOccurs="0"> + <xsd:element name="page-size-bytes" type="xsd:string" default="10485760" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - the page size (in bytes) to use for an address + The page size (in bytes) to use for an address. Supports byte notation like "K", "Mb", + "GB", etc. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2691,7 +3026,7 @@ <xsd:element name="default-non-destructive" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - whether the queue should be non-destructive by default + whether the queue should be non-destructive by default </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2731,7 +3066,8 @@ <xsd:element name="default-delay-before-dispatch" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - the default delay to wait before dispatching if number of consumers before dispatch is not met for queues under the address. + the default delay (in milliseconds) to wait before dispatching if number of consumers before + dispatch is not met for queues under the address. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2780,7 +3116,7 @@ <xsd:element name="slow-consumer-check-period" type="xsd:long" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - How often to check for slow consumers on a particular queue. Measured in minutes. + How often to check for slow consumers on a particular queue. Measured in seconds. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2836,6 +3172,30 @@ </xsd:annotation> </xsd:element> + <xsd:element name="auto-delete-created-queues" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + whether or not to delete created queues when the queue has 0 consumers and 0 messages + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="auto-delete-queues-delay" type="xsd:long" default="0" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + how long to wait (in milliseconds) before deleting auto-created queues after the queue has 0 + consumers. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="auto-delete-queues-message-count" type="xsd:long" default="0" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the message count the queue must be at or below before it can be evaluated to be auto deleted, 0 waits until empty queue (default) and -1 disables this check. </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="config-delete-queues" default="OFF" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> @@ -2857,7 +3217,6 @@ <xsd:documentation> whether or not to automatically create addresses when a client sends a message to or attempts to consume a message from a queue mapped to an address that doesn't exist - a queue </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2870,12 +3229,21 @@ </xsd:annotation> </xsd:element> + <xsd:element name="auto-delete-addresses-delay" type="xsd:long" default="0" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + how long to wait (in milliseconds) before deleting auto-created addresses after they no longer + have any queues + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="config-delete-addresses" default="OFF" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> What to do when an address is no longer in broker.xml. OFF = will do nothing addresses will remain, - FORCE = delete queues, and address even if messages remaining. + FORCE = delete address and its queues even if messages remaining. </xsd:documentation> </xsd:annotation> <xsd:simpleType> @@ -2886,8 +3254,7 @@ </xsd:simpleType> </xsd:element> - <xsd:element name="management-browse-page-size" type="xsd:int" default="200" maxOccurs="1" - minOccurs="0"> + <xsd:element name="management-browse-page-size" type="xsd:int" default="200" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> how many message a management resource can browse @@ -2895,12 +3262,53 @@ </xsd:annotation> </xsd:element> + <xsd:element name="default-purge-on-no-consumers" type="xsd:boolean" default="false" maxOccurs="1" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + purge the contents of the queue once there are no consumers + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="default-max-consumers" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the maximum number of consumers allowed on this queue at any one time + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="default-queue-routing-type" type="routing-type" default="MULTICAST" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the routing-type used on auto-created queues + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="default-address-routing-type" type="routing-type" default="MULTICAST" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the routing-type used on auto-created addresses + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="default-consumer-window-size" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0"> + <xsd:annotation> + <xsd:documentation> + the default window size for a consumer + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:all> <xsd:attribute name="match" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> - XXX + pattern for matching settings against addresses; can use wildards </xsd:documentation> </xsd:annotation> </xsd:attribute> @@ -2919,7 +3327,7 @@ <xsd:element name="max-connections" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - how many connections are allowed by the matched entity (-1 means no limit, default is -1) + how many connections are allowed by the matched user (-1 means no limit, default is -1) </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2927,7 +3335,7 @@ <xsd:element name="max-queues" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0"> <xsd:annotation> <xsd:documentation> - how many queues can be created by the matched entity (-1 means no limit, default is -1) + how many queues can be created by the matched user (-1 means no limit, default is -1) </xsd:documentation> </xsd:annotation> </xsd:element> @@ -2992,10 +3400,24 @@ </xsd:simpleContent> </xsd:complexType> - - <!-- 2.0 Addressing configuration --> + <xsd:simpleType name="routing-type"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="ANYCAST"/> + <xsd:enumeration value="MULTICAST"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:simpleType name="component-routing-type"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="ANYCAST"/> + <xsd:enumeration value="MULTICAST"/> + <xsd:enumeration value="STRIP"/> + <xsd:enumeration value="PASS"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:complexType name="queueType"> <xsd:all> <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/> @@ -3048,7 +3470,7 @@ <xsd:attribute name="name" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> - The address name to matches incoming message addresses + The address name to match incoming message addresses </xsd:documentation> </xsd:annotation> </xsd:attribute> @@ -3072,7 +3494,7 @@ <xsd:element maxOccurs="1" minOccurs="0" name="enabled" type="xsd:boolean"> <xsd:annotation> <xsd:documentation> - deprecated please use routing-enabled. + deprecated please use routing-enabled. </xsd:documentation> </xsd:annotation> </xsd:element> @@ -3107,4 +3529,5 @@ </xsd:all> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> + </xsd:schema>