org.apache.mina.integration.spring
Class IoAcceptorFactoryBean

java.lang.Object
  extended by org.apache.mina.integration.spring.IoAcceptorFactoryBean
All Implemented Interfaces:
org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean

public class IoAcceptorFactoryBean
extends java.lang.Object
implements org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean

Spring FactoryBean which enables the bindings of an IoAcceptor to be configured using Spring. Example of usage:

   <!-- This makes it possible to specify java.net.SocketAddress values 
        (e.g. :80 below) as Strings.
        They will be converted into java.net.InetSocketAddress objects by Spring.  -->
   <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
     <property name="customEditors">
       <map>
         <entry key="java.net.SocketAddress">
           <bean class="org.apache.mina.integration.spring.InetSocketAddressEditor"/>
         </entry>
       </map>
     </property>
   </bean>
 
   <!-- The IoHandler implementation -->
   <bean id="httpHandler" class="com.example.MyHttpHandler">
     ...
   </bean>
     
   <bean id="filterChainBuilder" 
         class="org.apache.mina.integration.spring.DefaultIoFilterChainBuilderFactoryBean">
     <property name="filters">
       <list>
         <bean class="org.apache.mina.filter.LoggingFilter"/>
       </list>
     </property>
   </bean>

  <!-- By default MINA uses an ExecutorThreadModel. This demonstrates how to 
          use your own with some non default settings. The threadModel will 
          be set on the SocketAcceptorConfig defined below. To configure a 
          ExecutorFilter directly you will have to use the ThreadModel.MANUAL 
          ThreadModel instead. -->
   <bean id="threadModel" class="org.apache.mina.integration.spring.ExecutorThreadModelFactoryBean">
     <property name="serviceName" value="HttpService"/>
     <property name="executor">
       <bean class="org.apache.mina.integration.spring.ThreadPoolExecutorFactoryBean">
         <property name="corePoolSize" value="2"/>
         <property name="maxPoolSize" value="10"/>
         <property name="keepAliveSeconds" value="30"/>
       </bean>
     </property>
   </bean>

   <bean id="ioAcceptor" class="org.apache.mina.integration.spring.IoAcceptorFactoryBean">
     <property name="target">
       <bean class="org.apache.mina.transport.socket.nio.SocketAcceptor"/>
     </property>
     <property name="bindings">
       <list>
         <bean class="org.apache.mina.integration.spring.Binding">
           <property name="address" value=":80"/>
           <property name="handler" ref="httpHandler"/>
           <property name="serviceConfig">
             <bean class="org.apache.mina.transport.socket.nio.SocketAcceptorConfig">
               <property name="filterChainBuilder" ref="filterChainBuilder"/>
               <property name="reuseAddress" value="true"/>
               <property name="threadModel" ref="threadModel"/> 
             </bean>
           </property>
         </bean>
       </list>
     </property>
   </bean>
 


Constructor Summary
IoAcceptorFactoryBean()
           
 
Method Summary
 void afterPropertiesSet()
           
 void destroy()
           
 java.lang.Object getObject()
           
 java.lang.Class getObjectType()
           
 boolean isSingleton()
           
 void setBindings(Binding[] bindings)
          Sets the bindings to be used by the IoAcceptor configured by this factory bean.
 void setTarget(org.apache.mina.common.IoAcceptor target)
          Sets the IoAcceptor to be configured using this factory bean.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IoAcceptorFactoryBean

public IoAcceptorFactoryBean()
Method Detail

setTarget

public void setTarget(org.apache.mina.common.IoAcceptor target)
Sets the IoAcceptor to be configured using this factory bean.

Parameters:
target - the target IoAcceptor.

setBindings

public void setBindings(Binding[] bindings)
Sets the bindings to be used by the IoAcceptor configured by this factory bean.

Parameters:
bindings - the bindings.
Throws:
java.lang.IllegalArgumentException - if the specified value is null.
See Also:
IoAcceptor.bind(SocketAddress, IoHandler), IoAcceptor.bind(SocketAddress, IoHandler, IoServiceConfig), Binding

getObject

public java.lang.Object getObject()
                           throws java.lang.Exception
Specified by:
getObject in interface org.springframework.beans.factory.FactoryBean
Throws:
java.lang.Exception

getObjectType

public java.lang.Class getObjectType()
Specified by:
getObjectType in interface org.springframework.beans.factory.FactoryBean

isSingleton

public boolean isSingleton()
Specified by:
isSingleton in interface org.springframework.beans.factory.FactoryBean

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception

destroy

public void destroy()
             throws java.lang.Exception
Specified by:
destroy in interface org.springframework.beans.factory.DisposableBean
Throws:
java.lang.Exception