[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