<?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.

-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
           http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

  <!-- netty http bootstrap configuration -->
  <bean id="configuration" class="org.apache.camel.component.netty.http.NettySharedHttpServerBootstrapConfiguration">
     <!-- the port and host is mandatory and must be set -->
    <property name="port" value="8888"/>
    <property name="host" value="0.0.0.0"/>
    <!-- additional options -->
    <property name="backlog" value="50"/>
  </bean>

  <!-- the netty http server -->
  <bean id="httpServer" class="org.apache.camel.component.netty.http.DefaultNettySharedHttpServer"
        init-method="start" destroy-method="stop">
    <property name="nettyServerBootstrapConfiguration" ref="configuration"/>
  </bean>

  <!-- export in the OSGi server registry so we can use it from the Camel application bundles -->
  <service ref="httpServer" interface="org.apache.camel.component.netty.http.NettySharedHttpServer"/>

</blueprint>
