<?xml version="1.0" encoding="UTF-8"?>
<!--
  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">

  <bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />

  <!-- remote broker -->

  <broker xmlns="http://activemq.apache.org/schema/core" id="remotebroker"
    brokerName="remotebroker" persistent="false">
    <transportConnectors>
      <transportConnector uri="tcp://localhost:61666" />
    </transportConnectors>
  </broker>

  <!-- local broker with embedded Jms to Jms bridge (ok - it's contrived) -->
  
  <!-- START SNIPPET: example -->
  <broker xmlns="http://activemq.apache.org/schema/core" id="localbroker"
    brokerName="localBroker" persistent="false">

    <jmsBridgeConnectors>
      <jmsQueueConnector
        outboundQueueConnectionFactory="#remoteFactory">
        <inboundQueueBridges>
          <inboundQueueBridge
            inboundQueueName="org.apache.activemq.network.jms.QueueBridgeXBeanTest" />
        </inboundQueueBridges>
      </jmsQueueConnector>
    </jmsBridgeConnectors>

    <transportConnectors>
      <transportConnector uri="tcp://localhost:61234" />
    </transportConnectors>

  </broker>

  <!-- JMS ConnectionFactory to use remote -->
  <bean id="remoteFactory"
    class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61666" />
  </bean>
  <!-- END SNIPPET: example -->

  <!-- JMS ConnectionFactory to use local broker (the one with the bridge) -->
  <bean id="localFactory"
    class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61234" />
  </bean>

</beans>