<!--
  ~ 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>
		<component
		classname="org.apache.felix.ipojo.runtime.core.components.FooProviderTypeDyn"
		name="CONFIG-FooProviderType-Conf" architecture="true">
		<provides />
		<properties propagation="false">
			<property name="int" field="intProp" value="2" />
			<property name="boolean" field="boolProp" value="false" />
			<property name="string" field="strProp" value="foo" />
			<property name="strAProp" field="strAProp"
				value="{foo, bar}" />
			<property name="intAProp" field="intAProp" value="{1,2, 3}" />
		</properties>
	</component>

	<component
		classname="org.apache.felix.ipojo.runtime.core.components.FooProviderTypeDyn"
		name="CONFIG-FooProviderType-ConfNoValue" architecture="true">
		<provides />
		<properties propagation="false">
			<property name="int" field="intProp"/>
			<property name="boolean" field="boolProp"/>
			<property name="string" field="strProp"/>
			<property name="strAProp" field="strAProp"/>
			<property name="intAProp" field="intAProp"/>
		</properties>
	</component>


	<component
		classname="org.apache.felix.ipojo.runtime.core.components.FooProviderType1"
		name="CONFIG-FooProviderType-3" architecture="true">
		<provides>
			<property name="foo" field="m_foo" />
			<property name="bar" field="m_bar" />
			<property name="baz" type="java.lang.String" />
		</provides>
		<properties propagation="true">
			<property name="foo" field="m_foo" />
			<property name="bar" field="m_bar" />
		</properties>
	</component>
	<!-- Configuration Management Test -->
	<component name="CONFIG-FieldConfigurableCheckService"
		classname="org.apache.felix.ipojo.runtime.core.components.ConfigurableCheckServiceProvider"
		architecture="true">
		<provides />
		<properties propagation="true">
			<property field="b" />
			<property field="s" />
			<property field="i" />
			<property field="l" />
			<property field="d" />
			<property field="f" />
			<property field="c" />
			<property field="bool" />
			<property field="bs" />
			<property field="ss" />
			<property field="is" />
			<property field="ls" />
			<property field="ds" />
			<property field="fs" />
			<property field="cs" />
			<property field="bools" />
			<property field="string" />
			<property field="strings" />
		</properties>
	</component>

	<component name="CONFIG-BothConfigurableCheckService"
		classname="org.apache.felix.ipojo.runtime.core.components.ConfigurableCheckServiceProvider"
		architecture="true">
		<provides />
		<properties propagation="true">
			<property field="b" method="updateB" />
			<property field="s" method="updateS" />
			<property field="i" method="updateI" />
			<property field="l" method="updateL" />
			<property field="d" method="updateD" />
			<property field="f" method="updateF" />
			<property field="c" method="updateC" />
			<property field="bool" method="updateBool" />
			<property field="bs" method="updateBs" />
			<property field="ss" method="updateSs" />
			<property field="is" method="updateIs" />
			<property field="ls" method="updateLs" />
			<property field="ds" method="updateDs" />
			<property field="fs" method="updateFs" />
			<property field="cs" method="updateCs" />
			<property field="bools" method="updateBools" />
			<property field="string" method="updateString" />
			<property field="strings" method="updateStrings" />
		</properties>
	</component>

	<component name="CONFIG-MethodConfigurableCheckService"
		classname="org.apache.felix.ipojo.runtime.core.components.ConfigurableCheckServiceProvider"
		architecture="true">
		<provides />
		<properties propagation="true">
			<property method="updateB" name="b" />
			<property method="updateS" name="s" />
			<property method="updateI" name="i" />
			<property method="updateL" name="l" />
			<property method="updateD" name="d" />
			<property method="updateF" name="f" />
			<property method="updateC" name="c" />
			<property method="updateBool" name="bool" />
			<property method="updateBs" name="bs" />
			<property method="updateSs" name="ss" />
			<property method="updateIs" name="is" />
			<property method="updateLs" name="ls" />
			<property method="updateDs" name="ds" />
			<property method="updateFs" name="fs" />
			<property method="updateCs" name="cs" />
			<property method="updateBools" name="bools" />
			<property method="updateString" name="string" />
			<property method="updateStrings" name="strings" />
		</properties>
	</component>

	<component name="CONFIG-ParentMethodConfigurableCheckService"
		classname="org.apache.felix.ipojo.runtime.core.components.ParentConfigurableCheckServiceProvider"
		architecture="true">
		<provides />
		<properties propagation="true">
			<property method="updateB" name="b" />
			<property method="updateS" name="s" />
			<property method="updateI" name="i" />
			<property method="updateL" name="l" />
			<property method="updateD" name="d" />
			<property method="updateF" name="f" />
			<property method="updateC" name="c" />
			<property method="updateBool" name="bool" />
			<property method="updateBs" name="bs" />
			<property method="updateSs" name="ss" />
			<property method="updateIs" name="is" />
			<property method="updateLs" name="ls" />
			<property method="updateDs" name="ds" />
			<property method="updateFs" name="fs" />
			<property method="updateCs" name="cs" />
			<property method="updateBools" name="bools" />
			<property method="updateString" name="string" type="string" />
			<property method="updateStrings" name="strings"
				type="java.lang.String[]" />
		</properties>
	</component>

	<component
		classname="org.apache.felix.ipojo.runtime.core.components.FooProviderType1"
		name="CONFIG-FooProviderType-4" architecture="true">
		<provides>
			<property name="foo" field="m_foo" />
			<property name="bar" field="m_bar" />
			<property name="baz" type="java.lang.String" />
		</provides>
		<properties propagation="true" pid="FooProvider-3">
			<property name="foo" field="m_foo" />
			<property name="bar" field="m_bar" />
		</properties>
	</component>

	<component
		classname="org.apache.felix.ipojo.runtime.core.components.ComplexConfiguration">
		<provides>
			<property name="array" field="m_array"/>
			<property name="complex-array" field="m_complexArray"/>
			<property name="list" field="m_list"/>
			<property name="complex-list" field="m_complexList"/>
			<property name="map" field="m_map"/>
			<property name="complex-map" field="m_complexMap"/>
			<property name="dict" field="m_dict"/>
			<property name="empty-array" type="String[]"/>
			<property name="empty-map" type="java.util.HashMap"/>
			<property name="empty-list" type="java.util.List"/>
		</provides>
		<properties>
			<property name="array" field="m_array"/>
			<property name="complex-array" field="m_complexArray"/>
			<property name="list" field="m_list"/>
			<property name="complex-list" field="m_complexList"/>
			<property name="map" field="m_map"/>
			<property name="complex-map" field="m_complexMap"/>
			<property name="dict" field="m_dict"/>
		</properties>
	</component>

	<instance component="org.apache.felix.ipojo.runtime.core.components.ComplexConfiguration" name="complex">
		<property name="array" type="array">
			<property value="a"/>
			<property value="b"/>
		</property>
		<property name="list" type="list">
			<property value="a"/>
			<property value="b"/>
		</property>
		<property name="dict" type="dictionary">
			<property name="a" value="a"/>
			<property name="b" value="b"/>
		</property>
		<property name="map" type="map">
			<property name="a" value="a"/>
			<property name="b" value="b"/>
		</property>
		<property name="complex-array" type="array">
			<property type="list">
				<property value="a"/>
				<property value="b"/>
			</property>
			<property type="list">
				<property value="c"/>
				<property value="d"/>
			</property>
		</property>
		<property name="complex-list" type="list">
			<property type="list">
				<property value="a"/>
				<property value="b"/>
			</property>
			<property type="list">
				<property value="c"/>
				<property value="d"/>
			</property>
		</property>
		<property name="complex-map" type="map">
			<property name="a" type="list">
				<property value="a"/>
				<property value="b"/>
			</property>
			<property name="b" type="list">
				<property value="c"/>
				<property value="d"/>
			</property>
		</property>
		<property name="empty-array" type="array"/>
		<property name="empty-list" type="list"/>
		<property name="empty-map" type="map"/>
	</instance>

	<component classname="org.apache.felix.ipojo.runtime.core.components.PropertyModifier">
		<provides>
			<property field="classes"/>
		</provides>
		<properties>
			<property method="setClasses" name="cls"/>
		</properties>
	</component>
</ipojo>
