blob: 8ecb8e5cd0f87641cb19f880bd6b50a9e8811ffe [file] [log] [blame]
<!--
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.
-->
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- Allows us to use system properties as variables in this configuration file -->
<!-- bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:${DUCC_BROKER_CREDENTIALS_FILE}"/>
</bean>
<broker xmlns="http://activemq.apache.org/schema/core" persistent="false">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="false" optimizedDispatch="true">
<pendingSubscriberPolicy>
<vmCursor />
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="false" optimizedDispatch="true" maxPageSize="2000">
<pendingQueuePolicy>
<vmQueueCursor/>
</pendingQueuePolicy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="true" connectorPort="${DUCC_AMQ_JMX_PORT}"/>
</managementContext>
<systemUsage>
<systemUsage>
<memoryUsage>
<!-- Memory for incoming messages before going to broker's Store -->
<memoryUsage limit="500 mb"/>
</memoryUsage>
<storeUsage>
<!-- Broker's memory where messages are stored -->
<!-- before being dispatched to consumers -->
<storeUsage limit="1 gb" name="foo"/>
</storeUsage>
<tempUsage>
<!-- Disk space dedicated to persistent messages -->
<!-- Currently not used by Ducc -->
<tempUsage limit="500 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<plugins>
<!-- Configure authentication; Username, passwords and groups -->
<!-- The anonymousAccessAllowed=false prevents clients connecting with no username or password -->
<!-- from being assigned to username 'annonymous' and group 'annonymous' -->
<simpleAuthenticationPlugin anonymousAccessAllowed="false">
<users>
<authenticationUser username="${ducc.broker.admin.username}" password="${ducc.broker.admin.password}"
groups="ducc-admin"/>
</users>
</simpleAuthenticationPlugin>
<!-- Configure authorization -->
<!-- Creating and writing to Topics and Queues is restricted to users in ducc-admin group -->
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic=">" read="ducc-admin" write="ducc-admin" admin="ducc-admin" />
<authorizationEntry queue=">" read="ducc-admin" write="ducc-admin" admin="ducc-admin" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:${DUCC_AMQ_PORT}?${DUCC_AMQ_DECORATION}"/>
</transportConnectors>
</broker>
</beans>