<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mbean PUBLIC
   "-//JBoss//DTD JBOSS XMBEAN 1.1//EN"
   "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_1.dtd"
[
   <!ATTLIST interceptor proxyName CDATA #IMPLIED>
]>

<!-- The JNDI Naming service XMBean
$Id: NamingService-xmbean.xml 60231 2007-02-03 08:00:43Z scott.stark@jboss.org $
-->
<mbean>
   <description>The standard JBoss JNDI naming server with a custom
      ProxyFactoryInterceptor interceptor that does replacement of NamingContext
      objects with the detached invoker proxy.
   </description>

   <descriptors>
      <interceptors>
         <!-- Uncomment to enable NamingContext replacement by the detached
         invoker proxy. You need to set the proxyName attribute correctly.
         <interceptor code="org.jboss.naming.interceptors.ProxyFactoryInterceptor"
            proxyName="jboss:service=proxyFactory,type=pooled,target=Naming"/>
         -->
         <interceptor code="org.jboss.mx.interceptor.PersistenceInterceptor2" />
         <interceptor code="org.jboss.mx.interceptor.ModelMBeanInterceptor" />
         <interceptor code="org.jboss.mx.interceptor.ObjectReferenceInterceptor" />
      </interceptors>
   </descriptors>

   <class>org.jboss.naming.NamingService</class>

   <constructor>
      <description>The default constructor</description>
      <name>NamingService</name>
   </constructor>
   
   &defaultAttributes;

   <attribute access="read-only" getMethod="getMethodMap">
      <name>MethodMap</name>
      <type>java.util.Map</type>
   </attribute>
   <attribute access="read-write" getMethod="getNaming" setMethod="setNaming">
      <description>Underlying Naming bean instance</description>
      <name>Naming</name>
      <type>org.jnp.server.NamingBean</type>
   </attribute>
   <attribute access="read-only" getMethod="getNamingInstance">
      <description>Underlying Naming bean instance</description>
      <name>NamingInstance</name>
      <type>org.jnp.interfaces.Naming</type>
   </attribute>   
   <attribute access="read-write" getMethod="getCallByValue" setMethod="setCallByValue">
      <description>The call by value mode. true if all lookups are unmarshalled using
      the caller's TCL, false if in VM lookups return the value by reference.</description>
      <name>CallByValue</name>
      <type>boolean</type>
   </attribute>
   <attribute access="read-write" getMethod="getBindAddress" setMethod="setBindAddress">
      <description>The bind address of the bootstrap lookup socket.</description>
      <name>BindAddress</name>
      <type>java.lang.String</type>
   </attribute>
   <attribute access="read-write" getMethod="getPort" setMethod="setPort">
      <description>The listening port for the bootstrap JNP service. Set this to -1
        to run the NamingService without the JNP invoker listening port.</description>
      <name>Port</name>
      <type>int</type>
   </attribute>
   <attribute access="read-write" getMethod="getBacklog" setMethod="setBacklog">
      <description>The bootstrap socket backlog count.</description>
      <name>Backlog</name>
      <type>int</type>
   </attribute>
   <attribute access="read-write" getMethod="getJNPServerSocketFactory"
      setMethod="setJNPServerSocketFactory">
      <description>The bootstrap socket javax.net.ServerSocketFactory class name</description>
      <name>JNPServerSocketFactory</name>
      <type>java.lang.String</type>
   </attribute>
   <attribute access="read-write" getMethod="getJNPServerSocketFactoryBean"
      setMethod="setJNPServerSocketFactoryBean">
      <description>The bootstrap socket javax.net.ServerSocketFactory</description>
      <name>JNPServerSocketFactoryBean</name>
      <type>javax.net.ServerSocketFactory</type>
   </attribute>

   <attribute access="read-write" getMethod="getRmiPort" setMethod="setRmiPort">
      <description>The port of the RMI naming service, 0 == anonymous. This
      is only used if an explicit InvokerProxyFactory has not been set.</description>
      <name>RmiPort</name>
      <type>int</type>
   </attribute>
   <attribute access="read-write" getMethod="getRmiBindAddress" setMethod="setRmiBindAddress">
      <description>The RMI service bind address. Empty == all addresses</description>
      <name>RmiBindAddress</name>
      <type>java.lang.String</type>
   </attribute>
   <attribute access="read-write" getMethod="getClientSocketFactory" setMethod="setClientSocketFactory">
      <description>The RMI service java.rmi.server.RMIClientSocketFactory class name</description>
      <name>ClientSocketFactory</name>
      <type>java.lang.String</type>
   </attribute>
   <attribute access="read-write" getMethod="getClientSocketFactoryBean" setMethod="setClientSocketFactoryBean">
      <description>The RMI service java.rmi.server.RMIServerSocketFactory instance</description>
      <name>ClientSocketFactoryBean</name>
      <type>java.rmi.server.RMIClientSocketFactory</type>
   </attribute>
   <attribute access="read-write" getMethod="getServerSocketFactory" setMethod="setServerSocketFactory">
      <description>The RMI service java.rmi.server.RMIServerSocketFactory class name</description>
      <name>ServerSocketFactory</name>
      <type>java.lang.String</type>
   </attribute>
   <attribute access="read-write" getMethod="getServerSocketFactoryBean" setMethod="setServerSocketFactoryBean">
      <description>The RMI service java.rmi.server.RMIServerSocketFactory instance</description>
      <name>ServerSocketFactory</name>
      <type>java.rmi.server.RMIServerSocketFactory</type>
   </attribute>

   <attribute access="read-write" getMethod="getInstallGlobalService"
      setMethod="setInstallGlobalService">
      <description>Ghe InstallGlobalService which defines whether the MainMBean's
         Naming server will be installed as the NamingContext.setLocal global
         value.</description>
      <name>InstallGlobalService</name>
      <type>boolean</type>
   </attribute>
   <attribute access="read-write" getMethod="getUseGlobalService"
      setMethod="setUseGlobalService">
      <description>The UseGlobalService which defines whether the MainMBean's
         Naming server will initialized from the existing NamingContext.setLocal global
         value.</description>
      <name>UseGlobalService</name>
      <type>boolean</type>
   </attribute>
   <attribute access="write-only" setMethod="setLookupPool">
      <description>The thread pool service used to control the bootstrap lookups</description>
      <name>LookupPool</name>
      <type>org.jboss.util.threadpool.BasicThreadPoolMBean</type>
   </attribute>
   <attribute access="write-only" setMethod="setInvokerProxyFactory">
      <description>The detached invoker proxy factory to use for the naming
      service transport.</description>
      <name>InvokerProxyFactory</name>
      <type>org.jboss.invocation.jrmp.server.JRMPProxyFactoryMBean</type>
   </attribute>

   <!-- Operations -->
   <operation>
      <description>The generic invocation operation used by detached invokers
         to route requests to the service
      </description>
      <name>invoke</name>
      <parameter>
         <description>The Naming interface method invocation encapsulation
         </description>
         <name>invocation</name>
         <type>org.jboss.invocation.Invocation</type>
      </parameter>
      <return-type>java.lang.Object</return-type>
   </operation>
   <operation>
      <description>Create an alias in jndi
      </description>
      <name>createAlias</name>
      <parameter>
         <description>The from name
         </description>
         <name>fromName</name>
         <type>java.lang.String</type>
      </parameter>
      <parameter>
         <description>The to name
         </description>
         <name>toName</name>
         <type>java.lang.String</type>
      </parameter>
      <return-type>void</return-type>
   </operation>
   <operation>
      <description>Remove an alias from jndi
      </description>
      <name>removeAlias</name>
      <parameter>
         <description>The name
         </description>
         <name>name</name>
         <type>java.lang.String</type>
      </parameter>
      <return-type>void</return-type>
   </operation>

   &defaultOperations;   			

</mbean>
