<!--
  ~ 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"
>

	<!-- Static Dependencies -->
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticSimpleCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static" />
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticVoidCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="voidBind" />
			<callback type="unbind" method="voidUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticObjectCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticRefCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticBothCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMObjectCheckServiceProvider" architecture="true">
		<requires policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMRefCheckServiceProvider" architecture="true">
		<requires
			specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
			policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMBothCheckServiceProvider" architecture="true">
		<requires policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>

	<!-- Static Simple & Optional Dependencies -->
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticSimpleOptionalCheckServiceProvider"
		architecture="true">
		<requires field="fs" optional="true" policy="static" />
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticVoidOptionalCheckServiceProvider"
		architecture="true">
		<requires field="fs" optional="true" policy="static">
			<callback type="bind" method="voidBind" />
			<callback type="unbind" method="voidUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticObjectOptionalCheckServiceProvider"
		architecture="true">
		<requires field="fs" optional="true" policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticRefOptionalCheckServiceProvider" architecture="true">
		<requires field="fs" optional="true" policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.CheckServiceProvider"
		name="StaticBothOptionalCheckServiceProvider"
		architecture="true">
		<requires field="fs" optional="true" policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMObjectOptionalCheckServiceProvider"
		architecture="true">
		<requires optional="true" policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMRefOptionalCheckServiceProvider"
		architecture="true">
		<requires
			specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
			optional="true" policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodCheckServiceProvider"
		name="StaticMBothOptionalCheckServiceProvider"
		architecture="true">
		<requires
			specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
			optional="true" policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>
	<!--  Static Multiple Dependencies -->
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MultipleCheckService"
		name="StaticSimpleMultipleCheckServiceProvider"
		architecture="true">
		<requires field="fs" policy="static" />
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MultipleCheckService"
		name="StaticVoidMultipleCheckServiceProvider"
		architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="voidBind" />
			<callback type="unbind" method="voidUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MultipleCheckService"
		name="StaticObjectMultipleCheckServiceProvider"
		architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MultipleCheckService"
		name="StaticRefMultipleCheckServiceProvider" architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MultipleCheckService"
		name="StaticBothMultipleCheckServiceProvider"
		architecture="true">
		<requires field="fs" policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodMultipleCheckService"
		name="StaticMObjectMultipleCheckServiceProvider"
		architecture="true">
		<requires aggregate="true" policy="static">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodMultipleCheckService"
		name="StaticMRefMultipleCheckServiceProvider"
		architecture="true">
		<requires
			specification="org.apache.felix.ipojo.runtime.core.test.services.FooService"
			aggregate="true" policy="static">
			<callback type="bind" method="refBind" />
			<callback type="unbind" method="refUnbind" />
		</requires>
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.MethodMultipleCheckService"
		name="StaticMBothMultipleCheckServiceProvider"
		architecture="true">
		<requires aggregate="true" policy="static">
			<callback type="bind" method="bothBind" />
			<callback type="unbind" method="bothUnbind" />
		</requires>
		<provides />
	</component>	
	
	<!-- Dynamic-Priority -->
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.RankedFooProviderType1"
		name="RankedFooProviderType" architecture="true">
		<provides>
			<property field="m_grade" name="service.ranking"/>
		</provides>
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.DynCheckServiceProvider"
		name="DPSimpleCheckServiceProvider" architecture="true">
		<requires field="fs" policy="dynamic-priority" />
		<provides />
	</component>
	<component
		classname="org.apache.felix.ipojo.runtime.core.test.components.policies.DynCheckServiceProvider"
		name="DPObjectCheckServiceProvider" architecture="true">
		<requires field="fs" policy="dynamic-priority">
			<callback type="bind" method="objectBind" />
			<callback type="unbind" method="objectUnbind" />
		</requires>
		<provides />
	</component>
</ipojo>
