<!--
  ~  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.
  -->

<synapse xmlns="http://ws.apache.org/ns/synapse" xmlns:spring="http://ws.apache.org/ns/synapse/spring">

	<registry provider="org.apache.synapse.registry.url.SimpleURLRegistry">
		<property name="root" value="file:./../../repository/"/>
		<property name="cachableDuration" value="15000"/>
	</registry>
  
  <definitions>
		<set-property name="springconfig1" key="conf/sample/resources/spring/springsample.xml"/>
		<set-property name="springconfig2" src="file:./../../repository/conf/sample/resources/spring/springsample.xml"/>
  </definitions>

  <rules>
  	<spring:spring bean="springtest" key="springconfig1"/>
  	<spring:spring bean="springtest" key="springconfig2"/>
  </rules>

</synapse> 