<?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.
	-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

      http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

  <bean id="propertyPlaceholderConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="searchSystemEnvironment" value="true" />
  </bean>

  <bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
    <property name="port" value="${test.port}"/>
  </bean>

	<camelContext xmlns="http://camel.apache.org/schema/spring">

    <restConfiguration bindingMode="auto" component="restlet"/>

    <rest path="/users">
      <post uri="/lives" type="org.apache.camel.component.restlet.UserPojo" outType="org.apache.camel.component.restlet.CountryPojo">
        <route>
          <bean beanType="org.apache.camel.component.restlet.UserService" method="livesWhere"/>
        </route>
      </post>
    </rest>

	</camelContext>

</beans>