<?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. -->
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0"> 

    <scr:component name="SimpleComponent"
        configuration-policy="require">
        <implementation class="org.apache.felix.scr.integration.components.deadlock.TestComponent" />
        <service>
            <provide interface='org.apache.felix.scr.integration.components.deadlock.TestComponent' />
        </service>
        <reference
            name="Ref"
            interface="java.lang.Object"
            cardinality="0..1"
            policy="dynamic"
            bind="setRef"
            unbind="unsetRef"
        />
    </scr:component>


    <scr:component name="AsyncLocate"
        immediate="true">
        <implementation class="org.apache.felix.scr.integration.components.deadlock.Consumer" />
        <reference
            name="SimpleComponent"
            interface="org.apache.felix.scr.integration.components.deadlock.TestComponent"
            cardinality="0..1"
            policy="dynamic"
            bind="setSimpleComponent"
            unbind="unsetSimpleComponent"
            target='target="foo"'
        />
    </scr:component>

</components>
