<!--
  ~ 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.
  -->

<ipojo>
<!--
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/SNAPSHOT/core.xsd"
  xmlns="org.apache.felix.ipojo"
 -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.FooProviderType1"
    name="FooProviderType-1" architecture="true">
    <provides />
  </component>

  <!--  Simple Dependencies -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="SimpleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="VoidCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ObjectCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="RefCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="BothCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
    <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="MapCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DictCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedSimpleCheckServiceProvider" architecture="true">
    <requires field="fs" />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedVoidCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedObjectCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedRefCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedBothCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
    <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedMapCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedDictCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>


  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DoubleCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <requires field="fs" proxy="true"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedDoubleCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <requires field="fs" />
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MObjectCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MRefCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MBothCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MMapCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MDictCheckServiceProvider" architecture="true">
    <requires>
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <!-- Simple & Optional Dependencies -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="SimpleOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" id="FooService" proxy="false"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="SimpleOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false" />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="VoidOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="VoidOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ObjectOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ObjectOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="RefOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="RefOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="BothOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="MapOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DictOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedSimpleOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" id="FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedVoidOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedObjectOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedRefOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedBothOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedMapOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ProxiedDictOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="BothOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="MapOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DictOptionalNoNullableCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true" nullable="false">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MObjectOptionalCheckServiceProvider" architecture="true">
    <requires optional="true">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MRefOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MBothOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MMapOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="MDictOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>


  <!-- Simple & Optional Dependencies with default-implementation -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DISimpleOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl" />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIVoidOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIObjectOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIRefOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIBothOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIMapOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DIDictOptionalCheckServiceProvider" architecture="true">
    <requires field="fs" optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="DIMObjectOptionalCheckServiceProvider" architecture="true">
    <requires optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="DIMRefOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="DIMBothOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="DIMMapOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodCheckServiceProvider"
    name="DIMDictOptionalCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      optional="true"
      default-implementation="org.apache.felix.ipojo.runtime.core.test.components.FooServiceDefaultImpl">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <!--  Multiple Dependencies -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="SimpleMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedSimpleMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" />
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="VoidMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedVoidMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ObjectMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedObjectMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="RefMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedRefMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="BothMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedBothMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="MapMultipleCheckServiceProvider" architecture="true">
    <requires field="fs" proxy="false">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedMapMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="DictMultipleCheckServiceProvider" architecture="true" >
    <requires field="fs" proxy="false">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedDictMultipleCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MObjectMultipleCheckServiceProvider" architecture="true">
    <requires aggregate="true">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MRefMultipleCheckServiceProvider" architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      aggregate="true">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MBothMultipleCheckServiceProvider" architecture="true">
    <requires aggregate="true">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MMapMultipleCheckServiceProvider" architecture="true">
    <requires aggregate="true">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MDictMultipleCheckServiceProvider" architecture="true">
    <requires aggregate="true">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
    </requires>
    <provides />
  </component>

  <!-- Multiple & Optional Dependencies -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="SimpleOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true" proxy="false"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="VoidOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ObjectOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="RefOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true" proxy="false">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedSimpleOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true" />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedVoidOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedObjectOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MultipleCheckService"
    name="ProxiedRefOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires field="fs" optional="true">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MObjectOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires aggregate="true" optional="true">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.MethodMultipleCheckService"
    name="MRefOptionalMultipleCheckServiceProvider"
    architecture="true">
    <requires
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
      aggregate="true" optional="true">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
    </requires>
    <provides />
  </component>

  <!-- Aggregate dependency as List -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.ListCheckService"
    name="SimpleListCheckServiceProvider" architecture="true">
    <requires proxy="false"
      field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.ListCheckService"
    name="OptionalListCheckServiceProvider"
    architecture="true">
    <requires proxy="false"
      specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true" />
    <provides />
  </component>
   <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.ListCheckService"
    name="ProxiedSimpleListCheckServiceProvider" architecture="true">
    <requires field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.ListCheckService"
    name="ProxiedOptionalListCheckServiceProvider"
    architecture="true">
    <requires specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true" />
    <provides />
  </component>

  <!-- Aggregate dependency as Vector -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.VectorCheckService"
    name="SimpleVectorCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="objectBind"/>
      <callback type="unbind" method="objectUnbind"/>
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.VectorCheckService"
    name="OptionalVectorCheckServiceProvider"
    architecture="true">
    <requires specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true" />
    <provides />
  </component>

  <!-- Aggregate dependency as Set -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.SetCheckService"
    name="SimpleSetCheckServiceProvider" architecture="true">
    <requires proxy="false" field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.SetCheckService"
    name="OptionalSetCheckServiceProvider"
    architecture="true">
    <requires proxy="false" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true" />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.SetCheckService"
    name="ProxiedSimpleSetCheckServiceProvider" architecture="true">
    <requires field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.SetCheckService"
    name="ProxiedOptionalSetCheckServiceProvider"
    architecture="true">
    <requires specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true" />
    <provides />
  </component>

  <!-- Aggregate dependency as Collection -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CollectionCheckService"
    name="SimpleCollectionCheckServiceProvider" architecture="true">
    <requires field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" proxy="false"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CollectionCheckService"
    name="ProxiedSimpleCollectionCheckServiceProvider" architecture="true">
    <requires field="fs" specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"/>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CollectionCheckService"
    name="OptionalCollectionCheckServiceProvider"
    architecture="true">
    <requires specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true"
      proxy="false"
    />
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CollectionCheckService"
    name="ProxiedOptionalCollectionCheckServiceProvider"
    architecture="true">
    <requires specification="org.apache.felix.ipojo.runtime.core.test.services.FooService" field="fs" optional="true"
      proxy="false"
    />
    <provides />
  </component>


  <!-- Modify method test -->
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.FooProviderType2"
    name="FooProviderType-Updatable" architecture="true">
    <provides>
      <property name="foo" field="m_foo" value="foo"/>
    </provides>
  </component>

  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="VoidModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="voidBind" />
      <callback type="unbind" method="voidUnbind" />
      <callback type="modified" method="voidModify"/>
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="ObjectModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="objectBind" />
      <callback type="unbind" method="objectUnbind" />
      <callback type="modified" method="objectModify" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="RefModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="refBind" />
      <callback type="unbind" method="refUnbind" />
      <callback type="modified" method="refModify" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="BothModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="bothBind" />
      <callback type="unbind" method="bothUnbind" />
      <callback type="modified" method="bothModify" />
    </requires>
    <provides />
  </component>
    <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="MapModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesMapBind" />
      <callback type="unbind" method="propertiesMapUnbind" />
      <callback type="modified" method="propertiesMapModify" />
    </requires>
    <provides />
  </component>
  <component
    classname="org.apache.felix.ipojo.runtime.core.test.components.CheckServiceProvider"
    name="DictModifyCheckServiceProvider" architecture="true">
    <requires field="fs">
      <callback type="bind" method="propertiesDictionaryBind" />
      <callback type="unbind" method="propertiesDictionaryUnbind" />
      <callback type="modified" method="propertiesDictionaryModify" />
    </requires>
    <provides />
  </component>

  <!--  Proxy Tests -->
  <component classname="org.apache.felix.ipojo.runtime.core.test.components.proxy.CheckServiceDelegator">
    <provides/>
    <requires field="fs" optional="true"/>
  </component>
  <component classname="org.apache.felix.ipojo.runtime.core.test.components.proxy.CheckServiceGetAndDelegate">
    <provides/>
    <requires field="fs" optional="true"/>
  </component>
  <component classname="org.apache.felix.ipojo.runtime.core.test.components.proxy.CheckServiceNoDelegate">
      <provides/>
      <requires field="fs" optional="true"/>
      <callback transition="validate" method="start"/>
    <callback transition="invalidate" method="stop"/>
  </component>

  <component
  	classname="org.apache.felix.ipojo.runtime.core.test.components.proxy.CheckServiceUsingStringService"
  	immediate="true">
    <provides/>
    <requires field="string"/>
    <requires field="map"/>
  </component>

	<!-- Inner + Proxy mix -->
  <component
  	classname="org.apache.felix.ipojo.runtime.core.test.components.inner.C1">
  		<provides/>
  </component>
  <component
  	classname="org.apache.felix.ipojo.runtime.core.test.components.inner.C2">
  		<provides specifications="org.apache.felix.ipojo.runtime.core.test.components.inner.C2"/>
		<requires field="c1"/>
  </component>
  <component
  	classname="org.apache.felix.ipojo.runtime.core.test.components.inner.C3">
  		<provides specifications="org.apache.felix.ipojo.runtime.core.test.components.inner.C3"/>
		<requires field="c2"/>
  </component>

</ipojo>
