[jboss-cvs] JBossAS SVN: r79286 - in projects/naming/trunk/jnpserver/src: test/java/org/jnp/test and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 9 01:28:26 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-10-09 01:28:25 -0400 (Thu, 09 Oct 2008)
New Revision: 79286

Modified:
   projects/naming/trunk/jnpserver/src/main/java/org/jnp/server/Main.java
   projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/NamingMCUnitTest.java
   projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/TestJNPSockets.java
   projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBean.xml
   projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBeanSFs.xml
Log:
JBNAME-16, add enableRmiServerHostname and fix the default bootstrap ThreadFactory

Modified: projects/naming/trunk/jnpserver/src/main/java/org/jnp/server/Main.java
===================================================================
--- projects/naming/trunk/jnpserver/src/main/java/org/jnp/server/Main.java	2008-10-09 05:15:53 UTC (rev 79285)
+++ projects/naming/trunk/jnpserver/src/main/java/org/jnp/server/Main.java	2008-10-09 05:28:25 UTC (rev 79286)
@@ -38,6 +38,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.net.ServerSocketFactory;
 
@@ -84,6 +85,8 @@
    protected InetAddress bindAddress;
    /** The interface to bind to for the Naming RMI server */ 
    protected InetAddress rmiBindAddress;
+   /** Should the java.rmi.server.hostname property to rmiBindAddress */
+   private boolean enableRmiServerHostname;
    /** The serverSocket listen queue depth */
    protected int backlog = 50;
    /** The jnp protocol listening port. The default is 1099, the same as
@@ -130,6 +133,7 @@
       setPort(Integer.getInteger("jnp.port",getPort()).intValue());
       setRmiPort(Integer.getInteger("jnp.rmiPort",getRmiPort()).intValue());
       log = Logger.getLogger(categoryName);
+      log.debug("isTraceEnabled: "+log.isTraceEnabled());
    }
 
    // Public --------------------------------------------------------
@@ -241,6 +245,16 @@
          rmiBindAddress = InetAddress.getByName(host);
    }
 
+   
+   public boolean isEnableRmiServerHostname()
+   {
+      return enableRmiServerHostname;
+   }
+   public void setEnableRmiServerHostname(boolean enableRmiServerHostname)
+   {
+      this.enableRmiServerHostname = enableRmiServerHostname;
+   }
+
    public int getBacklog()
    {
       return backlog;
@@ -346,6 +360,10 @@
    public void start()
       throws Exception
    {
+      log.debug("Begin start");
+      // Set the java.rmi.server.hostname to the bind address if not set
+      if(rmiBindAddress != null && System.getProperty("java.rmi.server.hostname") == null)
+         System.setProperty("java.rmi.server.hostname", rmiBindAddress.getHostAddress());
 
       // Initialize the custom socket factories with any bind address
       initCustomSocketFactories();
@@ -362,6 +380,7 @@
       {
          initBootstrapListener();
       }
+      log.debug("End start");
    }
 
    public void stop()
@@ -438,14 +457,8 @@
 
       if( lookupExector == null  )
       {
-         lookupExector = Executors.newFixedThreadPool(2, new ThreadFactory()
-         {
-            public Thread newThread(Runnable r)
-            {
-               return new Thread("Naming Bootstrap");
-            }
-         }
-         );
+         log.debug("Using default newFixedThreadPool(2)");
+         lookupExector = Executors.newFixedThreadPool(2, BootstrapThreadFactory.getInstance());
       }
       AcceptHandler handler = new AcceptHandler();
       lookupExector.execute(handler);
@@ -530,6 +543,8 @@
             // Accept a connection
             try
             {
+               if( trace )
+                  log.trace("Enter accept on: "+serverSocket);
                socket = serverSocket.accept();
                if( trace )
                   log.trace("Accepted bootstrap client: "+socket);
@@ -587,4 +602,20 @@
          }
       }
    }
+   private static class BootstrapThreadFactory implements ThreadFactory
+   {
+      private static final AtomicInteger tnumber = new AtomicInteger(1);
+      static BootstrapThreadFactory instance;
+      static synchronized ThreadFactory getInstance()
+      {
+         if(instance == null)
+            instance = new BootstrapThreadFactory();
+         return instance;
+      }
+      public Thread newThread(Runnable r)
+      {
+         Thread t = new Thread(r, "Naming Bootstrap#"+tnumber.getAndIncrement());
+         return t;
+      }
+   }
 }

Modified: projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/NamingMCUnitTest.java
===================================================================
--- projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/NamingMCUnitTest.java	2008-10-09 05:15:53 UTC (rev 79285)
+++ projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/NamingMCUnitTest.java	2008-10-09 05:28:25 UTC (rev 79286)
@@ -31,7 +31,6 @@
 
 import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.test.kernel.junit.MicrocontainerTest;
-import org.jnp.interfaces.NamingContext;
 import org.jnp.interfaces.TimedSocketFactory;
 
 /**
@@ -124,6 +123,8 @@
       env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
       env.setProperty("java.naming.provider.url", "localhost:1099");
       env.setProperty("java.naming.factory.url", "org.jboss.naming:org.jnp.interfaces");
+      env.setProperty(TimedSocketFactory.JNP_TIMEOUT, "10000");
+      env.setProperty(TimedSocketFactory.JNP_SO_TIMEOUT, "10000");
       InitialContext ic = new InitialContext(env);
       validateCtx(ic);
    }
@@ -142,10 +143,8 @@
       env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
       env.setProperty("java.naming.provider.url", "localhost:2099");
       env.setProperty("java.naming.factory.url", "org.jboss.naming:org.jnp.interfaces");
-      /*
       env.setProperty(TimedSocketFactory.JNP_TIMEOUT, "1000");
       env.setProperty(TimedSocketFactory.JNP_SO_TIMEOUT, "1000");
-      */
       InitialContext ic = new InitialContext(env);
       validateCtx(ic);
    }

