[jboss-cvs] JBossAS SVN: r69872 - in projects/ejb3/trunk/core/src: test/java/org/jboss/ejb3/test/ejbthree994/unit and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Feb 17 18:47:49 EST 2008


Author: bdecoste
Date: 2008-02-17 18:47:49 -0500 (Sun, 17 Feb 2008)
New Revision: 69872

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ClientKernelAbstraction.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/JmxClientKernelAbstraction.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/MCClientKernelAbstraction.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ProxyFactoryHelper.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/ejbthree994/unit/MultiBindingsTestCase.java
Log:
[EJBTHREE-1190] [EJBTHREE-1191] binding 0.0.0.0 clientBindUrl to correct Connector

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ClientKernelAbstraction.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ClientKernelAbstraction.java	2008-02-17 17:47:45 UTC (rev 69871)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ClientKernelAbstraction.java	2008-02-17 23:47:49 UTC (rev 69872)
@@ -21,6 +21,8 @@
 */
 package org.jboss.ejb3;
 
+import java.util.Set;
+
 import javax.management.ObjectName;
 
 import javax.management.MBeanServer;
@@ -33,4 +35,6 @@
    Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws Exception;
 
    public Object getAttribute(ObjectName name, String attribute) throws Exception;
+   
+   Set getMBeans(ObjectName query) throws Exception;
 }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/JmxClientKernelAbstraction.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/JmxClientKernelAbstraction.java	2008-02-17 17:47:45 UTC (rev 69871)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/JmxClientKernelAbstraction.java	2008-02-17 23:47:49 UTC (rev 69872)
@@ -21,6 +21,8 @@
 */
 package org.jboss.ejb3;
 
+import java.util.Set;
+
 import javax.management.MBeanServerConnection;
 import javax.management.ObjectName;
 import org.jboss.logging.Logger;
@@ -48,4 +50,11 @@
    {
       return server.getAttribute(name, attribute);
    }
+   
+   public Set getMBeans(ObjectName query) throws Exception
+   {
+      Set mbeans = server.queryMBeans(query, null);
+      
+      return mbeans;
+   }
 }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/MCClientKernelAbstraction.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/MCClientKernelAbstraction.java	2008-02-17 17:47:45 UTC (rev 69871)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/MCClientKernelAbstraction.java	2008-02-17 23:47:49 UTC (rev 69872)
@@ -29,6 +29,8 @@
 import javax.management.ObjectName;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
@@ -82,4 +84,12 @@
       }
       return null;
    }
+   
+   public Set getMBeans(ObjectName query) throws Exception
+   {
+      Object target = kernel.getRegistry().getEntry(query);
+      Set set = new HashSet();
+      set.add(target);
+      return set;
+   }
 }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ProxyFactoryHelper.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ProxyFactoryHelper.java	2008-02-17 17:47:45 UTC (rev 69871)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/ProxyFactoryHelper.java	2008-02-17 23:47:49 UTC (rev 69872)
@@ -22,8 +22,10 @@
 package org.jboss.ejb3;
 
 import java.lang.reflect.Method;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -36,6 +38,7 @@
 import javax.ejb.Remote;
 import javax.ejb.RemoteHome;
 import javax.jws.WebService;
+import javax.management.ObjectInstance;
 import javax.management.ObjectName;
 
 import org.jboss.aop.Advisor;
@@ -769,27 +772,48 @@
       // Return
       return types;
    }
-
+   
    public static String getClientBindUrl(RemoteBinding binding) throws Exception
    {
       String clientBindUrl = binding.clientBindUrl();
       if (clientBindUrl.trim().length() == 0)
       {
-         ObjectName connectionON = new ObjectName(
-               "jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3");
+         ObjectName connectionON = new ObjectName("jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3");
          KernelAbstraction kernelAbstraction = KernelAbstractionFactory.getInstance();
          try
          {
-            clientBindUrl = (String) kernelAbstraction.getAttribute(connectionON, "InvokerLocator");
-            if (clientBindUrl == null)
-               clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
+            clientBindUrl = (String)kernelAbstraction.getAttribute(connectionON, "InvokerLocator");
          }
          catch (Exception e)
          {
             clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
          }
       }
-
+      else if (clientBindUrl.indexOf("0.0.0.0") != -1)
+      {
+         KernelAbstraction kernelAbstraction = KernelAbstractionFactory.getInstance();
+         ObjectName query = new ObjectName("jboss.remoting:type=Connector,handler=ejb3,*");
+         Set mbeanSet = kernelAbstraction.getMBeans(query);
+         
+         URI targetUri = new URI(clientBindUrl);
+         Iterator mbeans = mbeanSet.iterator();
+         while (mbeans.hasNext())
+         {
+            ObjectInstance invokerInstance = (ObjectInstance)mbeans.next();
+            ObjectName invokerName = invokerInstance.getObjectName();
+            String invokerLocator = (String)kernelAbstraction.getAttribute(invokerName, "InvokerLocator");
+            URI uri = new URI(invokerLocator);
+          
+            if (uri.getScheme().equals(targetUri.getScheme()) && uri.getPort() == targetUri.getPort())
+            {
+               return invokerLocator;
+            }
+         }
+      }
+      
+      if (clientBindUrl == null)
+         clientBindUrl = RemoteProxyFactory.DEFAULT_CLIENT_BINDING;
+      
       return clientBindUrl;
    }
 

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/ejbthree994/unit/MultiBindingsTestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/ejbthree994/unit/MultiBindingsTestCase.java	2008-02-17 17:47:45 UTC (rev 69871)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/test/ejbthree994/unit/MultiBindingsTestCase.java	2008-02-17 23:47:49 UTC (rev 69872)
@@ -63,7 +63,7 @@
          assertEquals(actual, "*** 123 ***");
          
          String proxyUri = getProxyUri(bean);
-         assertEquals(proxyUri, "socket://0.0.0.0:3873");
+         assertEquals(proxyUri, "socket://127.0.0.1:3873");
       }
 
       {
@@ -72,7 +72,7 @@
          assertEquals(actual, "*** 456 ***");
          
          String proxyUri = getProxyUri(bean);
-         assertEquals(proxyUri, "socket://0.0.0.0:3874");
+         assertEquals(proxyUri, "socket://127.0.0.1:3874");
       }
    }
    




More information about the jboss-cvs-commits mailing list