[jboss-cvs] JBossAS SVN: r88357 - in projects/naming/branches/Branch_5_0/jnpserver/src: test/java/org/jnp/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 7 09:44:28 EDT 2009


Author: scott.stark at jboss.org
Date: 2009-05-07 09:44:28 -0400 (Thu, 07 May 2009)
New Revision: 88357

Modified:
   projects/naming/branches/Branch_5_0/jnpserver/src/main/java/org/jnp/interfaces/NamingContext.java
   projects/naming/branches/Branch_5_0/jnpserver/src/test/java/org/jnp/test/NamingTestSuite.java
Log:
JBNAME-27, add a global.jnp.DisableDiscovery property


Modified: projects/naming/branches/Branch_5_0/jnpserver/src/main/java/org/jnp/interfaces/NamingContext.java
===================================================================
--- projects/naming/branches/Branch_5_0/jnpserver/src/main/java/org/jnp/interfaces/NamingContext.java	2009-05-07 13:13:26 UTC (rev 88356)
+++ projects/naming/branches/Branch_5_0/jnpserver/src/main/java/org/jnp/interfaces/NamingContext.java	2009-05-07 13:44:28 UTC (rev 88357)
@@ -24,11 +24,9 @@
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
-import java.io.SerializablePermission;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.ReflectPermission;
 import java.net.DatagramPacket;
 import java.net.InetAddress;
 import java.net.MulticastSocket;
@@ -45,7 +43,6 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.StringTokenizer;
@@ -161,6 +158,13 @@
    public static final String JNP_NAMING_INSTANCE_NAME = "jnp.namingInstanceName";
 
    /**
+    * Global JNP disable discovery system property: -Djboss.global.jnp.disableDiscover=[true|false]
+    * At the VM level, this property controls how disable discovery behaves in 
+    * absence of per context jnp.disableDiscovery property.  
+    */
+   private static final boolean GLOBAL_JNP_DISABLE_DISCOVERY = Boolean.valueOf(System.getProperty("jboss.global.jnp.disableDiscovery", "false"));
+   
+   /**
     * The default discovery multicast information
     */
    public final static String DEFAULT_DISCOVERY_GROUP_ADDRESS = "230.0.0.4";
@@ -1351,6 +1355,34 @@
       }
       return linkResult;
    }
+   
+   protected boolean shouldDiscoveryHappen(boolean globalDisableDiscovery, String perCtxDisableDiscovery)
+   {
+      boolean trace = log.isTraceEnabled();
+      if (!globalDisableDiscovery)
+      {
+         // No global disable, so act as before.
+         if (Boolean.valueOf(perCtxDisableDiscovery) == Boolean.TRUE)
+         {
+            if (trace)
+               log.trace("Skipping discovery due to disable flag in context");
+            return false;
+         }         
+      }
+      else
+      {
+         // Global disable on but double check whether there's a per context override.
+         // If disableDiscovery in context is explicitly set to false, do discovery.
+         if (perCtxDisableDiscovery == null || Boolean.valueOf(perCtxDisableDiscovery) == Boolean.TRUE)
+         {
+            if (trace)
+               log.trace("Skipping discovery due to disable flag in context, or disable flag globally (and no override in context)");
+            return false;            
+         }
+      }
+      
+      return true;
+   }
 
    // Private -------------------------------------------------------
 
@@ -1484,6 +1516,12 @@
       boolean trace = log.isTraceEnabled();
       // Check if discovery should be done
       String disableDiscovery = (String) serverEnv.get(JNP_DISABLE_DISCOVERY);
+      
+      if (!shouldDiscoveryHappen(GLOBAL_JNP_DISABLE_DISCOVERY, disableDiscovery))
+      {
+         return null;
+      }
+      
       if (Boolean.valueOf(disableDiscovery) == Boolean.TRUE)
       {
          if (trace)

Modified: projects/naming/branches/Branch_5_0/jnpserver/src/test/java/org/jnp/test/NamingTestSuite.java
===================================================================
--- projects/naming/branches/Branch_5_0/jnpserver/src/test/java/org/jnp/test/NamingTestSuite.java	2009-05-07 13:13:26 UTC (rev 88356)
+++ projects/naming/branches/Branch_5_0/jnpserver/src/test/java/org/jnp/test/NamingTestSuite.java	2009-05-07 13:44:28 UTC (rev 88357)
@@ -47,6 +47,7 @@
       suite.addTest(NamingMCUnitTest.suite());
       suite.addTest(NamingServerSecurityManagerUnitTest.suite());
       suite.addTest(TestJNPSockets.suite());
+      suite.addTest(NamingContextUnitTest.suite());
       
       return suite;
    }




More information about the jboss-cvs-commits mailing list