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

  <context:component-scan base-package="org.apache.geode.management.internal.web"/>

  <bean id="asyncTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="5"/>
    <property name="maxPoolSize" value="25"/>
    <property name="queueCapacity" value="25"/>
  </bean>

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

  <mvc:annotation-driven>
    <!-- default timeout set to 2 hours; used for Gfsh commands such as 'rebalance' -->
    <mvc:async-support default-timeout="7200000" task-executor="asyncTaskExecutor"/>
    <mvc:message-converters>
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
      <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
      <!--bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/-->
      <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
      <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
      <bean class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"/>
      <bean class="org.apache.geode.management.internal.web.http.converter.ServerSerializableObjectHttpMessageConverter"/>
    </mvc:message-converters>
  </mvc:annotation-driven>

  <mvc:interceptors>
    <bean class="org.apache.geode.management.internal.web.controllers.support.LoginHandlerInterceptor"/>
  </mvc:interceptors>

</beans>
