This commit is contained in:
Howard Gao 2018-02-27 20:12:08 +08:00
commit aceacceb97
11 changed files with 636 additions and 6 deletions

View File

@ -20,6 +20,7 @@ under the License.
<configuration xmlns="urn:activemq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xi="http://www.w3.org/2001/XInclude"
xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
<core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

View File

@ -85,6 +85,7 @@ public final class XMLUtil {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6529766
factory.setNamespaceAware(true);
factory.setXIncludeAware(true);
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.parse(new InputSource(sreader));
return doc.getDocumentElement();

View File

@ -22,6 +22,8 @@
elementFormDefault="qualified"
version="1.0">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2005/08/xml.xsd"/>
<xsd:element name="core" type="configurationType"/>
<xsd:complexType name="configurationType">
@ -397,6 +399,7 @@
<xsd:sequence>
<xsd:element name="connector" type="transportType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -410,6 +413,7 @@
<xsd:sequence>
<xsd:element name="acceptor" type="transportType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -423,6 +427,7 @@
<xsd:sequence>
<xsd:element ref="broadcast-group" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -442,6 +447,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -455,6 +461,7 @@
<xsd:sequence>
<xsd:element name="divert" type="divertType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -504,9 +511,11 @@
<xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
<xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
<xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -520,6 +529,7 @@
<xsd:sequence>
<xsd:element name="bridge" type="bridgeType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -850,6 +860,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
@ -860,6 +871,7 @@
</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">
@ -886,6 +898,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
@ -896,6 +909,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
@ -915,9 +929,11 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -952,9 +968,11 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -968,6 +986,7 @@
<xsd:sequence>
<xsd:element ref="address-setting" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -981,6 +1000,7 @@
<xsd:sequence>
<xsd:element ref="resource-limit-setting" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -990,6 +1010,7 @@
<xsd:element name="connector-service" type="connector-serviceType" maxOccurs="unbounded"
minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1059,6 +1080,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="local-bind-address" type="xsd:string">
@ -1134,7 +1156,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1200,12 +1222,14 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref">
<xsd:complexType>
<xsd:attribute name="discovery-group-name" type="xsd:IDREF"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1224,6 +1248,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="paramType">
@ -1241,6 +1266,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- BRIDGE CONFIGURATION -->
@ -1419,6 +1445,7 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="1">
@ -1430,6 +1457,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
@ -1442,6 +1470,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- TRANSFORMER CONFIGURATION -->
@ -1462,6 +1491,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="property">
@ -1480,6 +1510,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1494,6 +1525,7 @@
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="cluster-connectionUriType">
@ -1511,6 +1543,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="cluster-connectionType">
@ -1709,6 +1742,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="0">
@ -1720,6 +1754,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
@ -1738,6 +1773,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
@ -1756,6 +1792,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- DIVERT CONFIGURATION TYPE -->
@ -1827,7 +1864,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="storeType">
@ -1847,9 +1884,11 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="fileStoreType">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="databaseStoreType">
@ -1925,6 +1964,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haPolicyType">
@ -1951,6 +1991,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haReplicationType">
@ -1977,6 +2018,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
@ -2028,6 +2070,7 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="master" type="replicatedPolicyType" minOccurs="0" maxOccurs="1">
@ -2045,6 +2088,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haColocationSharedStoreType">
@ -2099,6 +2143,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haSharedStoreType">
@ -2125,6 +2170,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haLiveOnlyPolicyType">
@ -2137,6 +2183,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="replicatedPolicyType">
<xsd:all>
@ -2207,6 +2254,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="replicaPolicyType">
<xsd:all>
@ -2309,6 +2357,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="colocatedReplicaPolicyType">
<xsd:all>
@ -2353,6 +2402,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="sharedStoreMasterPolicyType">
<xsd:all>
@ -2378,6 +2428,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="sharedStoreSlavePolicyType">
<xsd:all>
@ -2420,6 +2471,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="colocatedPolicyType">
<xsd:all>
@ -2459,6 +2511,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="scaleDownType">
<xsd:sequence>
@ -2489,6 +2542,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="connectors" minOccurs="0" maxOccurs="1">
@ -2503,10 +2557,12 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="groupingHandlerType">
@ -2563,6 +2619,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="address-setting">
@ -2916,6 +2973,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2951,6 +3009,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2968,6 +3027,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2989,6 +3049,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="transportType">
@ -3029,6 +3090,7 @@
<xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
<xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
<xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="addressType">
@ -3043,6 +3105,7 @@
<xsd:sequence>
<xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="multicast" maxOccurs="1" minOccurs="0">
@ -3055,6 +3118,7 @@
<xsd:sequence>
<xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
@ -3065,12 +3129,14 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="addressesType">
<xsd:sequence>
<xsd:element name="address" type="addressType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="wildcardType">
@ -3116,6 +3182,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:schema>

View File

@ -59,7 +59,9 @@ import org.junit.Test;
public class FileConfigurationTest extends ConfigurationImplTest {
private final String fullConfigurationName = "ConfigurationTest-full-config.xml";
protected String getConfigurationName() {
return "ConfigurationTest-full-config.xml";
}
@Override
@Test
@ -588,7 +590,7 @@ public class FileConfigurationTest extends ConfigurationImplTest {
try {
// copy working configuration to a location where the standard classloader cannot find it
final Path workingConfiguration = new File(getClass().getResource("/" + fullConfigurationName).toURI()).toPath();
final Path workingConfiguration = new File(getClass().getResource("/" + getConfigurationName()).toURI()).toPath();
final Path targetFile = customConfiguration.toPath();
Files.copy(workingConfiguration, targetFile, StandardCopyOption.REPLACE_EXISTING);
@ -663,7 +665,7 @@ public class FileConfigurationTest extends ConfigurationImplTest {
@Override
protected Configuration createConfiguration() throws Exception {
FileConfiguration fc = new FileConfiguration();
FileDeploymentManager deploymentManager = new FileDeploymentManager(fullConfigurationName);
FileDeploymentManager deploymentManager = new FileDeploymentManager(getConfigurationName());
deploymentManager.addDeployable(fc);
deploymentManager.readConfiguration();
return fc;

View File

@ -0,0 +1,25 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.artemis.core.config.impl;
public class FileXIncludeConfigurationTest extends FileConfigurationTest {
@Override
protected String getConfigurationName() {
return "ConfigurationTest-xinclude-config.xml";
}
}

View File

@ -0,0 +1,66 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<address-settings xmlns="urn:activemq:core">
<address-setting match="a1">
<dead-letter-address>a1.1</dead-letter-address>
<expiry-address>a1.2</expiry-address>
<redelivery-delay>1</redelivery-delay>
<max-size-bytes>817M</max-size-bytes>
<page-size-bytes>81738173872337</page-size-bytes>
<page-max-cache-size>10</page-max-cache-size>
<message-counter-history-day-limit>4</message-counter-history-day-limit>
<slow-consumer-threshold>10</slow-consumer-threshold>
<slow-consumer-check-period>5</slow-consumer-check-period>
<slow-consumer-policy>NOTIFY</slow-consumer-policy>
<auto-create-jms-queues>true</auto-create-jms-queues>
<auto-delete-jms-queues>true</auto-delete-jms-queues>
<auto-create-jms-topics>true</auto-create-jms-topics>
<auto-delete-jms-topics>true</auto-delete-jms-topics>
<auto-create-queues>true</auto-create-queues>
<auto-delete-queues>true</auto-delete-queues>
<auto-create-addresses>true</auto-create-addresses>
<auto-delete-addresses>true</auto-delete-addresses>
<default-purge-on-no-consumers>false</default-purge-on-no-consumers>
<default-max-consumers>5</default-max-consumers>
<default-queue-routing-type>ANYCAST</default-queue-routing-type>
<default-address-routing-type>MULTICAST</default-address-routing-type>
</address-setting>
<address-setting match="a2">
<dead-letter-address>a2.1</dead-letter-address>
<expiry-address>a2.2</expiry-address>
<redelivery-delay>5</redelivery-delay>
<max-size-bytes>932489234928324</max-size-bytes>
<page-size-bytes>7126716262626</page-size-bytes>
<page-max-cache-size>20</page-max-cache-size>
<message-counter-history-day-limit>8</message-counter-history-day-limit>
<slow-consumer-threshold>20</slow-consumer-threshold>
<slow-consumer-check-period>15</slow-consumer-check-period>
<slow-consumer-policy>KILL</slow-consumer-policy>
<auto-create-jms-queues>false</auto-create-jms-queues>
<auto-delete-jms-queues>false</auto-delete-jms-queues>
<auto-create-jms-topics>false</auto-create-jms-topics>
<auto-delete-jms-topics>false</auto-delete-jms-topics>
<auto-create-queues>false</auto-create-queues>
<auto-delete-queues>false</auto-delete-queues>
<auto-create-addresses>false</auto-create-addresses>
<auto-delete-addresses>false</auto-delete-addresses>
<default-purge-on-no-consumers>true</default-purge-on-no-consumers>
<default-max-consumers>15</default-max-consumers>
<default-queue-routing-type>MULTICAST</default-queue-routing-type>
<default-address-routing-type>ANYCAST</default-address-routing-type>
</address-setting>
</address-settings>

View File

@ -0,0 +1,50 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<addresses xmlns="urn:activemq:core">
<address name="addr1">
<anycast>
<queue name="q1">
<durable>false</durable>
<filter string="color='blue'"/>
</queue>
<queue name="q2" max-consumers="-1" purge-on-no-consumers="false">
<durable>true</durable>
<filter string="color='green'"/>
</queue>
</anycast>
</address>
<address name="addr2">
<multicast>
<queue name="q3" max-consumers="10" >
<filter string="color='red'"/>
</queue>
<queue name="q4" purge-on-no-consumers="true">
<durable>true</durable>
</queue>
</multicast>
</address>
<address name="addr2">
<multicast>
<queue name="q5" max-consumers="1" />
<queue name="q6" max-consumers="1" />
</multicast>
<anycast>
<queue name="q7" max-consumers="-1" />
<queue name="q8" max-consumers="-1" />
</anycast>
</address>
</addresses>

View File

@ -0,0 +1,24 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<security-settings xmlns="urn:activemq:core">
<security-setting match="a1">
<permission type="createNonDurableQueue" roles="a1.1"/>
</security-setting>
<security-setting match="a2">
<permission type="deleteNonDurableQueue" roles="a2.1"/>
</security-setting>
</security-settings>

View File

@ -0,0 +1,294 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration
xmlns="urn:activemq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xi="http://www.w3.org/2001/XInclude"
xsi:schemaLocation="urn:activemq ../../../../activemq-server/src/main/resources/schema/artemis-server.xsd">
<core xmlns="urn:activemq:core">
<name>SomeNameForUseOnTheApplicationServer</name>
<resolve-protocols>false</resolve-protocols>
<persistence-enabled>false</persistence-enabled>
<scheduled-thread-pool-max-size>12345</scheduled-thread-pool-max-size>
<thread-pool-max-size>54321</thread-pool-max-size>
<security-enabled>false</security-enabled>
<graceful-shutdown-enabled>true</graceful-shutdown-enabled>
<graceful-shutdown-timeout>12345</graceful-shutdown-timeout>
<security-invalidation-interval>5423</security-invalidation-interval>
<journal-lock-acquisition-timeout>123</journal-lock-acquisition-timeout>
<wild-card-routing-enabled>true</wild-card-routing-enabled>
<management-address>Giraffe</management-address>
<management-notification-address>Whatever</management-notification-address>
<cluster-user>Frog</cluster-user>
<cluster-password>32a10275cf4ab4e9</cluster-password>
<password-codec>org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec</password-codec>
<mask-password>true</mask-password>
<log-delegate-factory-class-name>com.foo</log-delegate-factory-class-name>
<jmx-management-enabled>false</jmx-management-enabled>
<jmx-domain>gro.qtenroh</jmx-domain>
<message-counter-enabled>true</message-counter-enabled>
<message-counter-sample-period>123456</message-counter-sample-period>
<message-counter-max-day-history>5</message-counter-max-day-history>
<connection-ttl-override>12345</connection-ttl-override>
<async-connection-execution-enabled>false</async-connection-execution-enabled>
<transaction-timeout>98765</transaction-timeout>
<transaction-timeout-scan-period>56789</transaction-timeout-scan-period>
<message-expiry-scan-period>10111213</message-expiry-scan-period>
<message-expiry-thread-priority>8</message-expiry-thread-priority>
<id-cache-size>127</id-cache-size>
<journal-datasync>false</journal-datasync>
<persist-id-cache>true</persist-id-cache>
<populate-validated-user>true</populate-validated-user>
<connection-ttl-check-interval>98765</connection-ttl-check-interval>
<configuration-file-refresh-period>1234567</configuration-file-refresh-period>
<global-max-size>1234567</global-max-size>
<max-disk-usage>37</max-disk-usage>
<disk-scan-period>123</disk-scan-period>
<critical-analyzer-policy>HALT</critical-analyzer-policy>
<critical-analyzer-check-period>333</critical-analyzer-check-period>
<critical-analyzer-timeout>777</critical-analyzer-timeout>
<critical-analyzer>false</critical-analyzer>
<remoting-incoming-interceptors>
<class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor1</class-name>
<class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor2</class-name>
</remoting-incoming-interceptors>
<remoting-outgoing-interceptors>
<class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor1</class-name>
<class-name>org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor2</class-name>
</remoting-outgoing-interceptors>
<persist-delivery-count-before-delivery>true</persist-delivery-count-before-delivery>
<connectors>
<connector name="connector1">tcp://localhost1:5678?localAddress=mylocal;localPort=99</connector>
<connector name="connector2">vm://5</connector>
</connectors>
<acceptors>
<acceptor>tcp://0.0.0.0:61616?tcpNoDelay=456;connectionTtl=44;connectionsAllowed=92</acceptor>
<acceptor>vm://0?e1=z1;e2=567;connectionsAllowed=87</acceptor>
</acceptors>
<broadcast-groups>
<broadcast-group name="bg1">
<local-bind-port>10999</local-bind-port>
<group-address>192.168.0.120</group-address>
<group-port>11999</group-port>
<broadcast-period>12345</broadcast-period>
<connector-ref>connector1</connector-ref>
</broadcast-group>
<broadcast-group name="bg2">
<local-bind-port>12999</local-bind-port>
<group-address>192.168.0.121</group-address>
<group-port>13999</group-port>
<broadcast-period>23456</broadcast-period>
<connector-ref>connector2</connector-ref>
</broadcast-group>
</broadcast-groups>
<discovery-groups>
<discovery-group name="dg1">
<local-bind-address>172.16.8.10</local-bind-address>
<group-address>192.168.0.120</group-address>
<group-port>11999</group-port>
<refresh-timeout>12345</refresh-timeout>
</discovery-group>
<discovery-group name="dg2">
<local-bind-address>172.16.8.11</local-bind-address>
<group-address>192.168.0.121</group-address>
<group-port>12999</group-port>
<refresh-timeout>23456</refresh-timeout>
</discovery-group>
</discovery-groups>
<diverts>
<divert name="divert1">
<routing-name>routing-name1</routing-name>
<address>address1</address>
<forwarding-address>forwarding-address1</forwarding-address>
<filter string="speed > 88"/>
<transformer-class-name>org.foo.Transformer</transformer-class-name>
<exclusive>true</exclusive>
</divert>
<divert name="divert2">
<routing-name>routing-name2</routing-name>
<address>address2</address>
<forwarding-address>forwarding-address2</forwarding-address>
<filter string="speed &lt; 88"/>
<transformer-class-name>org.foo.Transformer2</transformer-class-name>
<exclusive>false</exclusive>
</divert>
<divert name="divert3">
<routing-name>routing-name2</routing-name>
<address>address2</address>
<forwarding-address>forwarding-address2</forwarding-address>
<filter string="speed &lt; 88"/>
<transformer>
<class-name>org.foo.DivertTransformer3</class-name>
<property key="divertTransformerKey1" value="divertTransformerValue1"/>
<property key="divertTransformerKey2" value="divertTransformerValue2"/>
</transformer>
<exclusive>false</exclusive>
</divert>
</diverts>
<amqp-use-core-subscription-naming>true</amqp-use-core-subscription-naming>
<queues>
<queue name="queue1">
<address>address1</address>
<filter string="color='red'"/>
<durable>false</durable>
</queue>
<queue name="queue2">
<address>address2</address>
<filter string="color='blue'"/>
<durable>false</durable>
</queue>
</queues>
<bridges>
<bridge name="bridge1">
<queue-name>queue1</queue-name>
<forwarding-address>bridge-forwarding-address1</forwarding-address>
<filter string="sku > 1"/>
<transformer-class-name>org.foo.BridgeTransformer</transformer-class-name>
<min-large-message-size>4M</min-large-message-size>
<check-period>31</check-period>
<connection-ttl>370</connection-ttl>
<retry-interval>3</retry-interval>
<retry-interval-multiplier>0.2</retry-interval-multiplier>
<max-retry-interval>10002</max-retry-interval>
<reconnect-attempts>2</reconnect-attempts>
<failover-on-server-shutdown>false</failover-on-server-shutdown>
<use-duplicate-detection>true</use-duplicate-detection>
<confirmation-window-size>1G</confirmation-window-size>
<producer-window-size>444</producer-window-size>
<static-connectors>
<connector-ref>connector1</connector-ref>
</static-connectors>
</bridge>
<bridge name="bridge2">
<queue-name>queue2</queue-name>
<forwarding-address>bridge-forwarding-address2</forwarding-address>
<producer-window-size>555k</producer-window-size>
<discovery-group-ref discovery-group-name="dg1"/>
</bridge>
<bridge name="bridge3">
<queue-name>queue3</queue-name>
<forwarding-address>bridge-forwarding-address2</forwarding-address>
<transformer>
<class-name>org.foo.BridgeTransformer3</class-name>
<property key="bridgeTransformerKey1" value="bridgeTransformerValue1"/>
<property key="bridgeTransformerKey2" value="bridgeTransformerValue2"/>
</transformer>
<producer-window-size>555k</producer-window-size>
<discovery-group-ref discovery-group-name="dg1"/>
</bridge>
</bridges>
<ha-policy>
<!--only one of the following-->
<!--on server shutdown scale down to another live server-->
<live-only>
<scale-down>
<!--a grouping of servers that can be scaled down to-->
<group-name>boo!</group-name>
<!--either a discovery group-->
<discovery-group-ref discovery-group-name="dg1"/>
</scale-down>
</live-only>
</ha-policy>
<cluster-connections>
<cluster-connection name="cluster-connection1">
<address>queues1</address>
<connector-ref>connector1</connector-ref>
<check-period>331</check-period>
<connection-ttl>3370</connection-ttl>
<min-large-message-size>321</min-large-message-size>
<call-timeout>123</call-timeout>
<retry-interval>3</retry-interval>
<retry-interval-multiplier>0.25</retry-interval-multiplier>
<max-retry-interval>10000</max-retry-interval>
<reconnect-attempts>72</reconnect-attempts>
<use-duplicate-detection>true</use-duplicate-detection>
<message-load-balancing>ON_DEMAND</message-load-balancing>
<max-hops>1</max-hops>
<producer-window-size>222</producer-window-size>
<call-failover-timeout>123</call-failover-timeout>
<static-connectors>
<connector-ref>connector1</connector-ref>
<connector-ref>connector2</connector-ref>
</static-connectors>
</cluster-connection>
<cluster-connection name="cluster-connection2">
<address>queues2</address>
<connector-ref>connector2</connector-ref>
<call-timeout>456</call-timeout>
<retry-interval>4</retry-interval>
<use-duplicate-detection>false</use-duplicate-detection>
<message-load-balancing>STRICT</message-load-balancing>
<max-hops>2</max-hops>
<producer-window-size>333</producer-window-size>
<call-failover-timeout>456</call-failover-timeout>
<discovery-group-ref discovery-group-name="dg1"/>
</cluster-connection>
</cluster-connections>
<grouping-handler name="gh1">
<type>LOCAL</type>
<address>jms</address>
</grouping-handler>
<paging-directory>pagingdir</paging-directory>
<bindings-directory>somedir</bindings-directory>
<create-bindings-dir>false</create-bindings-dir>
<page-max-concurrent-io>17</page-max-concurrent-io>
<journal-directory>somedir2</journal-directory>
<create-journal-dir>false</create-journal-dir>
<journal-type>NIO</journal-type>
<journal-buffer-timeout>1000</journal-buffer-timeout>
<journal-buffer-size>10000</journal-buffer-size>
<journal-sync-transactional>false</journal-sync-transactional>
<journal-sync-non-transactional>true</journal-sync-non-transactional>
<log-journal-write-rate>true</log-journal-write-rate>
<journal-file-size>12345678</journal-file-size>
<journal-min-files>100</journal-min-files>
<journal-compact-percentage>33</journal-compact-percentage>
<journal-compact-min-files>123</journal-compact-min-files>
<journal-max-io>56546</journal-max-io>
<journal-file-open-timeout>9876</journal-file-open-timeout>
<server-dump-interval>5000</server-dump-interval>
<memory-warning-threshold>95</memory-warning-threshold>
<memory-measure-interval>54321</memory-measure-interval>
<large-messages-directory>largemessagesdir</large-messages-directory>
<network-check-list>127.0.0.1</network-check-list>
<network-check-NIC>some-nick</network-check-NIC>
<network-check-period>123</network-check-period>
<network-check-timeout>321</network-check-timeout>
<network-check-URL-list>www.apache.org</network-check-URL-list>
<network-check-ping-command>ping-four</network-check-ping-command>
<network-check-ping6-command>ping-six</network-check-ping6-command>
<xi:include href="./src/test/resources/ConfigurationTest-xinclude-config-security-settings.xml"/>
<xi:include href="./src/test/resources/ConfigurationTest-xinclude-config-address-settings.xml"/>
<resource-limit-settings>
<resource-limit-setting match="myUser">
<max-connections>104</max-connections>
<max-queues>13</max-queues>
</resource-limit-setting>
</resource-limit-settings>
<connector-services>
<connector-service>
<factory-class>org.foo</factory-class>
</connector-service>
</connector-services>
<xi:include href="./src/test/resources/ConfigurationTest-xinclude-config-addresses.xml"/>
</core>
</configuration>

View File

@ -379,6 +379,7 @@
<xsd:sequence>
<xsd:element name="connector" type="transportType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -392,6 +393,7 @@
<xsd:sequence>
<xsd:element name="acceptor" type="transportType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -405,6 +407,7 @@
<xsd:sequence>
<xsd:element ref="broadcast-group" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -424,6 +427,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -437,6 +441,7 @@
<xsd:sequence>
<xsd:element name="divert" type="divertType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -486,9 +491,11 @@
<xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
<xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
<xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -502,6 +509,7 @@
<xsd:sequence>
<xsd:element name="bridge" type="bridgeType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -782,6 +790,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
@ -792,6 +801,7 @@
</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">
@ -818,6 +828,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
@ -828,9 +839,11 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -844,6 +857,7 @@
<xsd:sequence>
<xsd:element ref="address-setting" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -857,6 +871,7 @@
<xsd:sequence>
<xsd:element ref="resource-limit-setting" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -866,6 +881,7 @@
<xsd:element name="connector-service" type="connector-serviceType" maxOccurs="unbounded"
minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -879,6 +895,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="local-bind-address" type="xsd:string">
@ -955,6 +972,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1020,12 +1038,14 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref">
<xsd:complexType>
<xsd:attribute name="discovery-group-name" type="xsd:IDREF"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1044,6 +1064,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="paramType">
@ -1061,6 +1082,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- BRIDGE CONFIGURATION -->
@ -1238,6 +1260,7 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="1">
@ -1249,6 +1272,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
@ -1261,6 +1285,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- TRANSFORMER CONFIGURATION -->
@ -1281,6 +1306,7 @@
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="property">
@ -1299,6 +1325,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -1313,6 +1340,7 @@
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="cluster-connectionUriType">
@ -1330,6 +1358,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="cluster-connectionType">
@ -1526,6 +1555,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="0">
@ -1537,6 +1567,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
@ -1555,6 +1586,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
@ -1573,6 +1605,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<!-- DIVERT CONFIGURATION TYPE -->
@ -1652,7 +1685,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="storeType">
@ -1672,9 +1705,11 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="fileStoreType">
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="databaseStoreType">
@ -1722,6 +1757,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haPolicyType">
@ -1748,6 +1784,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haReplicationType">
@ -1774,6 +1811,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
@ -1825,6 +1863,7 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="master" type="replicatedPolicyType" minOccurs="0" maxOccurs="1">
@ -1842,6 +1881,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haColocationSharedStoreType">
@ -1896,6 +1936,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haSharedStoreType">
@ -1922,6 +1963,7 @@
</xsd:annotation>
</xsd:element>
</xsd:choice>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="haLiveOnlyPolicyType">
@ -1934,6 +1976,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="replicatedPolicyType">
<xsd:all>
@ -1974,6 +2017,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="replicaPolicyType">
<xsd:all>
@ -2046,6 +2090,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="colocatedReplicaPolicyType">
<xsd:all>
@ -2090,6 +2135,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="sharedStoreMasterPolicyType">
<xsd:all>
@ -2108,6 +2154,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="sharedStoreSlavePolicyType">
<xsd:all>
@ -2150,6 +2197,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="colocatedPolicyType">
<xsd:all>
@ -2189,6 +2237,7 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="scaleDownType">
<xsd:sequence>
@ -2219,6 +2268,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="connectors" minOccurs="0" maxOccurs="1">
@ -2233,10 +2283,12 @@
<xsd:sequence>
<xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="groupingHandlerType">
@ -2293,6 +2345,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:element name="address-setting">
@ -2613,6 +2666,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2648,6 +2702,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2665,6 +2720,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
@ -2686,6 +2742,7 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="transportType">
@ -2712,6 +2769,7 @@
<xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
<xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
<xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="addressType">
@ -2726,6 +2784,7 @@
<xsd:sequence>
<xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="multicast" maxOccurs="1" minOccurs="0">
@ -2738,6 +2797,7 @@
<xsd:sequence>
<xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
@ -2748,12 +2808,14 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="addressesType">
<xsd:sequence>
<xsd:element name="address" type="addressType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
<xsd:complexType name="wildcardType">
@ -2799,5 +2861,6 @@
</xsd:annotation>
</xsd:element>
</xsd:all>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:complexType>
</xsd:schema>

View File

@ -32,6 +32,43 @@ You can also change the prefix through the broker.xml by setting:
This is to help you customize artemis on embedded systems.
# Modularising config into separate files.
XML XInclude support is provided in the configuration as such if you wish to break your configuration out into separate files you can.
To do this ensure the following is defined at the root configuration element.
```
xmlns:xi="http://www.w3.org/2001/XInclude"
```
You can now define include tag's where you want to bring in xml configuration from another file:
```
<xi:include href="my-address-settings.xml"/>
```
You should ensure xml elements in separated files should be namespaced correctly for example if address-settings element was separated, it should have the element namespace defined:
```
<address-settings xmlns="urn:activemq:core">
```
An example can of this feature can be seen in the test suites:
```
./artemis-server/src/test/resources/ConfigurationTest-xinclude-config.xml
```
N.B. if you use xmllint to validate xml's against schema you should enable xinclude flag when running.
```
--xinclude
```
For further information on XInclude see:
[https://www.w3.org/TR/xinclude/](https://www.w3.org/TR/xinclude/)
# The core configuration
This describes the root of the XML configuration. You will see here also multiple sub-types listed.