Modified: projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/TestJNPSockets.java
===================================================================
--- projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/TestJNPSockets.java	2008-10-09 05:15:53 UTC (rev 79285)
+++ projects/naming/trunk/jnpserver/src/test/java/org/jnp/test/TestJNPSockets.java	2008-10-09 05:28:25 UTC (rev 79286)
@@ -47,7 +47,7 @@
    /** The actual namingMain service impl bean */
    private static NamingBeanImpl namingBean;
    /** */
-   private static Main namingMain = new Main();
+   private static Main namingMain = new Main("org.jnp.server");
 
    static int serverPort;
 

Modified: projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBean.xml
===================================================================
--- projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBean.xml	2008-10-09 05:15:53 UTC (rev 79285)
+++ projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBean.xml	2008-10-09 05:28:25 UTC (rev 79286)
@@ -57,8 +57,11 @@
     </bean>
 
     <bean name="LookupPool">
-        <constructor factoryMethod="newSingleThreadExecutor"
-            factoryClass="java.util.concurrent.Executors"/>
+        <constructor factoryMethod="newFixedThreadPool"
+            factoryClass="java.util.concurrent.Executors">
+            <!-- At least 2 threads are required -->
+            <parameter>2</parameter>
+        </constructor>
     </bean>
     <bean name="testLocaNamingBeanImpl" class="org.jnp.server.NamingBeanImpl">
         <!-- Install this bean as the global JVM NamingServer -->
@@ -87,6 +90,8 @@
         <!-- The RMI service bind address. Empty == all addresses
         -->
         <property name="rmiBindAddress">${jboss.bind.address:localhost}</property>
+        <!-- Set the java.rmi.server.hostname system property to rmiBindAddress -->
+        <property name="enableRmiServerHostname">true</property>
         <!-- The thread pool service used to control the bootstrap lookups -->
         <property name="lookupExector"><inject bean="LookupPool"/></property>
     </bean>

Modified: projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBeanSFs.xml
===================================================================
--- projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBeanSFs.xml	2008-10-09 05:15:53 UTC (rev 79285)
+++ projects/naming/trunk/jnpserver/src/test/resources/org/jnp/test/NamingMCUnitTest#testMainBeanSFs.xml	2008-10-09 05:28:25 UTC (rev 79286)
@@ -62,6 +62,7 @@
     <bean name="LookupPool">
         <constructor factoryMethod="newFixedThreadPool"
             factoryClass="java.util.concurrent.Executors">
+            <!-- At least 2 threads are required -->
             <parameter>2</parameter>
         </constructor>
     </bean>




More information about the jboss-cvs-commits mailing list