<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 -
 - 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.
 -
 -->
<broker>
    <prefix>${QPID_HOME}</prefix>
    <work>${QPID_WORK}</work>
    <conf>${prefix}/etc</conf>
    <connector>
        <!-- Uncomment out this block and edit the keystorePath and keystorePassword
             to enable SSL support
        <ssl>
            <enabled>true</enabled>
            <sslOnly>true</sslOnly>
            <keystorePath>/path/to/keystore.ks</keystorePath>
            <keystorePassword>keystorepass</keystorePassword>
        </ssl>-->
        <qpidnio>true</qpidnio>
        <transport>nio</transport>
        <port>5672</port>
        <sslport>8672</sslport>
        <socketReceiveBuffer>32768</socketReceiveBuffer>
        <socketSendBuffer>32768</socketSendBuffer>
    </connector>
    <management>
        <enabled>true</enabled>
        <jmxport>8999</jmxport>
        <security-enabled>false</security-enabled>
    </management>
    <advanced>
        <filterchain enableExecutorPool="true"/>
        <enablePooledAllocator>false</enablePooledAllocator>
        <enableDirectBuffers>false</enableDirectBuffers>
        <framesize>65535</framesize>
        <compressBufferOnQueue>false</compressBufferOnQueue>
    </advanced>

    <security>
        <principal-databases>
            <principal-database>
                <name>passwordfile</name>
                <class>org.apache.qpid.server.security.auth.database.PlainPasswordVhostFilePrincipalDatabase</class>
                <attributes>
                    <attribute>
                        <name>passwordFile</name>
                        <value>${conf}/passwdVhost</value>
                    </attribute>
                </attributes>
            </principal-database>

            <!-- Example use of Base64 encoded MD5 hashes for authentication via CRAM-MD5-Hashed
            <principal-database>
                <name>passwordfile</name>
                <class>org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase</class>
                <attributes>
                    <attribute>
                        <name>passwordFile</name>
                        <value>${conf}/qpid.passwd</value>
                    </attribute>
                </attributes>
            </principal-database-->
        </principal-databases>

        <access>
            <class>org.apache.qpid.server.security.access.AllowAll</class>
        </access>
        <jmx>
            <access>${conf}/jmxremote.access</access>
            <principal-database>passwordfile</principal-database>
        </jmx>        
    </security>

    <virtualhosts>
        <virtualhost>
            <name>localhost</name>
            <localhost>
                <store>
                    <!-- <class>org.apache.qpid.server.store.berkeleydb.BDBMessageStore</class>
                    <environment-path>${work}/localhost-store</environment-path> -->

                    <class>org.apache.qpid.server.store.MemoryMessageStore</class>
                </store>
                <txn>
                    <environment-tx-timeout>60</environment-tx-timeout>
                	  <!-- <class>org.apache.qpid.server.store.berkeleydb.txn.TransactionManagerImpl</class> -->
                	  <class>org.apache.qpid.server.txn.MemoryTransactionManager</class>
                </txn>

                <security>
                    <!-- Need protocol changes to allow this-->
                    <authentication>
                        <name>passwordfile</name>
                        <!-- Currently this can't be used as Vhost isn't specified at connection start only connection open -->
                        <mechanism>PLAIN</mechanism>
                    </authentication>
                    <access>
                        <class>org.apache.qpid.server.security.access.PrincipalDatabaseAccessManager</class>
                        <attributes>
                            <attribute>
                                <name>principalDatabase</name>
                                <value>passwordfile</value>
                            </attribute>
                            <attribute>
                                <name>defaultAccessManager</name>
                                <value>DenyAll</value>
                            </attribute>
                        </attributes>
                    </access>
                </security>
            </localhost>
        </virtualhost>

        <virtualhost>
            <name>development</name>
            <development>
                <store>
                    <class>org.apache.qpid.server.store.MemoryMessageStore</class>
                </store>             
                <txn>
                  	  <class>org.apache.qpid.server.txn.MemoryTransactionManager</class>
                </txn>
                <security>
                    <name>passwordfile-notusedyet</name>
                    <mechanism>PLAIN</mechanism>
                    <mechanism>CRAM-MD5</mechanism>
                </security>
            </development>
        </virtualhost>

        <virtualhost>
            <name>test</name>
            <test>
                <store>                  
                    <class>org.apache.qpid.server.store.MemoryMessageStore</class>
                </store>             
                <txn>
                  	  <class>org.apache.qpid.server.txn.MemoryTransactionManager</class>
                </txn>
                <security>
                    <name>passwordfile-notusedyet</name>
                    <mechanism>PLAIN</mechanism>
                    <mechanism>CRAM-MD5</mechanism>
                </security>
                <access>
                    <class>org.apache.qpid.server.security.access.PrincipalDatabaseAccessManager</class>
                    <attributes>
                        <attribute>
                            <name>principalDatabase</name>
                            <value>rubbish-to-cause-default</value>
                        </attribute>
                    </attributes>
                </access>

            </test>
        </virtualhost>

    </virtualhosts>
    <heartbeat>
        <delay>0</delay>
        <timeoutFactor>2.0</timeoutFactor>
    </heartbeat>
    <queue>
        <auto_register>true</auto_register>
    </queue>

    <virtualhosts>${conf}/virtualhosts.xml</virtualhosts>
</broker>


