<?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.

-->
<service id="remoting-service" class="flex.messaging.services.RemotingService">

    <!--
        The set of adapters available for this service. A service uses an
        adapter to handle the implementation specifc details of a
        destination.
    -->
    <adapters>
        <!--
            id: A unique id for this adapter-definition. Destinations use this
                id to select which adapter should be used to process requests.
            class: The implementation class for the adapter. A single Remoting
                Service adapter ships with Flex 2:
                    flex.messaging.services.remoting.adapters.JavaAdapter
            default: An optional boolean attribute identifying the adapter to
                use when none is specified for a destination.
        -->
        <adapter-definition id="java-object"
                            class="flex.messaging.services.remoting.adapters.JavaAdapter"
                            default="true"/>
    </adapters>

    <!--
        The set of default channels to use to transport messages to
        remoting-service destinations.
    -->
    <default-channels>
        <channel ref="amf"/>
    </default-channels>

    <!-- This destination is used by AMFConnectionIT JUnit test -->
    <destination id="amfConnectionTestService" channels="amf">
        <properties>
            <source>remoting.amfclient.AMFConnectionTestService</source>
        </properties>
        <adapter ref="java-object"/>
    </destination>

</service>
