blob: a54e81c6b218dc3f6ecddc95df79b910a8c8b37f [file] [log] [blame]
<!--
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.
-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- A NIO based HTTP Transport -->
<bean id="mina-transport"
class="org.apache.asyncweb.server.transport.mina.MinaTransport">
<!--
This property sets the port listened on for new connections
-->
<property name="port">
<value>9012</value>
</property>
<!--
This property controls the number of IO worker threads.
Please note that this is not related to the number of concurrent
connections you wish to process. This will typically be a small number
-->
<property name="ioThreads">
<value>4</value>
</property>
<property name="eventThreads">
<value>16</value>
</property>
<!--
The HTTP IO Handler we employ.
-->
<property name="ioHandler">
<bean
class="org.apache.asyncweb.server.transport.mina.DefaultHttpIoHandler" />
</property>
</bean>
<!-- The service container -->
<bean id="container"
class="org.apache.asyncweb.server.BasicServiceContainer">
<!--
This property lists the service handlers to be employed by this
container (in the order they are to be used).
-->
<property name="serviceFilters">
<list>
<!--
This handler causes the existing client session (if any) to be renewed on
every request - irrespective of whether application code causes the session
to be accessed.
<bean class="org.apache.asyncweb.server.session.SessionKeepAliveHandler"/>
-->
<!--
The Http service handler
-->
<ref bean="httpServiceHandler" />
</list>
</property>
<!--
This property lists the transports employed by this container
-->
<property name="transports">
<list>
<ref bean="mina-transport" />
</list>
</property>
<!--
Session management configuration. If omitted, default (in memory) session management
is employed
-->
<property name="sessionAccessor">
<!--
Employ a default accessor which combines a secure random key generator,
cookie session identification and a session store
-->
<bean
class="org.apache.asyncweb.server.session.DefaultSessionAccessor">
<!--
Employ a basic (in memory) session store with a 15 minute timeout
-->
<property name="sessionStore">
<bean
class="org.apache.asyncweb.server.session.BasicSessionStore">
<constructor-arg type="long">
<value>900000</value>
</constructor-arg>
<!--
SessionListeners
-->
<property name="sessionListeners">
<list>
<!-- An example listener which logs lifecyle events. This can be removed if required -->
<bean
class="org.apache.asyncweb.server.session.LoggingSessionListener" />
</list>
</property>
</bean>
</property>
</bean>
</property>
<property name="maxKeepAlives" value="1024" />
</bean>
<!-- The HTTP Service Resolver -->
<bean id="httpServiceHandler"
class="org.apache.asyncweb.server.HttpServiceHandler">
<!--
This property controls the service resolver employed by the
container.
By default, we use a "SimplePrefixResolver" with a prefix of "/service/".
This means that all request URIs are expected to begin with "/service/",
and the remainder of the URI is used as the service name. Anything not
matching this prefix is passed through unchanged (with leading '/' removed)
-->
<property name="serviceResolver">
<bean
class="org.apache.asyncweb.server.resolver.CompositeResolver">
<property name="resolvers">
<list>
<bean
class="org.apache.asyncweb.server.resolver.SimplePrefixResolver">
<property name="uriPrefix">
<value>/service/</value>
</property>
</bean>
<bean
class="org.apache.asyncweb.server.resolver.PassThruResolver" />
</list>
</property>
</bean>
</property>
</bean>
<!--
HTTP Service Auto-loading.
Auto-loading pre-registers all HttpServices in the spring application
context with the HttpServiceHandler.
-->
<bean id="httpServiceAutoload"
class="org.apache.asyncweb.spring.HttpServiceLoader">
<property name="handler">
<ref bean="httpServiceHandler" />
</property>
</bean>
</beans>