<?xml version="1.0"?>
<!--
 -
 - 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.
 -
 -->
<jboss
        xmlns="http://www.jboss.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee
                            http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
        version="3.0">

    <enterprise-beans>
        <message-driven>
           <ejb-name>QpidHelloListenerBean</ejb-name>
           <resource-adapter-name>@rar.name@</resource-adapter-name>
        </message-driven>
        <message-driven>
           <ejb-name>QpidGoodByeListenerBean</ejb-name>
           <resource-adapter-name>@rar.name@</resource-adapter-name>
        </message-driven>
        <message-driven>
           <ejb-name>QpidHelloSubscriberBean</ejb-name>
           <resource-adapter-name>@rar.name@</resource-adapter-name>
        </message-driven>
        <message-driven>
           <ejb-name>QpidGoodByeSubscriberBean</ejb-name>
           <resource-adapter-name>@rar.name@</resource-adapter-name>
        </message-driven>
        <message-driven>
           <ejb-name>QpidJMSResponderBean</ejb-name>
           <resource-adapter-name>@rar.name@</resource-adapter-name>
        </message-driven>
    </enterprise-beans>

</jboss>
