<?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='org.apache.felix.scr.integration.components.concurrency.A'
		factory='AFactory' activate='start'>
		<implementation
			class='org.apache.felix.scr.integration.components.concurrency.A' />
		<reference name='b'
			interface='org.apache.felix.scr.integration.components.concurrency.B'
			bind='bindB' cardinality='0..n' policy='dynamic' />
	</scr:component>

	<scr:component
		name='org.apache.felix.scr.integration.components.concurrency.B'>
		<implementation
			class='org.apache.felix.scr.integration.components.concurrency.B' />
		<service>
			<provide interface='org.apache.felix.scr.integration.components.concurrency.B' />
		</service>
		<reference name='c'
			interface='org.apache.felix.scr.integration.components.concurrency.C'
			bind='bindC' />
	</scr:component>

	<scr:component
		name='org.apache.felix.scr.integration.components.concurrency.C'
		factory='CFactory'>
		<implementation
			class='org.apache.felix.scr.integration.components.concurrency.C' />
		<service>
			<provide interface='org.apache.felix.scr.integration.components.concurrency.C' />
		</service>
	</scr:component>

	<scr:component enabled='false'
		name='org.apache.felix.scr.integration.components.concurrency.AFactory'
		activate='activate' deactivate='deactivate'>
		<implementation
			class='org.apache.felix.scr.integration.components.concurrency.AFactory' />
		<reference name='aFactory'
			interface='org.osgi.service.component.ComponentFactory' bind='bindAFactory'
			target='(component.factory=AFactory)' />
	</scr:component>

	<scr:component enabled='false'
		name='org.apache.felix.scr.integration.components.concurrency.CFactory'
		activate='activate' deactivate='deactivate'>
		<implementation
			class='org.apache.felix.scr.integration.components.concurrency.CFactory' />
		<reference name='cFactory'
			interface='org.osgi.service.component.ComponentFactory' bind='bindCFactory'
			target='(component.factory=CFactory)' />
	</scr:component>
</components>
