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.

Reply via email to