Distribution activemq.xml does not match distribution activemq.xsd, causing
SAXParseException with newer versions of Spring
---------------------------------------------------------------------------------------------------------------------------
Key: AMQ-2599
URL: https://issues.apache.org/activemq/browse/AMQ-2599
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.3.0
Reporter: Kevin Hunter
Priority: Minor
In the 5.3.0 distribution, an "activemq.xml" file is provided in the "conf"
directory. The format of this file does not match the schema "activemq.xsd"
that is located in the activemq-core-5.3.0.jar. Specifically, in the latter,
the "broker" tag is defined as a sequence of tags as follows:
adminView
applicationContext
consumerSystemUsage
destinationFactory
destinationInterceptors
destinationPolicy
destinations
jmsBridgeConnectors
managementContext
messageAuthorizationPolicy
networkConnectorURIs
networkConnectors
persistenceAdapter
persistenceFactory
persistenceTaskRunnerFactory
plugins
producerSystemUsage
proxyConnectors
regionBroker
services
sslContext
systemUsage
taskRunnerFactory
tempDataStore
transportConnectorURIs
transportConnectors
(suspiciously, these tags are listed in alphabetical order - I question whether
"sequence" was the correct type in the xsd, as opposed to "one or more of the
following")
In any event, in the "activemq.xml" that is provided as part of the
distribution, the children of the "broker" tag are provided in the following
order:
managementContext
persistenceAdapter
destinationPolicy
systemUsage
transportConnectors
If the activemq.xsd file is correct, then "destinationPolicy" should have been
positioned first - before "managementContext". Alternately, the tag order in
the xsd file needs to be reworked.
This problem causes a SAXParseException if one tries to use the default
activemq.xml with Spring 3.0 jars used instead of the Spring 2.5.6 jars that
come with the distribution. I can only presume that the newer version of
Spring is configured, by default, to validate parsed XML against the XSD, while
Spring 2.5.6 is not.
I note that http://activemq.apache.org/networks-of-brokers.html indicates
"Order of construction of networks/persistence/transports IS important!" This
at least suggests to me that the ordering of other tags might possibly be
important, or that multiple orders may be valid depending on the desired
effect. Thus, it is not immediately obvious which of the two files is, in
fact, the correct one.
Regardless, it seems that the example XML file should match the provided XSD
file.
The current workaround is to either use a version of Spring earlier than 3, or
to edit the activemq.xml to re-order the children of "broker".
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.